34 mpRenderContext ( pFirstFrameOutDev ? pFirstFrameOutDev :
pOut ),
35 mnRendererId ( nRendererId ),
37 maLogicalSize ( rSz ),
38 maSizePx ( mpRenderContext->LogicToPixel( maLogicalSize ) ),
39 maClip ( mpRenderContext->GetClipRegion() ),
46 mbIsMirroredHorizontally( maLogicalSize.
Width() < 0 ),
47 mbIsMirroredVertically( maLogicalSize.
Height() < 0 )
85 if( pFirstFrameOutDev )
110 double fFactX, fFactY;
113 if( rAnmSize.
Width() > 1 )
119 if( rAnmSize.
Height() > 1 )
130 rSizePix.
setWidth( aPt2.
X() - rPosPix.
X() + 1 );
151 pRenderContext = pGuard->GetRenderContext();
155 std::optional<vcl::Region> xOldClip;
157 xOldClip = pRenderContext->GetClipRegion();
159 aVDev->SetOutputSizePixel(
maSizePx,
false );
166 pRenderContext->SetClipRegion(
maClip );
173 pRenderContext->SetClipRegion(*xOldClip);
185 pRenderContext = pGuard->GetRenderContext();
188 tools::Rectangle aOutRect( pRenderContext->PixelToLogic(
Point() ), pRenderContext->GetOutputSize() );
206 getPosSize( rAnimationFrame, aPosPix, aSizePix );
211 aBmpPosPix.
setX( aPosPix.
X() + aSizePix.
Width() - 1 );
216 aBmpPosPix.
setX( aPosPix.
X() );
223 aBmpPosPix.
setY( aPosPix.
Y() + aSizePix.
Height() - 1 );
228 aBmpPosPix.
setY( aPosPix.
Y() );
278 std::optional<vcl::Region> xOldClip;
280 xOldClip = pRenderContext->GetClipRegion();
283 pRenderContext->SetClipRegion(
maClip );
291 pRenderContext->SetClipRegion(*xOldClip);
296 pRenderContext->Flush();
SharedBitmapDescriptor mpBackground
AnimationRenderer(Animation *pParent, OutputDevice *pOut, const Point &rPt, const Size &rSz, sal_uLong nRendererId, OutputDevice *pFirstFrameOutDev=nullptr)
void setMarked(bool bIsMarked)
VclPtr< OutputDevice > mpRenderContext
void getPosSize(const AnimationFrame &rAnm, Point &rPosPix, Size &rSizePix)
AnimationData * createAnimationData() const
bool matches(const OutputDevice *pOut, tools::Long nRendererId) const
VclPtr< VirtualDevice > mpBackground
void drawToIndex(sal_uLong nIndex)
bool mbIsMirroredHorizontally
void draw(sal_uLong nIndex, VirtualDevice *pVDev=nullptr)
bool mbIsMirroredVertically
VclPtr< VirtualDevice > mpRestore
SAL_DLLPRIVATE sal_uLong ImplGetCurPos() const
static SAL_DLLPRIVATE void ImplIncAnimCount()
const Size & GetDisplaySizePixel() const
const AnimationFrame & Get(sal_uInt16 nAnimation) const
static SAL_DLLPRIVATE void ImplDecAnimCount()
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
virtual void SaveBackground(VirtualDevice &rSaveDevice, const Point &rPos, const Size &rSize, const Size &rBackgroundSize) const
vcl::Region GetClipRegion() const
void DrawBitmapEx(const Point &rDestPt, const BitmapEx &rBitmapEx)
virtual void DrawOutDev(const Point &rDestPt, const Size &rDestSize, const Point &rSrcPt, const Size &rSrcSize)
OutDevType GetOutDevType() const
constexpr tools::Long Y() const
void setX(tools::Long nX)
void setY(tools::Long nY)
constexpr tools::Long X() const
constexpr tools::Long Height() const
void setWidth(tools::Long nWidth)
void setHeight(tools::Long nHeight)
constexpr tools::Long Width() const
A thin wrapper around rtl::Reference to implement the acquire and dispose semantics we want for refer...
void reset(reference_type *pBody)
reference_type * get() const
Get the body.
static VclPtr< reference_type > Create(Arg &&... arg)
A construction helper for VclPtr.
bool SetOutputSizePixel(const Size &rNewSize, bool bErase=true, bool bAlphaMaskTransparent=false)
ImplFrameData * mpFrameData
Sets up the buffer to have settings matching the window, and restores the original state in the dtor.
SAL_DLLPRIVATE WindowImpl * ImplGetWindowImpl() const
RegionData_Impl * mpParent
tools::Long FRound(double fVal)
std::unique_ptr< PaintBufferGuard, o3tl::default_delete< PaintBufferGuard > > PaintBufferGuardPtr
basegfx::B2DPolyPolygon maClip
VclPtr< OutputDevice > mpRenderContext