X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=sidebyside;f=dali%2Finternal%2Frender%2Frenderers%2Frender-surface-frame-buffer.h;h=6749e8745fd40ba68796eea24a3dde961207c28b;hb=15e293571ecbf62a7cd7dfc30fb0ce4edc5bce44;hp=edd667d3375622ac8a1c664c5ed1b541dc250c38;hpb=b0a5dac6bff43996b98853f846068d426146ac42;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/render/renderers/render-surface-frame-buffer.h b/dali/internal/render/renderers/render-surface-frame-buffer.h old mode 100644 new mode 100755 index edd667d..6749e87 --- a/dali/internal/render/renderers/render-surface-frame-buffer.h +++ b/dali/internal/render/renderers/render-surface-frame-buffer.h @@ -135,6 +135,25 @@ public: */ Vector4 GetBackgroundColor(); + /** + * @brief Sets currentframe damaged rects + * @param[in] Sets currentframe damaged rects + * @param[out] return merged rect + */ + void SetDamagedRect( const Dali::DamagedRect& damagedRect, Dali::DamagedRect& mergedRect ); + + /** + * @brief Gets whether partial update is required for partial update + * @return whether partial update or not + */ + bool IsPartialUpdateEnabled() const; + + /** + * @brief Sets whether partial update is required for partial update + * @param[in] value whether partial update or not + */ + void SetPartialUpdateEnabled( bool value ); + private: Integration::RenderSurface* mSurface; ///< The render surface @@ -144,7 +163,9 @@ private: uint32_t mHeight; Vector4 mBackgroundColor; bool mSizeChanged; + bool mBackgroundColorChanged; std::atomic mIsSurfaceInvalid; ///< This is set only from the event thread and read only from the render thread + bool mPartialUpdateEnabled; ///< This value is whether partial update is required }; // Messages for FrameBuffer @@ -170,6 +191,17 @@ inline void SetFrameBufferBackgroundColorMessage( SceneGraph::UpdateManager& upd new (slot) LocalType( surfaceFrameBuffer, &SurfaceFrameBuffer::SetBackgroundColor, color ); } +inline void SetFrameBufferPartialUpdateMessage( SceneGraph::UpdateManager& updateManager, SurfaceFrameBuffer* surfaceFrameBuffer, bool value ) +{ + typedef MessageValue1< SurfaceFrameBuffer, bool > LocalType; + + // Reserve some memory inside the message queue + uint32_t* slot = updateManager.ReserveMessageSlot( sizeof( LocalType ) ); + + // Construct message in the message queue memory; note that delete should not be called on the return value + new (slot) LocalType( surfaceFrameBuffer, &SurfaceFrameBuffer::SetPartialUpdateEnabled, value ); +} + } // namespace Render } // namespace Internal