Blame demo/src/framebuffer.c

Ivan Mahonin 1d641c
Ivan Mahonin 1d641c
#include <stdlib.h>
Ivan Mahonin 1d641c
Ivan Mahonin 1d641c
#include <helianthus.h>
Ivan Mahonin 1d641c
Ivan Mahonin 1d641c
#include "drawing.h"
Ivan Mahonin 1d641c
Ivan Mahonin 1d641c
Ivan Mahonin 1d641c
static double t = 0;
Ivan Mahonin 1d641c
static int w = 0, h = 0;
Ivan Mahonin 1d641c
static Framebuffer buffer;
Ivan Mahonin 1d641c
static Animation texture;
Ivan Mahonin 1d641c
Ivan Mahonin 1d641c
Ivan Mahonin 1d641c
Ivan Mahonin 1d641c
void framebufferInit() {
Ivan Mahonin 1d641c
	buffer = createFramebufferFromFile("data/sprite/snake.png");
Ivan Mahonin 1d641c
	w = framebufferGetWidth(buffer);
Ivan Mahonin 1d641c
	h = framebufferGetHeight(buffer);
Ivan Mahonin 1d641c
	texture = createAnimationFromFramebuffer(buffer);
Ivan Mahonin 1d641c
}
Ivan Mahonin 1d641c
Ivan Mahonin 1d641c
Ivan Mahonin 1d641c
void framebufferDraw() {
Ivan Mahonin 1d641c
	double step = 0.1;
Ivan Mahonin d7d433
	t += windowGetFrameTime();
Ivan Mahonin 1d641c
	
Ivan Mahonin 1d641c
	while(t > step) {
Ivan Mahonin 1d641c
		saveState();
Ivan Mahonin 1d641c
		target(buffer);
Ivan Mahonin 1d641c
		strokeWidth(randomFloat()*64);
Ivan Mahonin c7535b
		stroke(colorByHSVA(randomFloat()*360, 1, 1, randomFloat()));
Ivan Mahonin 1d641c
		point( randomFloat()*w, randomFloat()*h );
Ivan Mahonin 1d641c
		restoreState();
Ivan Mahonin 1d641c
		t -= step;
Ivan Mahonin 1d641c
	}
Ivan Mahonin 1d641c
	
Ivan Mahonin 1d641c
	saveState();
Ivan Mahonin 1d641c
	translate(1024 - 256, 256);
Ivan Mahonin 1d641c
	rotate(30);
Ivan Mahonin 909bc2
	fill(colorByName("white"));
Ivan Mahonin 909bc2
	stroke(colorByName("blue"));
Ivan Mahonin 909bc2
	strokeWidth(2);
Ivan Mahonin 1d641c
	rectTextured(texture, -0.5*w, -0.5*h, w, h);
Ivan Mahonin 1d641c
	restoreState();
Ivan Mahonin 1d641c
}
Ivan Mahonin 1d641c