示例#1
0
文件: sim.cpp 项目: pyrated/maise
void Sim::run() {
  running = true;
  float t0 = 0, t1 = 0, dt = 0;
  float ft = 0, f = 0, fps = 0;
  clock_t start_time = raw_time();
  while (running) {
    t1 = (float) (raw_time() - start_time) * 1e-9;
    dt = t1 - t0;
    t0 = t1;

    if (f > 60) {
      fps = f / (t1 - ft);
      printf("%.1lf fps\n", fps);
      ft = t0;
      f = 0;
    }
    f++;

    keyboard_clear();
    glutMainLoopEvent();
    look();
    if (callback)
      callback(dt, cb_data);

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    list<Geometry*>::iterator g, end = geoms.end();
    for(g = geoms.begin(); g != end; g++) {
      (*g)->draw(dt);
    }

    glutSwapBuffers();
  }
}
示例#2
0
static void
test_keyboard_clear()
{
  unsigned char expected_keyports[8] = {
    0xff, 0xff, 0xff, 0xff,
    0xff, 0xff, 0xff, 0xff
  };

  keyboard_init();
  keyboard_keypress(AceKey_3);
  keyboard_keypress(AceKey_7);
  keyboard_keypress(AceKey_u);
  keyboard_keypress(AceKey_e);
  keyboard_keypress(AceKey_f);
  keyboard_keypress(AceKey_l);
  keyboard_keypress(AceKey_n);
  keyboard_keypress(AceKey_z);
  keyboard_clear();

  check_keyports(expected_keyports);
}