int main() { if (SystemCheck()) { LOG("Adding resources."); if (Effect.Load) Effect.Load(); StartEventQueue(); StartProfiling(); SetFrameCounter(0); TRY { BOOL loopExit = false; LOG("Setting up the effect."); Effect.Init(); LOG("Running up main loop."); do { InputEventT event; int32_t frameNumber; while (EventQueuePop(&event)) { if (event.ie_Class == IECLASS_RAWKEY) if (event.ie_Code & IECODE_UP_PREFIX) if ((event.ie_Code & ~IECODE_UP_PREFIX) == KEY_ESCAPE) loopExit = true; if (Effect.HandleEvent && !loopExit) Effect.HandleEvent(&event); } frameNumber = ReadFrameCounter(); Effect.Render(frameNumber); RenderFrameNumber(frameNumber); RenderFramesPerSecond(frameNumber); DisplaySwap(); } while (!loopExit); LOG("Tearing down the effect."); Effect.Kill(); } CATCH { LOG("Effect crashed!"); } StopProfiling(); StopEventQueue(); if (Effect.UnLoad) Effect.UnLoad(); } return 0; }
/* * Main loop. */ void MainLoop() { LoopEventT event = LOOP_CONTINUE; SetVBlankCounter(0); do { int frameNumber = GetVBlankCounter(); RenderEffect(frameNumber); RenderFrameNumber(frameNumber); RenderFramesPerSecond(frameNumber); DisplaySwap(); } while ((event = ReadLoopEvent()) != LOOP_EXIT); }
void MainLoop() { LoopEventT event = LOOP_CONTINUE; SetVBlankCounter(0); do { static bool paused = FALSE; static int oldFrameNumber = 0; int frameNumber = GetVBlankCounter(); if (event == LOOP_PAUSE) paused = !paused; if (paused) { SetVBlankCounter(oldFrameNumber); frameNumber = oldFrameNumber; } else { oldFrameNumber = frameNumber; } if (event == LOOP_TRIGGER) { RenderMode++; if (RenderMode > 4) RenderMode = 0; if (RenderMode < RENDER_FILLED) RenderAllFaces = true; else RenderAllFaces = false; } RenderMesh(frameNumber); RenderFrameNumber(frameNumber); RenderFramesPerSecond(frameNumber); DisplaySwap(); } while ((event = ReadLoopEvent()) != LOOP_EXIT); }