[Issue#] N/A
[Problem] When reusing renderlists for stencil renderers, the stencil renderers
are rendered in the color buffer sometimes.
[Cause] When reusing a renderlist for stencil renderers the appropiate flags
where not seted on the renderlist which causes this renderers to be rendered in
the color buffer.
[Solution] Added a function to reset the flags correctly for stencil
renderlists as in the rest of renderlists (opaque, transparent and overlay)
Change-Id: Ic80a33af8ac8ac6bf606610fae5d6279cee8cf81
Signed-off-by: David Steele <david.steele@partner.samsung.com>
+ * Set flags for stencil renderlist
+ * @param renderList to set the flags for
+ */
+inline void SetStencilRenderFlags( RenderList& renderList )
+{
+ renderList.ClearFlags();
+ renderList.SetFlags(RenderList::STENCIL_CLEAR | RenderList::STENCIL_WRITE | RenderList::STENCIL_TEST);
+}
+
+/**
* Add a renderer to the list
* @param updateBufferIndex to read the model matrix from
* @param renderList to add the item to
* Add a renderer to the list
* @param updateBufferIndex to read the model matrix from
* @param renderList to add the item to
{
RenderList& stencilRenderList = instruction.GetNextFreeRenderList( layer.stencilRenderables.size() );
stencilRenderList.SetClipping( layer.IsClipping(), layer.GetClippingBox() );
{
RenderList& stencilRenderList = instruction.GetNextFreeRenderList( layer.stencilRenderables.size() );
stencilRenderList.SetClipping( layer.IsClipping(), layer.GetClippingBox() );
+ SetStencilRenderFlags( stencilRenderList );
// try to reuse cached renderitems from last time around
if( tryReuseRenderList )
// try to reuse cached renderitems from last time around
if( tryReuseRenderList )
}
}
AddRenderersToRenderList( updateBufferIndex, stencilRenderList, layer.stencilRenderables, viewMatrix );
}
}
AddRenderersToRenderList( updateBufferIndex, stencilRenderList, layer.stencilRenderables, viewMatrix );
-
- stencilRenderList.ClearFlags();
- stencilRenderList.SetFlags(RenderList::STENCIL_CLEAR);
- stencilRenderList.SetFlags(RenderList::STENCIL_WRITE);
- stencilRenderList.SetFlags(RenderList::STENCIL_TEST);