22#include <com/sun/star/rendering/XCanvas.hpp>
23#include <com/sun/star/rendering/RepaintResult.hpp>
31using namespace ::
cairo;
37 const rendering::ViewState& rUsedViewState,
38 rendering::RenderState aUsedRenderState,
39 const uno::Reference< rendering::XCanvas >&
rTarget ) :
40 CachedPrimitiveBase( rUsedViewState,
rTarget ),
42 maRenderState(std::move( aUsedRenderState ))
47 ::osl::MutexGuard aGuard(
m_aMutex );
50 CachedPrimitiveBase::disposing();
54 const rendering::ViewState& ,
55 const uno::Reference< rendering::XCanvas >& rTargetCanvas,
56 bool bSameViewTransform )
59 "CachedBitmap::doRedraw(): base called with changed view transform "
60 "(told otherwise during construction)" );
62 RepaintTarget* pTarget =
dynamic_cast< RepaintTarget*
>(rTargetCanvas.get());
65 "CachedBitmap::redraw(): cannot cast target to RepaintTarget" );
72 return rendering::RepaintResult::FAILED;
75 return rendering::RepaintResult::REDRAWN;
virtual void SAL_CALL disposing() override
Dispose all internal references.
::cairo::SurfaceSharedPtr mpSurface
const css::rendering::RenderState maRenderState
CachedBitmap(::cairo::SurfaceSharedPtr pSurface, const css::rendering::ViewState &rUsedViewState, css::rendering::RenderState aUsedRenderState, const css::uno::Reference< css::rendering::XCanvas > &rTarget)
Create an XCachedPrimitive for given GraphicObject.
virtual ::sal_Int8 doRedraw(const css::rendering::ViewState &rNewState, const css::rendering::ViewState &rOldState, const css::uno::Reference< css::rendering::XCanvas > &rTargetCanvas, bool bSameViewTransform) override
Actually perform the requested redraw.
mutable::osl::Mutex m_aMutex
#define ENSURE_OR_THROW(c, m)
sal::systools::COMReference< surface_type > mpSurface
std::shared_ptr< Surface > SurfaceSharedPtr