33 using namespace ::
cairo;
40 rendering::XGraphicDevice* pDevice,
42 mpSurfaceProvider(
std::move( rSurfaceProvider )),
47 "CanvasBitmap::CanvasBitmap(): Invalid surface or device" );
51 "bitmap size: " << rSize.getX() <<
"x" << rSize.getY());
53 mpBufferSurface = mpSurfaceProvider->createSurface( rSize, bHasAlpha ? CAIRO_CONTENT_COLOR_ALPHA : CAIRO_CONTENT_COLOR );
54 mpBufferCairo = mpBufferSurface->getCairo();
56 maCanvasHelper.init( rSize, *mpSurfaceProvider, pDevice );
57 maCanvasHelper.setSurface( mpBufferSurface, bHasAlpha );
60 maCanvasHelper.clear();
68 mpBufferSurface.reset();
71 CanvasBitmap_Base::disposeThis();
101 const rendering::ViewState& viewState,
102 const rendering::RenderState& renderState )
104 return maCanvasHelper.repaint( pSurface, viewState, renderState );
117 aRV <<= reinterpret_cast<sal_Int64>( nullptr );
121 BitmapEx* pBitmapEx = vcl::bitmap::CreateFromCairoSurface(
125 aRV <<= reinterpret_cast<sal_Int64>( pBitmapEx );
148 return "CairoCanvas.CanvasBitmap";
158 return {
"com.sun.star.rendering.CanvasBitmap" };
virtual void disposeThis() override
Dispose all internal references.
const ::basegfx::B2ISize maSize
virtual OUString SAL_CALL getImplementationName() override
CanvasBitmap(const ::basegfx::B2ISize &rSize, SurfaceProviderRef rDevice, css::rendering::XGraphicDevice *pDevice, bool bHasAlpha)
Create a canvas bitmap for the given surface.
virtual css::uno::Any SAL_CALL getFastPropertyValue(sal_Int32 nHandle) override
virtual ::cairo::SurfaceSharedPtr getSurface() override
virtual ::cairo::SurfaceSharedPtr createSurface(const ::basegfx::B2ISize &rSize, int aContent) override
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
std::shared_ptr< Surface > SurfaceSharedPtr
virtual bool repaint(const ::cairo::SurfaceSharedPtr &pSurface, const css::rendering::ViewState &viewState, const css::rendering::RenderState &renderState) override
css::uno::Any GetNativeSurfaceHandle(cairo::SurfaceSharedPtr &rSurface, const basegfx::B2ISize &rSize) const
::cairo::SurfaceSharedPtr mpBufferSurface
SurfaceProviderRef mpSurfaceProvider
#define ENSURE_OR_THROW(c, m)
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
#define SAL_INFO(area, stream)
virtual ::cairo::SurfaceSharedPtr changeSurface() override
::rtl::Reference< SurfaceProvider > SurfaceProviderRef
virtual OutputDevice * getOutputDevice() override
::basegfx::B2IVector maSize
::cairo::CairoSharedPtr mpBufferCairo