X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Frender%2Frenderers%2Frender-surface-frame-buffer.h;h=e08666c09b1f605de3ee38098c3ebca78ec69fd4;hb=0a68c62785eaa442cfa213157431d6f2c9b37033;hp=ebe7eb59ae340e2b70e3ca065d9dd946fd0b5381;hpb=9aa1524146da93e1696e96bfc7f3792bd2748a39;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 index ebe7eb5..e08666c 100644 --- a/dali/internal/render/renderers/render-surface-frame-buffer.h +++ b/dali/internal/render/renderers/render-surface-frame-buffer.h @@ -17,6 +17,9 @@ * limitations under the License. */ +// EXTERNAL INCLUDES +#include + // INTERNAL INCLUDES #include #include @@ -91,10 +94,16 @@ public: void SetSize( uint32_t width, uint32_t height ); /** - * @brief Sets the background color. - * @param[in] color The new background color + * @copydoc Dali::Internal::FrameBuffer::MarkSurfaceAsInvalid() */ - void SetBackgroundColor( const Vector4& color ); + void MarkSurfaceAsInvalid() { mIsSurfaceInvalid = true; }; + + /** + * @brief Gets whether the render surface in this frame buffer is valid or not + * @note The render surface becomes invalid when it is deleted in the event thread + * @return Whether the render surface is valid or not + */ + bool IsSurfaceValid() const; public: @@ -110,22 +119,9 @@ public: Context* GetContext(); /** - * @brief Gets whether the depth buffer is required - * @return TRUE if the depth buffer is required - */ - Integration::DepthBufferAvailable GetDepthBufferRequired(); - - /** - * @brief Gets whether the stencil buffer is required - * @return TRUE if the stencil buffer is required - */ - Integration::StencilBufferAvailable GetStencilBufferRequired(); - - /** - * @brief Gets the background color of the surface. - * @return The background color + * @brief Makes the graphics context current */ - Vector4 GetBackgroundColor(); + void MakeContextCurrent(); private: @@ -134,8 +130,8 @@ private: uint32_t mWidth; uint32_t mHeight; - Vector4 mBackgroundColor; bool mSizeChanged; + std::atomic mIsSurfaceInvalid; ///< This is set only from the event thread and read only from the render thread }; // Messages for FrameBuffer @@ -150,17 +146,6 @@ inline void SetFrameBufferSizeMessage( SceneGraph::UpdateManager& updateManager, new (slot) LocalType( surfaceFrameBuffer, &SurfaceFrameBuffer::SetSize, width, height ); } -inline void SetFrameBufferBackgroundColorMessage( SceneGraph::UpdateManager& updateManager, SurfaceFrameBuffer* surfaceFrameBuffer, const Vector4& color ) -{ - typedef MessageValue1< SurfaceFrameBuffer, Vector4 > 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::SetBackgroundColor, color ); -} - } // namespace Render } // namespace Internal