Mark uniform map as not having changed when it's ready
[platform/core/uifw/dali-core.git] / dali / internal / update / rendering / scene-graph-renderer.cpp
index 9718893..f2ecb41 100644 (file)
@@ -174,7 +174,11 @@ void Renderer::operator delete( void* ptr )
 
 void Renderer::PrepareRender( BufferIndex updateBufferIndex )
 {
-  if( mRegenerateUniformMap > UNIFORM_MAP_READY )
+  if( mRegenerateUniformMap == UNIFORM_MAP_READY )
+  {
+    mUniformMapChanged[updateBufferIndex] = false;
+  }
+  else
   {
     if( mRegenerateUniformMap == REGENERATE_UNIFORM_MAP)
     {
@@ -212,7 +216,7 @@ void Renderer::PrepareRender( BufferIndex updateBufferIndex )
   {
     if( mResendFlag & RESEND_DATA_PROVIDER )
     {
-      RenderDataProvider* dataProvider = NewRenderDataProvider();
+      OwnerPointer<RenderDataProvider> dataProvider = NewRenderDataProvider();
 
       typedef MessageValue1< Render::Renderer, OwnerPointer<RenderDataProvider> > DerivedType;
       unsigned int* slot = mSceneController->GetRenderQueue().ReserveMessageSlot( updateBufferIndex, sizeof( DerivedType ) );
@@ -530,7 +534,8 @@ void Renderer::ConnectToSceneGraph( SceneController& sceneController, BufferInde
   mRenderer = Render::Renderer::New( dataProvider, mGeometry, mBlendBitmask, GetBlendColor(), static_cast< FaceCullingMode::Type >( mFaceCullingMode ),
                                          mPremultipledAlphaEnabled, mDepthWriteMode, mDepthTestMode, mDepthFunction, mStencilParameters );
 
-  mSceneController->GetRenderMessageDispatcher().AddRenderer( *mRenderer );
+  OwnerPointer< Render::Renderer > transferOwnership( mRenderer );
+  mSceneController->GetRenderMessageDispatcher().AddRenderer( transferOwnership );
 }
 
 //Called just before destroying the scene-graph renderer ( when the "event-thread renderer" is no longer referenced )