/*
- * 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) ),
- mSize(size)
+ : 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)
+ {
+ 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 )
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();
}
+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