Advertisement
Guest User

Untitled

a guest
Jul 11th, 2013
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.70 KB | None | 0 0
  1. //Loop function
  2. static void engine_draw_frame(struct engine* engine) {
  3.     if (lastDTE == 0)
  4.         lastDTE = clock();
  5.  
  6.     if (engine->display == NULL) {
  7.         // No display.
  8.         return;
  9.     }
  10.  
  11.     glViewport(0, 0, engine->width, engine->height);
  12.  
  13.     glClearColor(0.0, 0.0, 0.0, 1.0);
  14.     glClear(GL_COLOR_BUFFER_BIT);
  15.  
  16.     unsigned long startDraw = GetTimeMs64();
  17.  
  18.     clock_t curTime = clock();
  19.     double elapsedTime = ((float) (curTime - lastDTE) / CLOCKS_PER_SEC);
  20.  
  21.     state->calculateNextFrame(elapsedTime);
  22.  
  23.     lastDTE = curTime;
  24.  
  25.     state->draw();
  26.     checkGlError("draw");
  27.  
  28.     unsigned long endDraw = GetTimeMs64() - startDraw;
  29.  
  30.     unsigned long start = GetTimeMs64();
  31.  
  32.     eglSwapBuffers(engine->display, engine->surface);
  33.  
  34.     unsigned long end = GetTimeMs64() - start;
  35.  
  36. //Drawing
  37. void Gamestate::draw() {
  38.     clock_t start = clock();
  39.  
  40.     //background->draw();
  41.  
  42.     mapController->draw();
  43.  
  44.     lights->draw();
  45.     enemyManager->draw();
  46.     powerupManager->draw();
  47.  
  48.     //Controls
  49.     moveControl->draw();
  50.     rotateControl->draw();
  51.  
  52.     curElement->draw();
  53.     player->draw();
  54.  
  55.     //LOGI("Draw time : %f", ((float) (clock() - start) / CLOCKS_PER_SEC * 1000));
  56.  
  57. }
  58.  
  59. //Logic
  60. void Gamestate::calculateNextFrame(float dt) {
  61.     int region = lights->getActiveColor(player->getX(), player->getY());
  62.  
  63.     if (region == 0) {
  64.         curElement->setTexture(Engine::getTextureByResource("fire.png"));
  65.     } else if (region == 1) {
  66.         curElement->setTexture(Engine::getTextureByResource("water.png"));
  67.     } else if (region == 2) {
  68.         curElement->setTexture(Engine::getTextureByResource("earth.png"));
  69.     } else if (region == 3) {
  70.         curElement->setTexture(Engine::getTextureByResource("air.png"));
  71.     }
  72.  
  73.     powerupManager->tick(dt);
  74.     enemyManager->update(dt);
  75.     player->update(dt);
  76.  
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement