[Tizen] Implement partial update
[platform/core/uifw/dali-core.git] / dali / internal / render / renderers / render-surface-frame-buffer.cpp
old mode 100644 (file)
new mode 100755 (executable)
index 396af00..ee8c49c
@@ -34,7 +34,8 @@ SurfaceFrameBuffer::SurfaceFrameBuffer( Integration::RenderSurface* surface )
   mWidth( mSurface->GetPositionSize().width ),
   mHeight( mSurface->GetPositionSize().height ),
   mSizeChanged( false ),
-  mIsSurfaceInvalid( false )
+  mIsSurfaceInvalid( false ),
+  mPartialUpdateEnabled( true )
 {
 }
 
@@ -103,6 +104,15 @@ void SurfaceFrameBuffer::PostRender()
   }
 
   mSizeChanged = false;
+  mPartialUpdateEnabled = true;
+}
+
+void SurfaceFrameBuffer::SetDamagedRect( const Dali::DamagedRect& damagedRect, Dali::DamagedRect& mergedRect )
+{
+  if ( IsSurfaceValid() )
+  {
+    mSurface->SetDamagedRect( damagedRect, mergedRect );
+  }
 }
 
 Context* SurfaceFrameBuffer::GetContext()
@@ -130,6 +140,21 @@ bool SurfaceFrameBuffer::IsSurfaceValid() const
   return mSurface && !mIsSurfaceInvalid;
 }
 
+bool SurfaceFrameBuffer::IsPartialUpdateEnabled() const
+{
+  bool ret = false;
+  if ( IsSurfaceValid() )
+  {
+    ret = mSurface->GetBufferAge() && ( mPartialUpdateEnabled && !mSizeChanged );
+  }
+  return ret;
+}
+
+void SurfaceFrameBuffer::SetPartialUpdateEnabled( bool value )
+{
+  mPartialUpdateEnabled = value;
+}
+
 } //Render
 
 } //Internal