bool TestApplication::Render( unsigned int intervalMilliseconds, const char* location )
{
DoUpdate( intervalMilliseconds, location );
- mCore->Render( mRenderStatus );
+ mCore->Render( mRenderStatus, false );
mFrame++;
bool TestApplication::RenderOnly( )
{
// Update Time values
- mCore->Render( mRenderStatus );
+ mCore->Render( mRenderStatus, false );
mFrame++;
return mImpl->GetMaximumUpdateCount();
}
- void Core::Update( float elapsedSeconds, unsigned int lastVSyncTimeMilliseconds, unsigned int nextVSyncTimeMilliseconds, UpdateStatus& status, bool renderToFboEnabled, bool isRenderingToFbo )
+void Core::Update( float elapsedSeconds, unsigned int lastVSyncTimeMilliseconds, unsigned int nextVSyncTimeMilliseconds, UpdateStatus& status, bool renderToFboEnabled, bool isRenderingToFbo )
{
mImpl->Update( elapsedSeconds, lastVSyncTimeMilliseconds, nextVSyncTimeMilliseconds, status, renderToFboEnabled, isRenderingToFbo );
}
-void Core::Render( RenderStatus& status )
+void Core::Render( RenderStatus& status, bool forceClear )
{
- mImpl->Render( status );
+ mImpl->Render( status, forceClear );
}
SystemOverlay& Core::GetSystemOverlay()
* Multi-threading note: this method should be called from a dedicated rendering thread.
* @pre The GL context must have been created, and made current.
* @param[out] status showing whether update is required to run.
+ * @param[in] forceClear force the Clear on the framebuffer even if nothing is rendered.
*/
- void Render( RenderStatus& status );
+ void Render( RenderStatus& status, bool forceClear );
// System-level overlay
// Any message to update will wake it up anyways
}
-void Core::Render( RenderStatus& status )
+void Core::Render( RenderStatus& status, bool forceClear )
{
- mRenderManager->Render( status );
+ mRenderManager->Render( status, forceClear );
}
void Core::SceneCreated()
/**
* @copydoc Dali::Integration::Core::Render()
*/
- void Render( Integration::RenderStatus& status );
+ void Render( Integration::RenderStatus& status, bool forceClear );
/**
* @copydoc Dali::Integration::Core::SceneCreated()
return &(mImpl->programController);
}
-void RenderManager::Render( Integration::RenderStatus& status )
+void RenderManager::Render( Integration::RenderStatus& status, bool forceClear )
{
DALI_PRINT_RENDER_START( mImpl->renderBufferIndex );
const bool haveInstructions = count > 0u;
// Only render if we have instructions to render, or the last frame was rendered (and therefore a clear is required).
- if( haveInstructions || mImpl->lastFrameWasRendered )
+ if( haveInstructions || mImpl->lastFrameWasRendered || forceClear )
{
// Mark that we will require a post-render step to be performed (includes swap-buffers).
status.SetNeedsPostRender( true );
/**
* Renders the results of the previous "update" traversal.
* @param[out] status contains the rendering flags.
+ * @param[in] forceClear force the Clear on the framebuffer even if nothing is rendered.
*/
- void Render( Integration::RenderStatus& status );
+ void Render( Integration::RenderStatus& status, bool forceClear );
private: