void render_buffer()
{
	frame++;
	need_render_frame = 0;
	
	switch(mode)
	{
		case 1:	render_checkerboard();	break;
		case 2:	render_psycho();	break;
		case 3:	render_heartbeat();	break;
		case 4:	render_rain();		break;
		case 5:	render_fire();		break;
		case 6:	render_character(2);	break;
		case 7: render_character(3);	break;
		case 8: render_character(4);	break;
		case 9: render_character(5);	break;
		case 10: render_character(6);	break;
		case 11: render_character(7);	break;
		case 12: render_character(8);	break;
		case 13: render_character(9);	break;
		case 14: render_character(10);	break;
		case 15: render_character(11);	break;
		case 16: render_character(12);	break;
		case 17: render_character(13);	break;
		case 18: render_character(14);	break;
	}
}
Beispiel #2
0
void render_image() {
	/* ensure we have a sane pixmap to draw on */

	ensure_window_pixmap();

	/* render the checkerboard background */

	render_checkerboard();

	/* rendering the image, if we have one. */

	if (s_image.imlib != NULL) {
		/* calculate draw offsets. the pan offsets define the location of
		   the top left corner on the window, regardless of scaling. */

		int sx, sy, dx, dy, sw, sh, dw, dh;

		if (s_view.pan_x < 0) {
			/* left part of image is hidden */

			sx = -lround(s_view.pan_x / s_view.scale);
			dx = 0;
		} else {
			/* left part of image is somewhere in the window */

			sx = 0;
			dx = s_view.pan_x;
		}

		if (s_view.pan_y < 0) {
			/* top part of image is hidden */

			sy = -lround(s_view.pan_y / s_view.scale);
			dy = 0;
		} else {
			/* top part of image is somewhere in the window */

			sy = 0;
			dy = s_view.pan_y;
		}

		/* how much of the image is visible? */

		dw = min(s_view.win_width  - s_view.pan_x, s_view.win_width);
		dh = min(s_view.win_height - s_view.pan_y, s_view.win_height);
		dw = min(dw, lround(s_image.width  * s_view.scale));
		dh = min(dh, lround(s_image.height * s_view.scale));
		sw = lround(dw / s_view.scale);
		sh = lround(dh / s_view.scale);

		fprintf(stderr, "now rendering to coordinates s=%d,%d/%dx%d d=%d,%d/%dx%d (scale: %f)\n", sx, sy, sw, sh, dx, dy, dw, dh, s_view.scale);

		/* now we know all the coordinates, we can render the image */

		imlib_context_set_image(s_image.imlib);
		imlib_context_set_drawable(window_pixmap);
		imlib_render_image_part_on_drawable_at_size(
			/* sxywh */ sx, sy, sw, sh,
			/* dxywh */ dx, dy, dw, dh
		);
	} else {
		fputs("not rendering because there is no image.\n", stderr);
	}

	XSetWindowBackgroundPixmap(x11.display, x11_window, window_pixmap);
	XClearWindow(x11.display, x11_window);
}
Beispiel #3
0
void render_buffer()
{
	frame++;
	need_render_frame = 0;
	if (in_game >= 5) {
		render_game(); 
	}
	else {
		switch(mode)
		{
			
			case 1:	render_checkerboard();	break;
			case 2:	render_psycho();		break;
			case 3:	render_heartbeat();		break;
			case 4:	render_rain();			break;
			case 5:	render_fire();			break;
			case 6:	render_character(28);	break;
			case 7: render_character(29);	break;
			case 8: render_character(30);	break;
			case 9: render_character(31);	break;
			case 10: render_character(32);	break;
			case 11: render_character(33);	break;
			case 12: render_character(34);	break;
			case 13: render_character(35);	break;
			case 14: render_character(36);	break;
			case 15: render_character(37);	break;
			case 16: render_character(38);	break;
			case 17: render_character(39);	break;
			case 18: render_character(40);	break;
			case 19: render_character(0);	break;
			case 20: render_character(1);	break;
			case 21: render_character(2);	break;
			case 22: render_character(3);	break;
			case 23: render_character(4);	break;
			case 24: render_character(5);	break;
			case 25: render_character(6);	break;
			case 26: render_character(7);	break;
			case 27: render_character(8);	break;
			case 28: render_character(9);	break;
			case 29: render_character(10);	break;
			case 30: render_character(11);	break;
			case 31: render_character(12);	break;
			case 32: render_character(13);	break;
			case 33: render_character(14);	break;
			case 34: render_character(15);	break;
			case 35: render_character(16);	break;
			case 36: render_character(17);	break;
			case 37: render_character(18);	break;
			case 38: render_character(19);	break;
			case 39: render_character(20);	break;
			case 40: render_character(21);	break;
			case 41: render_character(22);	break;
			case 42: render_character(23);	break;
			case 43: render_character(24);	break;
			case 44: render_character(25);	break;
			case 45: render_character(26);	break;
		}
	}
	if (in_game >= 10) {
		in_game = 0;
		render_game(); 
	}

}