bool ExamplesMainUpdate() { s3eDeviceYield(0); s3eKeyboardUpdate(); s3ePointerUpdate(); int64 start = s3eTimerGetMs(); if (!ExampleUpdate() || ExampleCheckQuit()) { s3eDebugTracePrintf("ExampleUpdate returned false, exiting.."); return false; } // Clear the screen if (g_ClearScreen) IwGxClear(IW_GX_COLOUR_BUFFER_F | IW_GX_DEPTH_BUFFER_F); ButtonsRender(); if (g_DrawCursor) CursorRender(); SoftkeysRender(); // User code render ExampleRender(); // Attempt frame rate while ((s3eTimerGetMs() - start) < MS_PER_FRAME) { int32 yield = (int32) (MS_PER_FRAME - (s3eTimerGetMs() - start)); if (yield<0) break; s3eDeviceYield(yield); } IwGxFlush(); IwGxSwapBuffers(); return true; }
void ExampleRender() { // Get pointer to the screen surface // (pixel depth is 2 bytes by default) uint16* screen = (uint16*)s3eSurfacePtr(); int height = s3eSurfaceGetInt(S3E_SURFACE_HEIGHT); int width = s3eSurfaceGetInt(S3E_SURFACE_WIDTH); int pitch = s3eSurfaceGetInt(S3E_SURFACE_PITCH); // Clear screen to white for (int i=0; i < height; i++) { memset((char*)screen + pitch * i, 255, (width * 2)); } // This was causing an error to pop up. s3ePointerUpdate(); ButtonsRender(); s3eDebugPrint(20, 365, g_TouchEventMsg, 1); }
bool ExamplesMainUpdate() { s3eKeyboardUpdate(); s3ePointerUpdate(); if (!ExampleUpdate()) { s3eDebugTracePrintf("ExampleUpdate returned false, exiting.."); return false; } if (g_ClearScreen) s3eSurfaceClear(0xff,0xff,0xff); ExampleRender(); ButtonsRender(); SoftkeysRender(); if (g_DrawCursor) CursorRender(); s3eSurfaceShow(); s3eDeviceYield(FRAMETIME); return true; }