/** * @brief * Run the application */ int FirstGpgpu::run() { // Create an instance of a renderer application on the C runtime stack // -> We only use this instance in order to create and manage the renderer instance easily in this example ApplicationRenderer applicationRenderer(mRendererName); // Get the renderer instance and ensure it's valid mRenderer = applicationRenderer.getRenderer(); if (nullptr != mRenderer) { // Call initialization method onInitialization(); // Let the application to it's job onDoJob(); // Call de-initialization method onDeinitialization(); // Release our renderer reference mRenderer = nullptr; } // Done, no error return 0; }
int IApplication::run() { // Call application implementation initialization method mApplicationImpl->onInitialization(); onInitialization(); // Main loop - Process OS messages (non-blocking) first while (!mApplicationImpl->processMessages()) { // Update the application logic onUpdate(); // Redraw request redraw(); } // Call application implementation de-initialization method onDeinitialization(); mApplicationImpl->onDeinitialization(); // Done, no error return 0; }
/** * @brief * Destructor */ virtual ~ApplicationRenderer() { // Call application implementation de-initialization method onDeinitialization(); }