parent->ConnectChild( node );
- parent->SetPropertyDirty( true );
-
// Inform the frame-callback-processor, if set, about the node-hierarchy changing
if( mImpl->frameCallbackProcessor )
{
{
DALI_LOG_INFO( gLogFilter, Debug::General, "[%x] RemoveRenderer\n", renderer );
- renderer->SetDirty( true );
-
// Find the renderer and destroy it
EraseUsingDiscardQueue( mImpl->renderers, renderer, mImpl->discardQueue, mSceneGraphBuffers.GetUpdateBufferIndex() );
// Need to remove the render object as well
mImpl->propertyResetters.EraseObject( elementPtr );
}
+ // Clear all root nodes dirty flags
+ for( auto& scene : mImpl->scenes )
+ {
+ auto root = scene->root;
+ root->ResetDirtyFlags( bufferIndex );
+ }
+
// Clear node dirty flags
Vector<Node*>::Iterator iter = mImpl->nodes.Begin()+1;
Vector<Node*>::Iterator endIter = mImpl->nodes.End();
if( keepRendererRendering )
{
keepUpdating |= KeepUpdating::STAGE_KEEP_RENDERING;
+
+ // Set dirty flags for next frame to continue rendering
+ mImpl->nodeDirtyFlags |= RenderableUpdateFlags;
}
// tell the update manager that we're done so the queue can be given to event thread