/*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2022 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*
*/
-#include <dali/devel-api/adaptor-framework/canvas-renderer.h>
-#include <dali/devel-api/adaptor-framework/canvas-renderer-drawable.h>
+#include <dali/devel-api/adaptor-framework/canvas-renderer/canvas-renderer.h>
+#include <dali/devel-api/adaptor-framework/canvas-renderer/canvas-renderer-drawable.h>
#include <dali/public-api/object/base-object.h>
#include <dali/public-api/rendering/renderer.h>
#include <toolkit-application.h>
{
public:
CanvasRenderer( const Vector2& size )
- : mPixelBuffer( Devel::PixelBuffer::New(size.width, size.height, Dali::Pixel::RGBA8888) ),
+ : mDrawable(nullptr),
+ mTexture ( Dali::Texture::New( Dali::TextureType::TEXTURE_2D, Pixel::RGBA8888, size.width, size.height ) ),
mSize(size),
mViewBox(size)
{
return true;
}
+ Dali::Texture GetRasterizedTexture()
+ {
+ return mTexture;
+ }
+
bool Rasterize()
{
return true;
{
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
return true;
}
- const Vector2& GetSize()
+ Vector2 GetSize() const
{
- mSize = Vector2(200, 200);
- return mSize;
+ return Vector2(200, 200);
}
bool SetViewBox(const Vector2& viewBox)
}
public:
- Devel::PixelBuffer mPixelBuffer;
+ Dali::CanvasRenderer::Drawable* mDrawable;
+ Dali::Texture mTexture;
Vector2 mSize;
Vector2 mViewBox;
};
return Internal::Adaptor::GetImplementation(*this).Rasterize();
}
-Devel::PixelBuffer CanvasRenderer::GetPixelBuffer()
+Dali::Texture CanvasRenderer::GetRasterizedTexture()
{
- return Internal::Adaptor::GetImplementation(*this).GetPixelBuffer();
+ return Internal::Adaptor::GetImplementation(*this).GetRasterizedTexture();
}
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();
}