30 const Point& rPt,
const Size& rSz,
34 mpRenderContext ( pFirstFrameOutDev ? pFirstFrameOutDev : pOut ),
35 mnExtraData ( nExtraData ),
38 maSzPix ( mpRenderContext->LogicToPixel( maSz ) ),
39 maClip ( mpRenderContext->GetClipRegion() ),
45 mbIsMirroredHorizontally ( maSz.
Width() < 0 ),
46 mbIsMirroredVertically ( maSz.
Height() < 0 )
84 if( pFirstFrameOutDev )
109 double fFactX, fFactY;
112 if( rAnmSize.
Width() > 1 )
118 if( rAnmSize.
Height() > 1 )
126 aPt2.setX(
FRound( aPt2.X() * fFactX ) );
127 aPt2.setY(
FRound( aPt2.Y() * fFactY ) );
129 rSizePix.
setWidth( aPt2.X() - rPosPix.X() + 1 );
130 rSizePix.
setHeight( aPt2.Y() - rPosPix.Y() + 1 );
145 std::unique_ptr<vcl::PaintBufferGuard> pGuard;
150 pRenderContext = pGuard->GetRenderContext();
156 aVDev->SetOutputSizePixel(
maSzPix,
false );
157 nPos = std::min( nPos, static_cast<sal_uLong>(
mpParent->
Count()) - 1 );
177 std::unique_ptr<vcl::PaintBufferGuard> pGuard;
182 pRenderContext = pGuard->GetRenderContext();
198 mnActPos = std::min( nPos, nLastPos );
201 getPosSize( rAnimationBitmap, aPosPix, aSizePix );
206 aBmpPosPix.setX( aPosPix.X() + aSizePix.
Width() - 1 );
211 aBmpPosPix.setX( aPosPix.X() );
218 aBmpPosPix.setY( aPosPix.Y() + aSizePix.
Height() - 1 );
223 aBmpPosPix.setY( aPosPix.Y() );
289 pRenderContext->
Flush();
static SAL_DLLPRIVATE void ImplDecAnimCount()
vcl::Region GetClipRegion() const
OutDevType GetOutDevType() const
void setMarked(bool bIsMarked)
SharedBitmapDescriptor mpBackground
void setWidth(tools::Long nWidth)
A thin wrapper around rtl::Reference to implement the acquire and dispose semantics we want for refer...
void DrawBitmapEx(const Point &rDestPt, const BitmapEx &rBitmapEx)
This is an overloaded member function, provided for convenience. It differs from the above function o...
void getPosSize(const AnimationBitmap &rAnm, Point &rPosPix, Size &rSizePix)
SAL_DLLPRIVATE sal_uLong ImplGetCurPos() const
SAL_DLLPRIVATE WindowImpl * ImplGetWindowImpl() const
constexpr tools::Long Width() const
void draw(sal_uLong nPos, VirtualDevice *pVDev=nullptr)
VclPtr< OutputDevice > pOutDev
VclPtr< VirtualDevice > mpRestore
AInfo * createAInfo() const
static SAL_DLLPRIVATE void ImplIncAnimCount()
VclPtr< VirtualDevice > mpBackground
void drawToPos(sal_uLong nPos)
tools::Long FRound(double fVal)
basegfx::B2DPolyPolygon maClip
bool SetOutputSizePixel(const Size &rNewSize, bool bErase=true)
Size GetOutputSize() const
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
ImplAnimView(Animation *pParent, OutputDevice *pOut, const Point &rPt, const Size &rSz, sal_uLong nExtraData, OutputDevice *pFirstFrameOutDev=nullptr)
Sets up the buffer to have settings matching the window, and restores the original state in the dtor...
const Size & GetDisplaySizePixel() const
virtual void SaveBackground(VirtualDevice &rSaveDevice, const Point &rPos, const Size &rSize, const Size &rBackgroundSize) const
bool mbIsMirroredHorizontally
const AnimationBitmap & Get(sal_uInt16 nAnimation) const
bool mbIsMirroredVertically
Point PixelToLogic(const Point &rDevicePt) const
RegionData_Impl * mpParent
constexpr tools::Long Height() const
static VclPtr< reference_type > Create(Arg &&...arg)
A construction helper for VclPtr.
bool matches(const OutputDevice *pOut, tools::Long nExtraData) const
virtual void DrawOutDev(const Point &rDestPt, const Size &rDestSize, const Point &rSrcPt, const Size &rSrcSize)
void setHeight(tools::Long nHeight)
reference_type * get() const
Get the body.
VclPtr< OutputDevice > mpRenderContext
ImplFrameData * mpFrameData