+ if(mResendFlag & RESEND_DEPTH_WRITE_MODE)
+ {
+ using DerivedType = MessageValue1<Render::Renderer, DepthWriteMode::Type>;
+ uint32_t* slot = mSceneController->GetRenderQueue().ReserveMessageSlot(updateBufferIndex, sizeof(DerivedType));
+ new(slot) DerivedType(mRenderer, &Render::Renderer::SetDepthWriteMode, mDepthWriteMode);
+ }
+
+ if(mResendFlag & RESEND_DEPTH_TEST_MODE)
+ {
+ using DerivedType = MessageValue1<Render::Renderer, DepthTestMode::Type>;
+ uint32_t* slot = mSceneController->GetRenderQueue().ReserveMessageSlot(updateBufferIndex, sizeof(DerivedType));
+ new(slot) DerivedType(mRenderer, &Render::Renderer::SetDepthTestMode, mDepthTestMode);
+ }
+
+ if(mResendFlag & RESEND_DEPTH_FUNCTION)
+ {
+ using DerivedType = MessageValue1<Render::Renderer, DepthFunction::Type>;
+ uint32_t* slot = mSceneController->GetRenderQueue().ReserveMessageSlot(updateBufferIndex, sizeof(DerivedType));
+ new(slot) DerivedType(mRenderer, &Render::Renderer::SetDepthFunction, mDepthFunction);
+ }
+
+ if(mResendFlag & RESEND_RENDER_MODE)
+ {
+ using DerivedType = MessageValue1<Render::Renderer, RenderMode::Type>;
+ uint32_t* slot = mSceneController->GetRenderQueue().ReserveMessageSlot(updateBufferIndex, sizeof(DerivedType));
+ new(slot) DerivedType(mRenderer, &Render::Renderer::SetRenderMode, mStencilParameters.renderMode);
+ }
+
+ if(mResendFlag & RESEND_STENCIL_FUNCTION)
+ {
+ using DerivedType = MessageValue1<Render::Renderer, StencilFunction::Type>;
+ uint32_t* slot = mSceneController->GetRenderQueue().ReserveMessageSlot(updateBufferIndex, sizeof(DerivedType));
+ new(slot) DerivedType(mRenderer, &Render::Renderer::SetStencilFunction, mStencilParameters.stencilFunction);
+ }
+
+ if(mResendFlag & RESEND_STENCIL_FUNCTION_MASK)
+ {
+ using DerivedType = MessageValue1<Render::Renderer, int>;
+ uint32_t* slot = mSceneController->GetRenderQueue().ReserveMessageSlot(updateBufferIndex, sizeof(DerivedType));
+ new(slot) DerivedType(mRenderer, &Render::Renderer::SetStencilFunctionMask, mStencilParameters.stencilFunctionMask);
+ }
+
+ if(mResendFlag & RESEND_STENCIL_FUNCTION_REFERENCE)
+ {
+ using DerivedType = MessageValue1<Render::Renderer, int>;
+ uint32_t* slot = mSceneController->GetRenderQueue().ReserveMessageSlot(updateBufferIndex, sizeof(DerivedType));
+ new(slot) DerivedType(mRenderer, &Render::Renderer::SetStencilFunctionReference, mStencilParameters.stencilFunctionReference);
+ }
+
+ if(mResendFlag & RESEND_STENCIL_MASK)
+ {
+ using DerivedType = MessageValue1<Render::Renderer, int>;
+ uint32_t* slot = mSceneController->GetRenderQueue().ReserveMessageSlot(updateBufferIndex, sizeof(DerivedType));
+ new(slot) DerivedType(mRenderer, &Render::Renderer::SetStencilMask, mStencilParameters.stencilMask);
+ }
+
+ if(mResendFlag & RESEND_STENCIL_OPERATION_ON_FAIL)
+ {
+ using DerivedType = MessageValue1<Render::Renderer, StencilOperation::Type>;
+ uint32_t* slot = mSceneController->GetRenderQueue().ReserveMessageSlot(updateBufferIndex, sizeof(DerivedType));
+ new(slot) DerivedType(mRenderer, &Render::Renderer::SetStencilOperationOnFail, mStencilParameters.stencilOperationOnFail);
+ }
+
+ if(mResendFlag & RESEND_STENCIL_OPERATION_ON_Z_FAIL)
+ {
+ using DerivedType = MessageValue1<Render::Renderer, StencilOperation::Type>;
+ uint32_t* slot = mSceneController->GetRenderQueue().ReserveMessageSlot(updateBufferIndex, sizeof(DerivedType));
+ new(slot) DerivedType(mRenderer, &Render::Renderer::SetStencilOperationOnZFail, mStencilParameters.stencilOperationOnZFail);
+ }
+
+ if(mResendFlag & RESEND_STENCIL_OPERATION_ON_Z_PASS)
+ {
+ using DerivedType = MessageValue1<Render::Renderer, StencilOperation::Type>;
+ uint32_t* slot = mSceneController->GetRenderQueue().ReserveMessageSlot(updateBufferIndex, sizeof(DerivedType));
+ new(slot) DerivedType(mRenderer, &Render::Renderer::SetStencilOperationOnZPass, mStencilParameters.stencilOperationOnZPass);
+ }
+
+ if(mResendFlag & RESEND_SHADER)
+ {
+ using DerivedType = MessageValue1<Render::Renderer, bool>;
+ uint32_t* slot = mSceneController->GetRenderQueue().ReserveMessageSlot(updateBufferIndex, sizeof(DerivedType));
+ new(slot) DerivedType(mRenderer, &Render::Renderer::SetShaderChanged, true);
+ }
+
+ if(mResendFlag & RESEND_SET_RENDER_CALLBACK)
+ {
+ using DerivedType = MessageValue1<Render::Renderer, Dali::RenderCallback*>;
+ uint32_t* slot = mSceneController->GetRenderQueue().ReserveMessageSlot(updateBufferIndex, sizeof(DerivedType));
+ new(slot) DerivedType(mRenderer, &Render::Renderer::SetRenderCallback, mRenderCallback);
+ }
+
+ mResendFlag = 0;