return GetImplementation(*this).Commit();
}
-Devel::PixelBuffer CanvasRenderer::GetPixelBuffer()
+Dali::Texture CanvasRenderer::GetRasterizedTexture()
{
- return GetImplementation(*this).GetPixelBuffer();
+ return GetImplementation(*this).GetRasterizedTexture();
}
bool CanvasRenderer::AddDrawable(Drawable& drawable)
// EXTERNAL INCLUDES
#include <dali/public-api/object/base-handle.h>
+#include <dali/public-api/rendering/texture.h>
// INTERNAL INCLUDES
-#include <dali/devel-api/adaptor-framework/pixel-buffer.h>
#include <dali/public-api/dali-adaptor-common.h>
namespace Dali
bool RemoveAllDrawables();
/**
- * @brief Returns the PixelBuffer, which is the Render buffer of Canvas.
+ * @brief Returns the rasterized texture.
*
- * @return Returns the pixel buffer.
+ * @return Returns the texture.
*/
- Devel::PixelBuffer GetPixelBuffer();
+ Dali::Texture GetRasterizedTexture();
/**
* @brief Draw drawables added to CanvasRenderer to inner buffer.
return false;
}
-Devel::PixelBuffer CanvasRenderer::GetPixelBuffer()
+Dali::Texture CanvasRenderer::GetRasterizedTexture()
{
- return Devel::PixelBuffer();
+ return Dali::Texture();
}
bool CanvasRenderer::AddDrawable(Dali::CanvasRenderer::Drawable& drawable)
// EXTERNAL INCLUDES
#include <dali/public-api/object/base-object.h>
+#include <dali/public-api/rendering/texture.h>
// INTERNAL INCLUDES
#include <dali/devel-api/adaptor-framework/canvas-renderer-drawable.h>
#include <dali/devel-api/adaptor-framework/canvas-renderer.h>
-#include <dali/devel-api/adaptor-framework/pixel-buffer.h>
namespace Dali
{
virtual bool Commit();
/**
- * @copydoc Dali::CanvasRenderer::GetPixelBuffer()
+ * @copydoc Dali::CanvasRenderer::GetRasterizedTexture()
*/
- virtual Devel::PixelBuffer GetPixelBuffer();
+ virtual Dali::Texture GetRasterizedTexture();
/**
* @copydoc Dali::CanvasRenderer::AddDrawable()
return false;
}
-Devel::PixelBuffer CanvasRendererGeneric::GetPixelBuffer()
+Dali::Texture CanvasRendererGeneric::GetRasterizedTexture()
{
- return Devel::PixelBuffer();
+ return Dali::Texture();
}
bool CanvasRendererGeneric::AddDrawable(Dali::CanvasRenderer::Drawable& drawable)
// INTERNAL INCLUDES
#include <dali/devel-api/adaptor-framework/canvas-renderer-drawable.h>
#include <dali/devel-api/adaptor-framework/canvas-renderer.h>
-#include <dali/devel-api/adaptor-framework/pixel-buffer.h>
#include <dali/internal/canvas-renderer/common/canvas-renderer-impl.h>
namespace Dali
bool Commit() override;
/**
- * @copydoc Dali::CanvasRenderer::GetPixelBuffer()
+ * @copydoc Dali::CanvasRenderer::GetRasterizedTexture()
*/
- Devel::PixelBuffer GetPixelBuffer() override;
+ virtual Dali::Texture GetRasterizedTexture() override;
/**
* @copydoc Dali::CanvasRenderer::AddDrawable()
}
CanvasRendererTizen::CanvasRendererTizen(const Vector2& viewBox)
-: mPixelBuffer(nullptr),
+:
#ifdef THORVG_SUPPORT
+ mPixelBuffer(nullptr),
+ mRasterizedTexture(),
+ mMutex(),
mTvgCanvas(nullptr),
mTvgRoot(nullptr),
#endif
#endif
}
-Devel::PixelBuffer CanvasRendererTizen::GetPixelBuffer()
+Dali::Texture CanvasRendererTizen::GetRasterizedTexture()
{
- return mPixelBuffer;
+#ifdef THORVG_SUPPORT
+ if(mPixelBuffer)
+ {
+ auto width = mPixelBuffer.GetWidth();
+ auto height = mPixelBuffer.GetHeight();
+ if(width <= 0 || height <= 0)
+ {
+ return Dali::Texture();
+ }
+
+ Dali::PixelData pixelData = Devel::PixelBuffer::Convert(mPixelBuffer);
+
+ if(!mRasterizedTexture || mRasterizedTexture.GetWidth() != width || mRasterizedTexture.GetHeight() != height)
+ {
+ mRasterizedTexture = Dali::Texture::New(Dali::TextureType::TEXTURE_2D, Dali::Pixel::BGRA8888, width, height);
+ }
+
+ mRasterizedTexture.Upload(pixelData);
+ }
+ return mRasterizedTexture;
+#else
+ return Dali::Texture();
+#endif
}
bool CanvasRendererTizen::AddDrawable(Dali::CanvasRenderer::Drawable& drawable)
#endif
#include <dali/devel-api/threading/mutex.h>
#include <dali/public-api/object/weak-handle.h>
+#include <dali/public-api/rendering/texture.h>
// INTERNAL INCLUDES
#include <dali/devel-api/adaptor-framework/canvas-renderer-drawable.h>
#include <dali/devel-api/adaptor-framework/canvas-renderer.h>
-#include <dali/devel-api/adaptor-framework/pixel-buffer.h>
#include <dali/internal/canvas-renderer/common/canvas-renderer-impl.h>
#include <dali/internal/canvas-renderer/common/drawable-group-impl.h>
+#include <dali/devel-api/adaptor-framework/pixel-buffer.h>
namespace Dali
{
bool Commit() override;
/**
- * @copydoc Dali::CanvasRenderer::GetPixelBuffer()
+ * @copydoc Dali::CanvasRenderer::GetRasterizedTexture()
*/
- Devel::PixelBuffer GetPixelBuffer() override;
+ Dali::Texture GetRasterizedTexture() override;
/**
* @copydoc Dali::CanvasRenderer::AddDrawable()
#endif
private:
- Devel::PixelBuffer mPixelBuffer;
- Dali::Mutex mMutex;
-
#ifdef THORVG_SUPPORT
+ Devel::PixelBuffer mPixelBuffer;
+ Dali::Texture mRasterizedTexture;
+ Dali::Mutex mMutex;
std::unique_ptr<tvg::SwCanvas> mTvgCanvas;
tvg::Scene* mTvgRoot;
#endif
}
CanvasRendererUbuntu::CanvasRendererUbuntu(const Vector2& viewBox)
-: mPixelBuffer(nullptr),
+:
#ifdef THORVG_SUPPORT
+ mPixelBuffer(nullptr),
+ mRasterizedTexture(),
+ mMutex(),
mTvgCanvas(nullptr),
mTvgRoot(nullptr),
#endif
#endif
}
-Devel::PixelBuffer CanvasRendererUbuntu::GetPixelBuffer()
+Dali::Texture CanvasRendererUbuntu::GetRasterizedTexture()
{
- return mPixelBuffer;
+#ifdef THORVG_SUPPORT
+ if(mPixelBuffer)
+ {
+ auto width = mPixelBuffer.GetWidth();
+ auto height = mPixelBuffer.GetHeight();
+ if(width <= 0 || height <= 0)
+ {
+ return Dali::Texture();
+ }
+
+ Dali::PixelData pixelData = Devel::PixelBuffer::Convert(mPixelBuffer);
+
+ if(!mRasterizedTexture || mRasterizedTexture.GetWidth() != width || mRasterizedTexture.GetHeight() != height)
+ {
+ mRasterizedTexture = Dali::Texture::New(Dali::TextureType::TEXTURE_2D, Dali::Pixel::BGRA8888, width, height);
+ }
+
+ mRasterizedTexture.Upload(pixelData);
+ }
+ return mRasterizedTexture;
+#else
+ return Dali::Texture();
+#endif
}
bool CanvasRendererUbuntu::AddDrawable(Dali::CanvasRenderer::Drawable& drawable)
#endif
#include <dali/devel-api/threading/mutex.h>
#include <dali/public-api/object/weak-handle.h>
+#include <dali/public-api/rendering/texture.h>
// INTERNAL INCLUDES
#include <dali/devel-api/adaptor-framework/canvas-renderer-drawable.h>
#include <dali/devel-api/adaptor-framework/canvas-renderer.h>
-#include <dali/devel-api/adaptor-framework/pixel-buffer.h>
#include <dali/internal/canvas-renderer/common/canvas-renderer-impl.h>
#include <dali/internal/canvas-renderer/common/drawable-group-impl.h>
+#include <dali/devel-api/adaptor-framework/pixel-buffer.h>
namespace Dali
{
bool Commit() override;
/**
- * @copydoc Dali::CanvasRenderer::GetPixelBuffer()
+ * @copydoc Dali::CanvasRenderer::GetRasterizedTexture()
*/
- Devel::PixelBuffer GetPixelBuffer() override;
+ Dali::Texture GetRasterizedTexture() override;
/**
* @copydoc Dali::CanvasRenderer::AddDrawable()
#endif
private:
- Devel::PixelBuffer mPixelBuffer;
- Dali::Mutex mMutex;
-
#ifdef THORVG_SUPPORT
+ Devel::PixelBuffer mPixelBuffer;
+ Dali::Texture mRasterizedTexture;
+ Dali::Mutex mMutex;
std::unique_ptr<tvg::SwCanvas> mTvgCanvas;
tvg::Scene* mTvgRoot;
#endif