CanvasView: Refactoring to get rasterized buffer
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / dali-toolkit-test-utils / toolkit-canvas-renderer.cpp
index 0d6b87e..43aa8ce 100644 (file)
@@ -38,8 +38,10 @@ class CanvasRenderer: public Dali::BaseObject
 {
 public:
   CanvasRenderer( const Vector2& size )
-  : mPixelBuffer( Devel::PixelBuffer::New(size.width, size.height, Dali::Pixel::RGBA8888) ),
-    mSize(size)
+  : mDrawable(nullptr),
+    mTexture ( Dali::Texture::New( Dali::TextureType::TEXTURE_2D, Pixel::RGBA8888, size.width, size.height ) ),
+    mSize(size),
+    mViewBox(size)
   {
   }
 
@@ -52,22 +54,55 @@ public:
      return true;
   }
 
+  bool IsCanvasChanged() const
+  {
+     return true;
+  }
+
+  Dali::Texture GetRasterizedTexture()
+  {
+    return mTexture;
+  }
+
+  bool Rasterize()
+  {
+     return true;
+  }
+
   bool AddDrawable(Dali::CanvasRenderer::Drawable& drawable)
   {
     if (!drawable)
     {
       return false;
     }
+    mDrawable = &drawable;
     return true;
   }
 
-  Devel::PixelBuffer GetPixelBuffer()
+  bool RemoveDrawable(Dali::CanvasRenderer::Drawable& drawable)
   {
-    return mPixelBuffer;
+    if (!drawable)
+    {
+      return false;
+    }
+    if (mDrawable == &drawable)
+    {
+      mDrawable = nullptr;
+      return true;
+    }
+    return false;
   }
 
+  bool RemoveAllDrawables()
+  {
+    if (mDrawable)
+    {
+      return true;
+    }
+    return false;
+  }
 
-  bool SetSize(const Vector2& size)
+  bool SetSize(Vector2 size)
   {
     mSize = size;
     // For negative test
@@ -78,16 +113,32 @@ public:
     return true;
   }
 
-  const Vector2& GetSize()
+  Vector2 GetSize() const
+  {
+    return Vector2(200, 200);
+  }
+
+  bool SetViewBox(const Vector2& viewBox)
   {
-    mSize = Vector2(200, 200);
-    return mSize;
+    mViewBox = viewBox;
+    // For negative test
+    if ( viewBox.width == -999 && viewBox.height == -999 )
+    {
+      return false;
+    }
+    return true;
   }
 
+  const Vector2& GetViewBox()
+  {
+    return mViewBox;
+  }
 
 public:
-   Devel::PixelBuffer mPixelBuffer;
+   Dali::CanvasRenderer::Drawable* mDrawable;
+   Dali::Texture mTexture;
    Vector2 mSize;
+   Vector2 mViewBox;
 };
 
 inline CanvasRenderer& GetImplementation( Dali::CanvasRenderer& renderer )
@@ -138,9 +189,19 @@ bool CanvasRenderer::Commit()
   return Internal::Adaptor::GetImplementation(*this).Commit();
 }
 
-Devel::PixelBuffer CanvasRenderer::GetPixelBuffer()
+bool CanvasRenderer::IsCanvasChanged() const
+{
+  return Internal::Adaptor::GetImplementation(*this).IsCanvasChanged();
+}
+
+bool CanvasRenderer::Rasterize()
+{
+  return Internal::Adaptor::GetImplementation(*this).Rasterize();
+}
+
+Dali::Texture CanvasRenderer::GetRasterizedTexture()
 {
-  return Internal::Adaptor::GetImplementation(*this).GetPixelBuffer();
+  return Internal::Adaptor::GetImplementation(*this).GetRasterizedTexture();
 }
 
 bool CanvasRenderer::AddDrawable(Dali::CanvasRenderer::Drawable& drawable)
@@ -148,15 +209,34 @@ bool CanvasRenderer::AddDrawable(Dali::CanvasRenderer::Drawable& drawable)
   return Internal::Adaptor::GetImplementation(*this).AddDrawable(drawable);
 }
 
-bool CanvasRenderer::SetSize(const Vector2& size)
+bool CanvasRenderer::RemoveDrawable(Dali::CanvasRenderer::Drawable& drawable)
+{
+  return Internal::Adaptor::GetImplementation(*this).RemoveDrawable(drawable);
+}
+
+bool CanvasRenderer::RemoveAllDrawables()
+{
+  return Internal::Adaptor::GetImplementation(*this).RemoveAllDrawables();
+}
+
+bool CanvasRenderer::SetSize(Vector2 size)
 {
   return Internal::Adaptor::GetImplementation(*this).SetSize(size);
 }
 
-const Vector2& CanvasRenderer::GetSize()
+Vector2 CanvasRenderer::GetSize() const
 {
   return Internal::Adaptor::GetImplementation(*this).GetSize();
 }
 
+bool CanvasRenderer::SetViewBox(const Vector2& viewBox)
+{
+  return Internal::Adaptor::GetImplementation(*this).SetViewBox(viewBox);
+}
+
+const Vector2& CanvasRenderer::GetViewBox()
+{
+  return Internal::Adaptor::GetImplementation(*this).GetViewBox();
+}
 
 } // namespace Dali