|
LibreOffice Module canvas (master) 1
|
Helper class for canvas sprites. More...
#include <spritehelper.hxx>
Public Member Functions | |
| SpriteHelper () | |
| void | init (const css::geometry::RealSize2D &rSpriteSize, const ::canvas::SpriteSurface::Reference &rOwningSpriteCanvas, const BackBufferSharedPtr &rBackBuffer, const BackBufferSharedPtr &rBackBufferMask, bool bShowSpriteBounds) |
| Late-init the sprite helper. More... | |
| void | disposing () |
| void | redraw (OutputDevice &rOutDev, 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::B2DPoint & | getPosPixel () const |
| const ::basegfx::B2DVector & | getSizePixel () 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::B2DHomMatrix & | getTransformation () 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 | |
| BackBufferSharedPtr | mpBackBuffer |
| BackBufferSharedPtr | mpBackBufferMask |
| mutable ::canvas::vcltools::VCLObject< BitmapEx > | maContent |
| Cached bitmap for the current sprite content. More... | |
| bool | mbShowSpriteBounds |
| When true, line sprite corners in red. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from canvas::CanvasCustomSpriteHelper | |
| void | transformUpdated () const |
| Notifies that caller is again in sync with current transformation. More... | |
Helper class for canvas sprites.
This class implements all sprite-related functionality, like that available on the XSprite interface.
Definition at line 40 of file spritehelper.hxx.
| vclcanvas::SpriteHelper::SpriteHelper | ( | ) |
Definition at line 44 of file spritehelper.cxx.
| void vclcanvas::SpriteHelper::disposing | ( | ) |
Definition at line 65 of file spritehelper.cxx.
References mpBackBuffer, and mpBackBufferMask.
| void vclcanvas::SpriteHelper::init | ( | const css::geometry::RealSize2D & | rSpriteSize, |
| const ::canvas::SpriteSurface::Reference & | rOwningSpriteCanvas, | ||
| const BackBufferSharedPtr & | rBackBuffer, | ||
| const BackBufferSharedPtr & | rBackBufferMask, | ||
| bool | bShowSpriteBounds | ||
| ) |
Late-init the sprite helper.
| rSpriteSize | Size of the sprite |
| rSpriteCanvas | Sprite canvas this sprite is part of. Object stores ref-counted reference to it, thus, don't forget to pass on disposing()! |
| rBackBuffer | Buffer of the sprite content (non-alpha part) |
| rBackBufferMask | Buffer of the sprite content (alpha part) |
|
overrideprivatevirtual |
Called to convert an API polygon to a basegfx polygon.
Implements canvas::CanvasCustomSpriteHelper.
| void vclcanvas::SpriteHelper::redraw | ( | OutputDevice & | rOutDev, |
| const ::basegfx::B2DPoint & | rPos, | ||
| bool & | bSurfacesDirty, | ||
| bool | bBufferedUpdate | ||
| ) | const |
Repaint sprite content to associated sprite canvas.
| rPos | Output position (sprite's own position is disregarded) |
| io_bSurfacesDirty | When true, the referenced sprite surfaces (backBuffer and backBufferMask) have been modified since last call. |
| bBufferedUpdate | When true, the redraw does not happen directly on the front buffer, but within a VDev. Used to speed up drawing. |
Definition at line 74 of file spritehelper.cxx.
References ALIGN_TOP, vcl::CLIPREGION, COL_RED(), basegfx::B2DPolyPolygon::count(), tools::PolyPolygon::Count(), OutputDevice::DrawPolyLine(), OutputDevice::DrawPolyPolygon(), OutputDevice::DrawText(), OutputDevice::DrawTransformedBitmapEx(), canvas::CanvasCustomSpriteHelper::getAlpha(), BitmapEx::GetBitmap(), canvas::tools::getBoundMarksPolyPolygon(), canvas::CanvasCustomSpriteHelper::getClip(), tools::PolyPolygon::GetObject(), canvas::CanvasCustomSpriteHelper::getPriority(), canvas::CanvasCustomSpriteHelper::getSizePixel(), canvas::CanvasCustomSpriteHelper::getTransformation(), canvas::CanvasCustomSpriteHelper::hasTransformChanged(), Size::Height(), i, canvas::CanvasCustomSpriteHelper::isActive(), canvas::CanvasCustomSpriteHelper::isContentFullyOpaque(), BitmapEx::IsEmpty(), maContent, mbShowSpriteBounds, mpBackBuffer, mpBackBufferMask, vcl::unotools::pointFromB2DPoint(), OutputDevice::Pop(), OutputDevice::Push(), SAL_INFO, basegfx::B2DHomMatrix::scale(), OutputDevice::SetClipRegion(), vcl::Font::SetColor(), OutputDevice::SetFillColor(), OutputDevice::SetFont(), vcl::Font::SetFontHeight(), OutputDevice::SetLineColor(), OutputDevice::SetTextAlign(), OutputDevice::SetTextColor(), vcl::unotools::sizeFromB2DSize(), text(), basegfx::B2DPolyPolygon::transform(), canvas::CanvasCustomSpriteHelper::transformUpdated(), basegfx::B2DHomMatrix::translate(), Size::Width(), Point::X(), and Point::Y().
|
private |
Cached bitmap for the current sprite content.
Definition at line 100 of file spritehelper.hxx.
Referenced by redraw().
|
private |
When true, line sprite corners in red.
Definition at line 103 of file spritehelper.hxx.
Referenced by redraw().
|
private |
Definition at line 96 of file spritehelper.hxx.
Referenced by disposing(), and redraw().
|
private |
Definition at line 97 of file spritehelper.hxx.
Referenced by disposing(), and redraw().