X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fupdate%2Frendering%2Fscene-graph-renderer.h;h=3dda873976e4a3744d2a0185112a5392266e169f;hb=15e293571ecbf62a7cd7dfc30fb0ce4edc5bce44;hp=57d81a685cf7c4cd0b3ebfd445571f0bc65d1425;hpb=c114bfe4714e8f02c54b25e381a41d80bdcb2d93;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/update/rendering/scene-graph-renderer.h b/dali/internal/update/rendering/scene-graph-renderer.h index 57d81a6..3dda873 100755 --- a/dali/internal/update/rendering/scene-graph-renderer.h +++ b/dali/internal/update/rendering/scene-graph-renderer.h @@ -19,6 +19,7 @@ #include #include // Dali::Renderer +#include #include #include #include @@ -323,6 +324,18 @@ public: float GetOpacity( BufferIndex updateBufferIndex ) const; /** + * Sets the rendering behavior + * @param[in] renderingBehavior The rendering behavior required. + */ + void SetRenderingBehavior( DevelRenderer::Rendering::Type renderingBehavior ); + + /** + * Gets the rendering behavior + * @return The rendering behavior + */ + DevelRenderer::Rendering::Type GetRenderingBehavior() const; + + /** * Prepare the object for rendering. * This is called by the UpdateManager when an object is due to be rendered in the current frame. * @param[in] updateBufferIndex The current update buffer index. @@ -367,6 +380,18 @@ public: */ void DisconnectFromSceneGraph( SceneController& sceneController, BufferIndex bufferIndex ); + /** + * Enable/Disable Partial update dirty flag + * @param[in] true to mark dirty else false + */ + void SetDirty( bool value ); + + /** + * Get Partial update dirty flag + * @return true if dirty else false + */ + bool IsDirty() const; + public: // Implementation of ConnectionChangePropagator /** * @copydoc ConnectionChangePropagator::AddObserver @@ -456,9 +481,11 @@ private: BlendMode::Type mBlendMode:3; ///< Local copy of the mode of blending DepthWriteMode::Type mDepthWriteMode:3; ///< Local copy of the depth write mode DepthTestMode::Type mDepthTestMode:3; ///< Local copy of the depth test mode + DevelRenderer::Rendering::Type mRenderingBehavior:2; ///< The rendering behavior bool mUniformMapChanged[2]; ///< Records if the uniform map has been altered this frame bool mPremultipledAlphaEnabled:1; ///< Flag indicating whether the Pre-multiplied Alpha Blending is required + bool mDirty:1; ///< Required for marking it dirty in case of partial update. public: @@ -703,6 +730,16 @@ inline void BakeOpacityMessage( EventThreadServices& eventThreadServices, const new (slot) LocalType( &renderer, &Renderer::BakeOpacity, opacity ); } +inline void SetRenderingBehaviorMessage( EventThreadServices& eventThreadServices, const Renderer& renderer, DevelRenderer::Rendering::Type renderingBehavior ) +{ + using LocalType = MessageValue1< Renderer, DevelRenderer::Rendering::Type >; + + // Reserve some memory inside the message queue + uint32_t* slot = eventThreadServices.ReserveMessageSlot( sizeof( LocalType ) ); + + new (slot) LocalType( &renderer, &Renderer::SetRenderingBehavior, renderingBehavior ); +} + } // namespace SceneGraph } // namespace Internal } // namespace Dali