static void gears_idle(void) { static int frames = 0; static double tRot0 = -1.0, tRate0 = -1.0; double dt, t = rsxgltest_elapsed_time /*eglutGet(EGLUT_ELAPSED_TIME) / 1000.0*/; if (tRot0 < 0.0) tRot0 = t; dt = t - tRot0; tRot0 = t; /* advance rotation for next frame */ angle += 70.0 * dt; /* 70 degrees per second */ if (angle > 3600.0) angle -= 3600.0; #if 0 eglutPostRedisplay(); #endif frames++; if (tRate0 < 0.0) tRate0 = t; if (t - tRate0 >= 5.0) { GLfloat seconds = t - tRate0; GLfloat fps = frames / seconds; printf("%d frames in %3.1f seconds = %6.3f FPS\n", frames, seconds, fps); tRate0 = t; frames = 0; } }
static void key(unsigned char key) { switch (key) { case ' ': animate = !animate; break; case 't': { GLint size; tex_format = (tex_format + 1) % (NUM_CPAL_FORMATS + 1); if (tex_format < NUM_CPAL_FORMATS) { size = make_cpal_texture(tex_format); printf("Using %s (%d bytes)\n", cpal_formats[tex_format].name, size); } else { size = make_texture(); printf("Using uncompressed texture (%d bytes)\n", size); } eglutPostRedisplay(); } break; case 27: eglutDestroyWindow(win); exit(0); break; default: break; } }
static void idle(void) { if (animate) { view_posx += 1.0; view_posy += 2.0; eglutPostRedisplay(); } }
static void idle(void) { static double t0 = -1.; double dt, t = eglutGet(EGLUT_ELAPSED_TIME) / 1000.0; if (t0 < 0.0) t0 = t; dt = t - t0; t0 = t; angle += 70.0 * dt; /* 70 degrees per second */ angle = fmod(angle, 360.0); /* prevents eventual overflow */ eglutPostRedisplay(); }
static void draw(void) { vgClear(0, 0, width, height); vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE); vgLoadIdentity(); vgTranslate(width/2, height/2); vgRotate(angle); vgTranslate(-width/2, -height/2); lion_render(lion); ++angle; eglutPostRedisplay(); }
static void idle(void) { eglutPostRedisplay(); }
static void draw(void) { launcher->draw(); eglutPostRedisplay(); }