LibreOffice Module canvas (master) 1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
cairocanvas::SpriteHelper Class Reference

Helper class for canvas sprites. More...

#include <cairo_spritehelper.hxx>

Inheritance diagram for cairocanvas::SpriteHelper:
Collaboration diagram for cairocanvas::SpriteHelper:

Public Member Functions

 SpriteHelper ()
 Create sprite helper. More...
void init (const css::geometry::RealSize2D &rSpriteSize, const SpriteCanvasRef &rSpriteCanvas)
 Late-init the sprite helper. More...
void disposing ()
void setSurface (const ::cairo::SurfaceSharedPtr &pBufferSurface)
void redraw (const ::cairo::CairoSharedPtr &pCairo, const ::basegfx::B2DPoint &rPos, bool &bSurfacesDirty, bool bBufferedUpdate) const
 Repaint sprite content to associated sprite canvas. More...
- Public Member Functions inherited from canvas::CanvasCustomSpriteHelper
 CanvasCustomSpriteHelper ()
virtual ~CanvasCustomSpriteHelper ()
void init (const css::geometry::RealSize2D &rSpriteSize, const SpriteSurface::Reference &rOwningSpriteCanvas)
 Init helper. More...
void disposing ()
 Object is being disposed, release all internal references. More...
void clearingContent (const Sprite::Reference &rSprite)
 need to call this method for XCanvas::clear(), for opacity tracking More...
void checkDrawBitmap (const Sprite::Reference &rSprite, const css::uno::Reference< css::rendering::XBitmap > &xBitmap, const css::rendering::ViewState &viewState, const css::rendering::RenderState &renderState)
 need to call this method for XCanvas::drawBitmap(), for opacity tracking More...
void setAlpha (const Sprite::Reference &rSprite, double alpha)
void move (const Sprite::Reference &rSprite, const css::geometry::RealPoint2D &aNewPos, const css::rendering::ViewState &viewState, const css::rendering::RenderState &renderState)
void transform (const Sprite::Reference &rSprite, const css::geometry::AffineMatrix2D &aTransformation)
void clip (const Sprite::Reference &rSprite, const css::uno::Reference< css::rendering::XPolyPolygon2D > &aClip)
void setPriority (const Sprite::Reference &rSprite, double nPriority)
void show (const Sprite::Reference &rSprite)
void hide (const Sprite::Reference &rSprite)
bool isAreaUpdateOpaque (const ::basegfx::B2DRange &rUpdateArea) const
const ::basegfx::B2DPointgetPosPixel () const
const ::basegfx::B2DVectorgetSizePixel () const
::basegfx::B2DRange getUpdateArea () const
double getPriority () const
::basegfx::B2DRange getUpdateArea (const ::basegfx::B2DRange &rUntransformedSpriteBounds) const
 Calc sprite update area from given raw sprite bounds. More...
bool isContentFullyOpaque () const
 Returns true, if sprite content bitmap is fully opaque. More...
bool hasTransformChanged () const
 Returns true, if transformation has changed since last transformUpdated() call. More...
double getAlpha () const
 Retrieve current alpha value. More...
const css::uno::Reference< css::rendering::XPolyPolygon2D > & getClip () const
 Retrieve current clip. More...
const ::basegfx::B2DHomMatrixgetTransformation () const
bool isActive () const
 Retrieve current activation state. More...

Private Member Functions

virtual ::basegfx::B2DPolyPolygon polyPolygonFromXPolyPolygon2D (css::uno::Reference< css::rendering::XPolyPolygon2D > &xPoly) const override
 Called to convert an API polygon to a basegfx polygon. More...

Private Attributes

SpriteCanvasRef mpSpriteCanvas
::cairo::SurfaceSharedPtr mpBufferSurface
bool mbTextureDirty

Additional Inherited Members

- Protected Member Functions inherited from canvas::CanvasCustomSpriteHelper
void transformUpdated () const
 Notifies that caller is again in sync with current transformation. More...

Detailed Description

Helper class for canvas sprites.

This class implements all sprite-related functionality, like that available on the XSprite interface.

Definition at line 38 of file cairo_spritehelper.hxx.

Constructor & Destructor Documentation

◆ SpriteHelper()

cairocanvas::SpriteHelper::SpriteHelper ( )

Create sprite helper.

Definition at line 40 of file cairo_spritehelper.cxx.

Member Function Documentation

◆ disposing()

void cairocanvas::SpriteHelper::disposing ( )

Definition at line 62 of file cairo_spritehelper.cxx.

References mpBufferSurface, and mpSpriteCanvas.

◆ init()

void cairocanvas::SpriteHelper::init ( const css::geometry::RealSize2D &  rSpriteSize,
const SpriteCanvasRef rSpriteCanvas 

Late-init the sprite helper.

rSpriteSizeSize of the sprite
rSpriteCanvasSprite canvas this sprite is part of. Object stores ref-counted reference to it, thus, don't forget to pass on disposing()!
rDeviceDX device to use
rSpriteSurfaceThe surface of the sprite (not the DX texture, but the persistent target of content rendering)
bShowSpriteBoundsWhen true, little debug bound rects for sprites are shown

◆ polyPolygonFromXPolyPolygon2D()

virtual ::basegfx::B2DPolyPolygon cairocanvas::SpriteHelper::polyPolygonFromXPolyPolygon2D ( css::uno::Reference< css::rendering::XPolyPolygon2D > &  xPoly) const

Called to convert an API polygon to a basegfx polygon.

Derive: \n Needs to be provided by backend-specific code

Implements canvas::CanvasCustomSpriteHelper.

◆ redraw()

void cairocanvas::SpriteHelper::redraw ( const ::cairo::CairoSharedPtr pCairo,
const ::basegfx::B2DPoint rPos,
bool &  bSurfacesDirty,
bool  bBufferedUpdate 
) const

Repaint sprite content to associated sprite canvas.

rPosOutput position (sprite's own position is disregarded)
io_bSurfacesDirtyWhen true, the referenced sprite surfaces (backBuffer and backBufferMask) have been modified since last call.
bBufferedUpdateWhen true, the redraw does not happen directly on the front buffer, but within a VDev. Used to speed up drawing.

◆ setSurface()

void cairocanvas::SpriteHelper::setSurface ( const ::cairo::SurfaceSharedPtr pBufferSurface)

Definition at line 57 of file cairo_spritehelper.cxx.

References mpBufferSurface.

Member Data Documentation

◆ mbTextureDirty

bool cairocanvas::SpriteHelper::mbTextureDirty

Definition at line 98 of file cairo_spritehelper.hxx.

◆ mpBufferSurface

::cairo::SurfaceSharedPtr cairocanvas::SpriteHelper::mpBufferSurface

Definition at line 97 of file cairo_spritehelper.hxx.

Referenced by disposing(), and setSurface().

◆ mpSpriteCanvas

SpriteCanvasRef cairocanvas::SpriteHelper::mpSpriteCanvas

Definition at line 96 of file cairo_spritehelper.hxx.

Referenced by disposing().

The documentation for this class was generated from the following files: