/* * Main loop. */ void MainLoop() { LoopEventT event = LOOP_CONTINUE; SetVBlankCounter(0); do { int frameNumber = GetVBlankCounter(); if (event != LOOP_CONTINUE) { CanvasFill(R_("Canvas"), 0); if (event == LOOP_NEXT) effect = (effect + 1) % lastEffect; if (event == LOOP_PREV) { effect--; if (effect < 0) effect += lastEffect; } } RenderVector(frameNumber); RenderChunky(frameNumber); RenderFrameNumber(frameNumber); DisplaySwap(); } while ((event = ReadLoopEvent()) != LOOP_EXIT); }
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); }
/* * Load demo. */ bool LoadDemo() { const char *loadImgPath = JsonQueryString(DemoConfig, "load/image"); const char *loadPalPath = JsonQueryString(DemoConfig, "load/palette"); const char *musicPath = JsonQueryString(DemoConfig, "music/file"); if ((TheLoadImg = NewPixBufFromFile(loadImgPath)) && (TheLoadPal = NewPaletteFromFile(loadPalPath)) && (TheMusic = AudioStreamOpen(musicPath)) && (TheCanvas = NewPixBuf(PIXBUF_CLUT, WIDTH, HEIGHT)) && InitDisplay(WIDTH, HEIGHT, DEPTH)) { c2p1x1_8_c5_bm(TheLoadImg->data, GetCurrentBitMap(), WIDTH, HEIGHT, 0, 0); LoadPalette(TheLoadPal); DisplaySwap(); return true; } return false; }
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); }