RenderTaskProcessor::AddRenderablesForTask() optimization. 41/239741/9
authorGyörgy Straub <g.straub@partner.samsung.com>
Wed, 29 Jul 2020 09:55:48 +0000 (10:55 +0100)
committerGyörgy Straub <g.straub@partner.samsung.com>
Thu, 5 Nov 2020 07:39:08 +0000 (07:39 +0000)
- pulled loop-invariant conditional for which RenderableContainer to add
  to, out of the loop;
- replaced branch for assigning true, with compound or-assignment of the
  result of the check;

Change-Id: I2f36f2b7a5eb95da6e3cc04bddfbede0f8437b69
Signed-off-by: György Straub <g.straub@partner.samsung.com>
dali/internal/update/manager/render-task-processor.cpp

index 0079c2c..f74337b 100644 (file)
@@ -167,24 +167,14 @@ bool AddRenderablesForTask( BufferIndex updateBufferIndex,
   // Set the information in the node.
   node.SetClippingInformation( currentClippingId, clippingDepth, scissorDepth );
 
+  RenderableContainer& target = DALI_LIKELY( inheritedDrawMode == DrawMode::NORMAL ) ?
+    layer->colorRenderables : layer->overlayRenderables;
   for( uint32_t i = 0; i < count; ++i )
   {
     SceneGraph::Renderer* renderer = node.GetRendererAt( i );
+    target.PushBack( Renderable( &node, renderer ) );
 
-    // Normal is the more-likely draw mode to occur.
-    if( DALI_LIKELY( inheritedDrawMode == DrawMode::NORMAL ) )
-    {
-      layer->colorRenderables.PushBack( Renderable( &node, renderer ) );
-    }
-    else
-    {
-      layer->overlayRenderables.PushBack( Renderable( &node, renderer ) );
-    }
-
-    if( renderer->GetRenderingBehavior() == DevelRenderer::Rendering::CONTINUOUSLY )
-    {
-      keepRendering = true;
-    }
+    keepRendering = keepRendering || ( renderer->GetRenderingBehavior() == DevelRenderer::Rendering::CONTINUOUSLY );
   }
 
   // Recurse children.