[Tizen] Implement partial update
[platform/core/uifw/dali-core.git] / dali / internal / event / rendering / frame-buffer-impl.cpp
old mode 100644 (file)
new mode 100755 (executable)
index fd5f4bf..fe94b5b
@@ -76,7 +76,8 @@ void FrameBuffer::Initialize( Integration::RenderSurface* renderSurface )
     mRenderObject = new Render::TextureFrameBuffer( mWidth, mHeight, mAttachments );
   }
 
-  AddFrameBuffer( mEventThreadServices.GetUpdateManager(), *mRenderObject );
+  OwnerPointer< Render::FrameBuffer > transferOwnership( mRenderObject );
+  AddFrameBuffer( mEventThreadServices.GetUpdateManager(), transferOwnership );
 }
 
 void FrameBuffer::AttachColorTexture( TexturePtr texture, uint32_t mipmapLevel, uint32_t layer )
@@ -105,6 +106,43 @@ Texture* FrameBuffer::GetColorTexture()
   return mIsSurfaceBacked ? nullptr : mColor.Get();
 }
 
+void FrameBuffer::SetSize( uint32_t width, uint32_t height )
+{
+  mWidth = width;
+  mHeight = height;
+
+  if( mRenderObject->IsSurfaceBacked() )
+  {
+    SetFrameBufferSizeMessage( mEventThreadServices.GetUpdateManager(), static_cast<Render::SurfaceFrameBuffer*>( mRenderObject ), width, height );
+  }
+}
+
+void FrameBuffer::SetBackgroundColor( const Vector4& color )
+{
+  if( mRenderObject->IsSurfaceBacked() )
+  {
+    SetFrameBufferBackgroundColorMessage( mEventThreadServices.GetUpdateManager(), static_cast<Render::SurfaceFrameBuffer*>( mRenderObject ), color );
+  }
+}
+
+void FrameBuffer::MarkSurfaceAsInvalid()
+{
+  if ( mIsSurfaceBacked )
+  {
+    Render::SurfaceFrameBuffer* renderObject = static_cast<Render::SurfaceFrameBuffer*>( mRenderObject );
+    renderObject->MarkSurfaceAsInvalid();
+  }
+}
+
+void FrameBuffer::SetPartialUpdateEnabled( bool value )
+{
+  if( mRenderObject->IsSurfaceBacked() )
+  {
+    SetFrameBufferPartialUpdateMessage( mEventThreadServices.GetUpdateManager(), static_cast<Render::SurfaceFrameBuffer*>( mRenderObject ), value );
+  }
+}
+
+
 FrameBuffer::~FrameBuffer()
 {
   if( EventThreadServices::IsCoreRunning() && mRenderObject )