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; } }
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); }
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(); } }