LibreOffice Module vcl (master) 1
Classes | Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | Friends | List of all members
SkiaSalGraphicsImpl Class Referenceabstract

#include <gdiimpl.hxx>

Inheritance diagram for SkiaSalGraphicsImpl:
[legend]
Collaboration diagram for SkiaSalGraphicsImpl:
[legend]

Classes

struct  LastPolyPolygonInfo
 

Public Member Functions

 SkiaSalGraphicsImpl (SalGraphics &pParent, SalGeometryProvider *pProvider)
 
virtual ~SkiaSalGraphicsImpl () override
 
virtual void Init () override
 
virtual void DeInit () override
 
virtual OUString getRenderBackendName () const override
 
const vcl::RegiongetClipRegion () const
 
virtual void setClipRegion (const vcl::Region &) override
 
virtual sal_uInt16 GetBitCount () const override
 
virtual tools::Long GetGraphicsWidth () const override
 
virtual void ResetClipRegion () override
 
virtual void SetLineColor () override
 
virtual void SetLineColor (Color nColor) override
 
virtual void SetFillColor () override
 
virtual void SetFillColor (Color nColor) override
 
virtual void SetXORMode (bool bSet, bool bInvertOnly) override
 
virtual void SetROPLineColor (SalROPColor nROPColor) override
 
virtual void SetROPFillColor (SalROPColor nROPColor) override
 
virtual void drawPixel (tools::Long nX, tools::Long nY) override
 
virtual void drawPixel (tools::Long nX, tools::Long nY, Color nColor) override
 
virtual void drawLine (tools::Long nX1, tools::Long nY1, tools::Long nX2, tools::Long nY2) override
 
virtual void drawRect (tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight) override
 
virtual void drawPolyLine (sal_uInt32 nPoints, const Point *pPtAry) override
 
virtual void drawPolygon (sal_uInt32 nPoints, const Point *pPtAry) override
 
virtual void drawPolyPolygon (sal_uInt32 nPoly, const sal_uInt32 *pPoints, const Point **pPtAry) override
 
virtual bool drawPolyPolygon (const basegfx::B2DHomMatrix &rObjectToDevice, const basegfx::B2DPolyPolygon &, double fTransparency) override
 
virtual bool drawPolyLine (const basegfx::B2DHomMatrix &rObjectToDevice, const basegfx::B2DPolygon &, double fTransparency, double fLineWidth, const std::vector< double > *pStroke, basegfx::B2DLineJoin, css::drawing::LineCap, double fMiterMinimumAngle, bool bPixelSnapHairline) override
 
virtual bool drawPolyLineBezier (sal_uInt32 nPoints, const Point *pPtAry, const PolyFlags *pFlgAry) override
 
virtual bool drawPolygonBezier (sal_uInt32 nPoints, const Point *pPtAry, const PolyFlags *pFlgAry) override
 
virtual bool drawPolyPolygonBezier (sal_uInt32 nPoly, const sal_uInt32 *pPoints, const Point *const *pPtAry, const PolyFlags *const *pFlgAry) override
 
virtual void copyArea (tools::Long nDestX, tools::Long nDestY, tools::Long nSrcX, tools::Long nSrcY, tools::Long nSrcWidth, tools::Long nSrcHeight, bool bWindowInvalidate) override
 
virtual void copyBits (const SalTwoRect &rPosAry, SalGraphics *pSrcGraphics) override
 
virtual bool blendBitmap (const SalTwoRect &, const SalBitmap &rBitmap) override
 
virtual bool blendAlphaBitmap (const SalTwoRect &, const SalBitmap &rSrcBitmap, const SalBitmap &rMaskBitmap, const SalBitmap &rAlphaBitmap) override
 
virtual void drawBitmap (const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap) override
 
virtual void drawBitmap (const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap, const SalBitmap &rMaskBitmap) override
 
virtual void drawMask (const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap, Color nMaskColor) override
 
virtual std::shared_ptr< SalBitmapgetBitmap (tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight) override
 
virtual Color getPixel (tools::Long nX, tools::Long nY) override
 
virtual void invert (tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, SalInvert nFlags) override
 
virtual void invert (sal_uInt32 nPoints, const Point *pPtAry, SalInvert nFlags) override
 
virtual bool drawEPS (tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, void *pPtr, sal_uInt32 nSize) override
 
virtual bool drawAlphaBitmap (const SalTwoRect &, const SalBitmap &rSourceBitmap, const SalBitmap &rAlphaBitmap) override
 Render bitmap with alpha channel. More...
 
virtual bool drawTransformedBitmap (const basegfx::B2DPoint &rNull, const basegfx::B2DPoint &rX, const basegfx::B2DPoint &rY, const SalBitmap &rSourceBitmap, const SalBitmap *pAlphaBitmap, double fAlpha) override
 draw transformed bitmap (maybe with alpha) where Null, X, Y define the coordinate system More...
 
virtual bool hasFastDrawTransformedBitmap () const override
 
virtual bool drawAlphaRect (tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, sal_uInt8 nTransparency) override
 Render solid rectangle with given transparency. More...
 
virtual bool drawGradient (const tools::PolyPolygon &rPolygon, const Gradient &rGradient) override
 
virtual bool implDrawGradient (const basegfx::B2DPolyPolygon &rPolyPolygon, const SalGradient &rGradient) override
 
virtual bool supportsOperation (OutDevSupportType eType) const override
 
void dump (const char *file) const
 
void drawBitmap (const SalTwoRect &rPosAry, const SkiaSalBitmap &bitmap, SkBlendMode blendMode=SkBlendMode::kSrcOver)
 
void drawImage (const SalTwoRect &rPosAry, const sk_sp< SkImage > &aImage, int srcScaling=1, SkBlendMode eBlendMode=SkBlendMode::kSrcOver)
 
void drawShader (const SalTwoRect &rPosAry, const sk_sp< SkShader > &shader, SkBlendMode blendMode=SkBlendMode::kSrcOver)
 
void drawGenericLayout (const GenericSalLayout &layout, Color textColor, const SkFont &font, const SkFont &verticalFont)
 
- Public Member Functions inherited from SalGraphicsImpl
void setAntiAlias (bool bNew)
 
bool getAntiAlias () const
 
 SalGraphicsImpl ()
 
virtual ~SalGraphicsImpl ()
 
virtual void Init ()=0
 
virtual void DeInit ()
 
virtual void freeResources ()=0
 
virtual OUString getRenderBackendName () const =0
 
virtual void setClipRegion (const vcl::Region &)=0
 
virtual sal_uInt16 GetBitCount () const =0
 
virtual tools::Long GetGraphicsWidth () const =0
 
virtual void ResetClipRegion ()=0
 
virtual void SetLineColor ()=0
 
virtual void SetLineColor (Color nColor)=0
 
virtual void SetFillColor ()=0
 
virtual void SetFillColor (Color nColor)=0
 
virtual void SetXORMode (bool bSet, bool bInvertOnly)=0
 
virtual void SetROPLineColor (SalROPColor nROPColor)=0
 
virtual void SetROPFillColor (SalROPColor nROPColor)=0
 
virtual void drawPixel (tools::Long nX, tools::Long nY)=0
 
virtual void drawPixel (tools::Long nX, tools::Long nY, Color nColor)=0
 
virtual void drawLine (tools::Long nX1, tools::Long nY1, tools::Long nX2, tools::Long nY2)=0
 
virtual void drawRect (tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight)=0
 
virtual void drawPolyLine (sal_uInt32 nPoints, const Point *pPtAry)=0
 
virtual void drawPolygon (sal_uInt32 nPoints, const Point *pPtAry)=0
 
virtual void drawPolyPolygon (sal_uInt32 nPoly, const sal_uInt32 *pPoints, const Point **pPtAry)=0
 
virtual bool drawPolyPolygon (const basegfx::B2DHomMatrix &rObjectToDevice, const basegfx::B2DPolyPolygon &, double fTransparency)=0
 
virtual bool drawPolyLine (const basegfx::B2DHomMatrix &rObjectToDevice, const basegfx::B2DPolygon &, double fTransparency, double fLineWidth, const std::vector< double > *pStroke, basegfx::B2DLineJoin, css::drawing::LineCap, double fMiterMinimumAngle, bool bPixelSnapHairline)=0
 
virtual bool drawPolyLineBezier (sal_uInt32 nPoints, const Point *pPtAry, const PolyFlags *pFlgAry)=0
 
virtual bool drawPolygonBezier (sal_uInt32 nPoints, const Point *pPtAry, const PolyFlags *pFlgAry)=0
 
virtual bool drawPolyPolygonBezier (sal_uInt32 nPoly, const sal_uInt32 *pPoints, const Point *const *pPtAry, const PolyFlags *const *pFlgAry)=0
 
virtual void copyArea (tools::Long nDestX, tools::Long nDestY, tools::Long nSrcX, tools::Long nSrcY, tools::Long nSrcWidth, tools::Long nSrcHeight, bool bWindowInvalidate)=0
 
virtual void copyBits (const SalTwoRect &rPosAry, SalGraphics *pSrcGraphics)=0
 
virtual void drawBitmap (const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap)=0
 
virtual void drawBitmap (const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap, const SalBitmap &rMaskBitmap)=0
 
virtual void drawMask (const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap, Color nMaskColor)=0
 
virtual std::shared_ptr< SalBitmapgetBitmap (tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight)=0
 
virtual Color getPixel (tools::Long nX, tools::Long nY)=0
 
virtual void invert (tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, SalInvert nFlags)=0
 
virtual void invert (sal_uInt32 nPoints, const Point *pPtAry, SalInvert nFlags)=0
 
virtual bool drawEPS (tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, void *pPtr, sal_uInt32 nSize)=0
 
virtual bool blendBitmap (const SalTwoRect &, const SalBitmap &rBitmap)=0
 
virtual bool blendAlphaBitmap (const SalTwoRect &, const SalBitmap &rSrcBitmap, const SalBitmap &rMaskBitmap, const SalBitmap &rAlphaBitmap)=0
 
virtual bool drawAlphaBitmap (const SalTwoRect &, const SalBitmap &rSourceBitmap, const SalBitmap &rAlphaBitmap)=0
 
virtual bool drawTransformedBitmap (const basegfx::B2DPoint &rNull, const basegfx::B2DPoint &rX, const basegfx::B2DPoint &rY, const SalBitmap &rSourceBitmap, const SalBitmap *pAlphaBitmap, double fAlpha)=0
 
virtual bool hasFastDrawTransformedBitmap () const =0
 
virtual bool drawAlphaRect (tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, sal_uInt8 nTransparency)=0
 
virtual bool drawGradient (const tools::PolyPolygon &rPolygon, const Gradient &rGradient)=0
 
virtual bool implDrawGradient (basegfx::B2DPolyPolygon const &rPolyPolygon, SalGradient const &rGradient)=0
 
virtual bool supportsOperation (OutDevSupportType eType) const =0
 

Protected Types

enum class  XorMode {
  None ,
  Invert ,
  Xor
}
 
using DirectImage = SkiaHelper::DirectImage
 

Protected Member Functions

void preDraw ()
 
void postDraw ()
 
SkCanvas * getDrawCanvas ()
 
void flushDrawing ()
 
virtual void createSurface ()
 
void checkSurface ()
 
void destroySurface ()
 
virtual bool avoidRecreateByResize () const
 
void createWindowSurface (bool forceRaster=false)
 
virtual void createWindowSurfaceInternal (bool forceRaster=false)=0
 
void createOffscreenSurface ()
 
virtual void flushSurfaceToWindowContext ()
 
void privateDrawAlphaRect (tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, double nTransparency, bool blockAA=false)
 
void privateCopyBits (const SalTwoRect &rPosAry, SkiaSalGraphicsImpl *src)
 
void setProvider (SalGeometryProvider *provider)
 
bool isOffscreen () const
 
bool isGPU () const
 
void invert (basegfx::B2DPolygon const &rPoly, SalInvert eFlags)
 
void performFlush ()
 
void scheduleFlush ()
 
int GetWidth () const
 
int GetHeight () const
 
virtual int getWindowScaling () const
 
void addUpdateRegion (const SkRect &rect)
 
void setCanvasScalingAndClipping ()
 
void resetCanvasScalingAndClipping ()
 
sk_sp< SkImage > mergeCacheBitmaps (const SkiaSalBitmap &bitmap, const SkiaSalBitmap *alphaBitmap, const Size &targetSize)
 
void checkPendingDrawing ()
 
bool delayDrawPolyPolygon (const basegfx::B2DPolyPolygon &polygon, double transparency)
 
void performDrawPolyPolygon (const basegfx::B2DPolyPolygon &polygon, double transparency, bool useAA)
 
BmpScaleFlag goodScalingQuality () const
 
SkSamplingOptions makeSamplingOptions (const SalTwoRect &rPosAry, int scalingFactor, int srcScalingFactor=1)
 
SkSamplingOptions makeSamplingOptions (const SkMatrix &matrix, int scalingFactor)
 
SkPaint makePaintInternal () const
 
SkPaint makeLinePaint (double transparency=0) const
 
SkPaint makeFillPaint (double transparency=0) const
 
SkPaint makeBitmapPaint () const
 
SkPaint makeGradientPaint () const
 
SkPaint makeTextPaint (std::optional< Color > color) const
 
SkPaint makePixelPaint (std::optional< Color > color) const
 
void windowBackingPropertiesChanged ()
 

Static Protected Member Functions

static void setCanvasClipRegion (SkCanvas *canvas, const vcl::Region &region)
 
static OString makeCachedImageKey (const SkiaSalBitmap &bitmap, const SkiaSalBitmap *alphaBitmap, const Size &targetSize, DirectImage bitmapType, DirectImage alphaBitmapType)
 
static constexpr SkScalar toSkX (tools::Long x)
 
static constexpr SkScalar toSkY (tools::Long y)
 

Protected Attributes

SalGraphicsmParent
 
SalGeometryProvidermProvider
 Pointer to the SalFrame or SalVirtualDevice. More...
 
sk_sp< SkSurface > mSurface
 
std::unique_ptr< sk_app::WindowContext > mWindowContext
 
bool mIsGPU
 
SkIRect mDirtyRect
 
vcl::Region mClipRegion
 
std::optional< ColormoLineColor
 
std::optional< ColormoFillColor
 
XorMode mXorMode
 
std::unique_ptr< SkiaFlushIdlemFlush
 
LastPolyPolygonInfo mLastPolyPolygonInfo
 
int mScaling
 
bool mInWindowBackingPropertiesChanged
 

Static Protected Attributes

static constexpr SkScalar toSkXYFix = SkScalar(0.005)
 
static int pendingOperationsToFlush = 0
 

Friends

class SkiaFlushIdle
 
template<typename charT , typename traits >
std::basic_ostream< charT, traits > & operator<< (std::basic_ostream< charT, traits > &stream, const SkiaSalGraphicsImpl *graphics)
 

Detailed Description

Definition at line 39 of file gdiimpl.hxx.

Member Typedef Documentation

◆ DirectImage

Definition at line 279 of file gdiimpl.hxx.

Member Enumeration Documentation

◆ XorMode

enum class SkiaSalGraphicsImpl::XorMode
strongprotected
Enumerator
None 
Invert 
Xor 

Definition at line 359 of file gdiimpl.hxx.

Constructor & Destructor Documentation

◆ SkiaSalGraphicsImpl()

SkiaSalGraphicsImpl::SkiaSalGraphicsImpl ( SalGraphics pParent,
SalGeometryProvider pProvider 
)

◆ ~SkiaSalGraphicsImpl()

virtual SkiaSalGraphicsImpl::~SkiaSalGraphicsImpl ( )
overridevirtual

Member Function Documentation

◆ addUpdateRegion()

void SkiaSalGraphicsImpl::addUpdateRegion ( const SkRect &  rect)
inlineprotected

Definition at line 266 of file gdiimpl.hxx.

◆ avoidRecreateByResize()

virtual bool SkiaSalGraphicsImpl::avoidRecreateByResize ( ) const
protectedvirtual

Reimplemented in X11SkiaSalGraphicsImpl.

◆ blendAlphaBitmap()

virtual bool SkiaSalGraphicsImpl::blendAlphaBitmap ( const SalTwoRect ,
const SalBitmap rSrcBitmap,
const SalBitmap rMaskBitmap,
const SalBitmap rAlphaBitmap 
)
overridevirtual

Implements SalGraphicsImpl.

◆ blendBitmap()

virtual bool SkiaSalGraphicsImpl::blendBitmap ( const SalTwoRect ,
const SalBitmap rBitmap 
)
overridevirtual

Implements SalGraphicsImpl.

◆ checkPendingDrawing()

void SkiaSalGraphicsImpl::checkPendingDrawing ( )
protected

◆ checkSurface()

void SkiaSalGraphicsImpl::checkSurface ( )
protected

◆ copyArea()

virtual void SkiaSalGraphicsImpl::copyArea ( tools::Long  nDestX,
tools::Long  nDestY,
tools::Long  nSrcX,
tools::Long  nSrcY,
tools::Long  nSrcWidth,
tools::Long  nSrcHeight,
bool  bWindowInvalidate 
)
overridevirtual

Implements SalGraphicsImpl.

◆ copyBits()

virtual void SkiaSalGraphicsImpl::copyBits ( const SalTwoRect rPosAry,
SalGraphics pSrcGraphics 
)
overridevirtual

Implements SalGraphicsImpl.

◆ createOffscreenSurface()

void SkiaSalGraphicsImpl::createOffscreenSurface ( )
protected

◆ createSurface()

virtual void SkiaSalGraphicsImpl::createSurface ( )
protectedvirtual

◆ createWindowSurface()

void SkiaSalGraphicsImpl::createWindowSurface ( bool  forceRaster = false)
protected

◆ createWindowSurfaceInternal()

virtual void SkiaSalGraphicsImpl::createWindowSurfaceInternal ( bool  forceRaster = false)
protectedpure virtual

◆ DeInit()

virtual void SkiaSalGraphicsImpl::DeInit ( )
overridevirtual

Reimplemented from SalGraphicsImpl.

◆ delayDrawPolyPolygon()

bool SkiaSalGraphicsImpl::delayDrawPolyPolygon ( const basegfx::B2DPolyPolygon polygon,
double  transparency 
)
protected

◆ destroySurface()

void SkiaSalGraphicsImpl::destroySurface ( )
protected

◆ drawAlphaBitmap()

virtual bool SkiaSalGraphicsImpl::drawAlphaBitmap ( const SalTwoRect ,
const SalBitmap rSourceBitmap,
const SalBitmap rAlphaBitmap 
)
overridevirtual

Render bitmap with alpha channel.

Parameters
rSourceBitmapSource bitmap to blit
rAlphaBitmapAlpha channel to use for blitting
Returns
true, if the operation succeeded, and false otherwise. In this case, clients should try to emulate alpha compositing themselves

Implements SalGraphicsImpl.

◆ drawAlphaRect()

virtual bool SkiaSalGraphicsImpl::drawAlphaRect ( tools::Long  nX,
tools::Long  nY,
tools::Long  nWidth,
tools::Long  nHeight,
sal_uInt8  nTransparency 
)
overridevirtual

Render solid rectangle with given transparency.

Parameters
nXTop left coordinate of rectangle
nYBottom right coordinate of rectangle
nWidthWidth of rectangle
nHeightHeight of rectangle
nTransparencyTransparency value (0-255) to use. 0 blits and opaque, 255 a fully transparent rectangle
Returns
true if successfully drawn, false if not able to draw rectangle

Implements SalGraphicsImpl.

◆ drawBitmap() [1/3]

virtual void SkiaSalGraphicsImpl::drawBitmap ( const SalTwoRect rPosAry,
const SalBitmap rSalBitmap 
)
overridevirtual

Implements SalGraphicsImpl.

◆ drawBitmap() [2/3]

virtual void SkiaSalGraphicsImpl::drawBitmap ( const SalTwoRect rPosAry,
const SalBitmap rSalBitmap,
const SalBitmap rMaskBitmap 
)
overridevirtual

Implements SalGraphicsImpl.

◆ drawBitmap() [3/3]

void SkiaSalGraphicsImpl::drawBitmap ( const SalTwoRect rPosAry,
const SkiaSalBitmap bitmap,
SkBlendMode  blendMode = SkBlendMode::kSrcOver 
)

◆ drawEPS()

virtual bool SkiaSalGraphicsImpl::drawEPS ( tools::Long  nX,
tools::Long  nY,
tools::Long  nWidth,
tools::Long  nHeight,
void *  pPtr,
sal_uInt32  nSize 
)
overridevirtual

Implements SalGraphicsImpl.

◆ drawGenericLayout()

void SkiaSalGraphicsImpl::drawGenericLayout ( const GenericSalLayout layout,
Color  textColor,
const SkFont &  font,
const SkFont &  verticalFont 
)

◆ drawGradient()

virtual bool SkiaSalGraphicsImpl::drawGradient ( const tools::PolyPolygon rPolygon,
const Gradient rGradient 
)
overridevirtual

Implements SalGraphicsImpl.

◆ drawImage()

void SkiaSalGraphicsImpl::drawImage ( const SalTwoRect rPosAry,
const sk_sp< SkImage > &  aImage,
int  srcScaling = 1,
SkBlendMode  eBlendMode = SkBlendMode::kSrcOver 
)

◆ drawLine()

virtual void SkiaSalGraphicsImpl::drawLine ( tools::Long  nX1,
tools::Long  nY1,
tools::Long  nX2,
tools::Long  nY2 
)
overridevirtual

Implements SalGraphicsImpl.

◆ drawMask()

virtual void SkiaSalGraphicsImpl::drawMask ( const SalTwoRect rPosAry,
const SalBitmap rSalBitmap,
Color  nMaskColor 
)
overridevirtual

Implements SalGraphicsImpl.

◆ drawPixel() [1/2]

virtual void SkiaSalGraphicsImpl::drawPixel ( tools::Long  nX,
tools::Long  nY 
)
overridevirtual

Implements SalGraphicsImpl.

◆ drawPixel() [2/2]

virtual void SkiaSalGraphicsImpl::drawPixel ( tools::Long  nX,
tools::Long  nY,
Color  nColor 
)
overridevirtual

Implements SalGraphicsImpl.

◆ drawPolygon()

virtual void SkiaSalGraphicsImpl::drawPolygon ( sal_uInt32  nPoints,
const Point pPtAry 
)
overridevirtual

Implements SalGraphicsImpl.

◆ drawPolygonBezier()

virtual bool SkiaSalGraphicsImpl::drawPolygonBezier ( sal_uInt32  nPoints,
const Point pPtAry,
const PolyFlags pFlgAry 
)
overridevirtual

Implements SalGraphicsImpl.

◆ drawPolyLine() [1/2]

virtual bool SkiaSalGraphicsImpl::drawPolyLine ( const basegfx::B2DHomMatrix rObjectToDevice,
const basegfx::B2DPolygon ,
double  fTransparency,
double  fLineWidth,
const std::vector< double > *  pStroke,
basegfx::B2DLineJoin  ,
css::drawing::LineCap  ,
double  fMiterMinimumAngle,
bool  bPixelSnapHairline 
)
overridevirtual

Implements SalGraphicsImpl.

◆ drawPolyLine() [2/2]

virtual void SkiaSalGraphicsImpl::drawPolyLine ( sal_uInt32  nPoints,
const Point pPtAry 
)
overridevirtual

Implements SalGraphicsImpl.

◆ drawPolyLineBezier()

virtual bool SkiaSalGraphicsImpl::drawPolyLineBezier ( sal_uInt32  nPoints,
const Point pPtAry,
const PolyFlags pFlgAry 
)
overridevirtual

Implements SalGraphicsImpl.

◆ drawPolyPolygon() [1/2]

virtual bool SkiaSalGraphicsImpl::drawPolyPolygon ( const basegfx::B2DHomMatrix rObjectToDevice,
const basegfx::B2DPolyPolygon ,
double  fTransparency 
)
overridevirtual

Implements SalGraphicsImpl.

◆ drawPolyPolygon() [2/2]

virtual void SkiaSalGraphicsImpl::drawPolyPolygon ( sal_uInt32  nPoly,
const sal_uInt32 *  pPoints,
const Point **  pPtAry 
)
overridevirtual

Implements SalGraphicsImpl.

◆ drawPolyPolygonBezier()

virtual bool SkiaSalGraphicsImpl::drawPolyPolygonBezier ( sal_uInt32  nPoly,
const sal_uInt32 *  pPoints,
const Point *const *  pPtAry,
const PolyFlags *const *  pFlgAry 
)
overridevirtual

Implements SalGraphicsImpl.

◆ drawRect()

virtual void SkiaSalGraphicsImpl::drawRect ( tools::Long  nX,
tools::Long  nY,
tools::Long  nWidth,
tools::Long  nHeight 
)
overridevirtual

Implements SalGraphicsImpl.

◆ drawShader()

void SkiaSalGraphicsImpl::drawShader ( const SalTwoRect rPosAry,
const sk_sp< SkShader > &  shader,
SkBlendMode  blendMode = SkBlendMode::kSrcOver 
)

◆ drawTransformedBitmap()

virtual bool SkiaSalGraphicsImpl::drawTransformedBitmap ( const basegfx::B2DPoint rNull,
const basegfx::B2DPoint rX,
const basegfx::B2DPoint rY,
const SalBitmap rSourceBitmap,
const SalBitmap pAlphaBitmap,
double  fAlpha 
)
overridevirtual

draw transformed bitmap (maybe with alpha) where Null, X, Y define the coordinate system

Implements SalGraphicsImpl.

◆ dump()

void SkiaSalGraphicsImpl::dump ( const char *  file) const

◆ flushDrawing()

void SkiaSalGraphicsImpl::flushDrawing ( )
protected

◆ flushSurfaceToWindowContext()

virtual void SkiaSalGraphicsImpl::flushSurfaceToWindowContext ( )
protectedvirtual

Reimplemented in AquaSkiaSalGraphicsImpl.

◆ GetBitCount()

virtual sal_uInt16 SkiaSalGraphicsImpl::GetBitCount ( ) const
overridevirtual

Implements SalGraphicsImpl.

◆ getBitmap()

virtual std::shared_ptr< SalBitmap > SkiaSalGraphicsImpl::getBitmap ( tools::Long  nX,
tools::Long  nY,
tools::Long  nWidth,
tools::Long  nHeight 
)
overridevirtual

Implements SalGraphicsImpl.

◆ getClipRegion()

const vcl::Region & SkiaSalGraphicsImpl::getClipRegion ( ) const

◆ getDrawCanvas()

SkCanvas * SkiaSalGraphicsImpl::getDrawCanvas ( )
inlineprotected

Definition at line 227 of file gdiimpl.hxx.

◆ GetGraphicsWidth()

virtual tools::Long SkiaSalGraphicsImpl::GetGraphicsWidth ( ) const
overridevirtual

Implements SalGraphicsImpl.

◆ GetHeight()

int SkiaSalGraphicsImpl::GetHeight ( ) const
inlineprotected

Definition at line 262 of file gdiimpl.hxx.

◆ getPixel()

virtual Color SkiaSalGraphicsImpl::getPixel ( tools::Long  nX,
tools::Long  nY 
)
overridevirtual

Implements SalGraphicsImpl.

◆ getRenderBackendName()

virtual OUString SkiaSalGraphicsImpl::getRenderBackendName ( ) const
inlineoverridevirtual

Implements SalGraphicsImpl.

Definition at line 49 of file gdiimpl.hxx.

◆ GetWidth()

int SkiaSalGraphicsImpl::GetWidth ( ) const
inlineprotected

Definition at line 260 of file gdiimpl.hxx.

◆ getWindowScaling()

virtual int SkiaSalGraphicsImpl::getWindowScaling ( ) const
protectedvirtual

Reimplemented in AquaSkiaSalGraphicsImpl.

◆ goodScalingQuality()

BmpScaleFlag SkiaSalGraphicsImpl::goodScalingQuality ( ) const
inlineprotected

Definition at line 301 of file gdiimpl.hxx.

References SkiaHelper::goodScalingQuality().

◆ hasFastDrawTransformedBitmap()

virtual bool SkiaSalGraphicsImpl::hasFastDrawTransformedBitmap ( ) const
overridevirtual

Implements SalGraphicsImpl.

◆ implDrawGradient()

virtual bool SkiaSalGraphicsImpl::implDrawGradient ( const basegfx::B2DPolyPolygon rPolyPolygon,
const SalGradient rGradient 
)
overridevirtual

Implements SalGraphicsImpl.

◆ Init()

virtual void SkiaSalGraphicsImpl::Init ( )
overridevirtual

Implements SalGraphicsImpl.

Reimplemented in X11SkiaSalGraphicsImpl.

◆ invert() [1/3]

void SkiaSalGraphicsImpl::invert ( basegfx::B2DPolygon const &  rPoly,
SalInvert  eFlags 
)
protected

◆ invert() [2/3]

virtual void SkiaSalGraphicsImpl::invert ( sal_uInt32  nPoints,
const Point pPtAry,
SalInvert  nFlags 
)
overridevirtual

Implements SalGraphicsImpl.

◆ invert() [3/3]

virtual void SkiaSalGraphicsImpl::invert ( tools::Long  nX,
tools::Long  nY,
tools::Long  nWidth,
tools::Long  nHeight,
SalInvert  nFlags 
)
overridevirtual

Implements SalGraphicsImpl.

◆ isGPU()

bool SkiaSalGraphicsImpl::isGPU ( ) const
inlineprotected

Definition at line 250 of file gdiimpl.hxx.

◆ isOffscreen()

bool SkiaSalGraphicsImpl::isOffscreen ( ) const
protected

◆ makeBitmapPaint()

SkPaint SkiaSalGraphicsImpl::makeBitmapPaint ( ) const
inlineprotected

Definition at line 419 of file gdiimpl.hxx.

References makePaintInternal().

◆ makeCachedImageKey()

static OString SkiaSalGraphicsImpl::makeCachedImageKey ( const SkiaSalBitmap bitmap,
const SkiaSalBitmap alphaBitmap,
const Size targetSize,
DirectImage  bitmapType,
DirectImage  alphaBitmapType 
)
staticprotected

◆ makeFillPaint()

SkPaint SkiaSalGraphicsImpl::makeFillPaint ( double  transparency = 0) const
inlineprotected

◆ makeGradientPaint()

SkPaint SkiaSalGraphicsImpl::makeGradientPaint ( ) const
inlineprotected

Definition at line 421 of file gdiimpl.hxx.

References makePaintInternal().

◆ makeLinePaint()

SkPaint SkiaSalGraphicsImpl::makeLinePaint ( double  transparency = 0) const
inlineprotected

◆ makePaintInternal()

SkPaint SkiaSalGraphicsImpl::makePaintInternal ( ) const
inlineprotected

◆ makePixelPaint()

SkPaint SkiaSalGraphicsImpl::makePixelPaint ( std::optional< Color color) const
inlineprotected

Definition at line 431 of file gdiimpl.hxx.

References makePaintInternal(), and SkiaHelper::toSkColor().

◆ makeSamplingOptions() [1/2]

SkSamplingOptions SkiaSalGraphicsImpl::makeSamplingOptions ( const SalTwoRect rPosAry,
int  scalingFactor,
int  srcScalingFactor = 1 
)
inlineprotected

Definition at line 302 of file gdiimpl.hxx.

References SkiaHelper::makeSamplingOptions().

◆ makeSamplingOptions() [2/2]

SkSamplingOptions SkiaSalGraphicsImpl::makeSamplingOptions ( const SkMatrix &  matrix,
int  scalingFactor 
)
inlineprotected

◆ makeTextPaint()

SkPaint SkiaSalGraphicsImpl::makeTextPaint ( std::optional< Color color) const
inlineprotected

Definition at line 423 of file gdiimpl.hxx.

References makePaintInternal(), and SkiaHelper::toSkColor().

◆ mergeCacheBitmaps()

sk_sp< SkImage > SkiaSalGraphicsImpl::mergeCacheBitmaps ( const SkiaSalBitmap bitmap,
const SkiaSalBitmap alphaBitmap,
const Size targetSize 
)
protected

◆ performDrawPolyPolygon()

void SkiaSalGraphicsImpl::performDrawPolyPolygon ( const basegfx::B2DPolyPolygon polygon,
double  transparency,
bool  useAA 
)
protected

◆ performFlush()

void SkiaSalGraphicsImpl::performFlush ( )
protected

◆ postDraw()

void SkiaSalGraphicsImpl::postDraw ( )
protected

◆ preDraw()

void SkiaSalGraphicsImpl::preDraw ( )
protected

◆ privateCopyBits()

void SkiaSalGraphicsImpl::privateCopyBits ( const SalTwoRect rPosAry,
SkiaSalGraphicsImpl src 
)
protected

◆ privateDrawAlphaRect()

void SkiaSalGraphicsImpl::privateDrawAlphaRect ( tools::Long  nX,
tools::Long  nY,
tools::Long  nWidth,
tools::Long  nHeight,
double  nTransparency,
bool  blockAA = false 
)
protected

◆ resetCanvasScalingAndClipping()

void SkiaSalGraphicsImpl::resetCanvasScalingAndClipping ( )
protected

◆ ResetClipRegion()

virtual void SkiaSalGraphicsImpl::ResetClipRegion ( )
overridevirtual

Implements SalGraphicsImpl.

◆ scheduleFlush()

void SkiaSalGraphicsImpl::scheduleFlush ( )
protected

◆ setCanvasClipRegion()

static void SkiaSalGraphicsImpl::setCanvasClipRegion ( SkCanvas *  canvas,
const vcl::Region region 
)
staticprotected

◆ setCanvasScalingAndClipping()

void SkiaSalGraphicsImpl::setCanvasScalingAndClipping ( )
protected

◆ setClipRegion()

virtual void SkiaSalGraphicsImpl::setClipRegion ( const vcl::Region )
overridevirtual

Implements SalGraphicsImpl.

◆ SetFillColor() [1/2]

virtual void SkiaSalGraphicsImpl::SetFillColor ( )
overridevirtual

Implements SalGraphicsImpl.

◆ SetFillColor() [2/2]

virtual void SkiaSalGraphicsImpl::SetFillColor ( Color  nColor)
overridevirtual

Implements SalGraphicsImpl.

◆ SetLineColor() [1/2]

virtual void SkiaSalGraphicsImpl::SetLineColor ( )
overridevirtual

Implements SalGraphicsImpl.

◆ SetLineColor() [2/2]

virtual void SkiaSalGraphicsImpl::SetLineColor ( Color  nColor)
overridevirtual

Implements SalGraphicsImpl.

◆ setProvider()

void SkiaSalGraphicsImpl::setProvider ( SalGeometryProvider provider)
inlineprotected

Definition at line 247 of file gdiimpl.hxx.

Referenced by AquaSkiaSalGraphicsImpl::UpdateGeometryProvider().

◆ SetROPFillColor()

virtual void SkiaSalGraphicsImpl::SetROPFillColor ( SalROPColor  nROPColor)
overridevirtual

Implements SalGraphicsImpl.

◆ SetROPLineColor()

virtual void SkiaSalGraphicsImpl::SetROPLineColor ( SalROPColor  nROPColor)
overridevirtual

Implements SalGraphicsImpl.

◆ SetXORMode()

virtual void SkiaSalGraphicsImpl::SetXORMode ( bool  bSet,
bool  bInvertOnly 
)
overridevirtual

Implements SalGraphicsImpl.

◆ supportsOperation()

virtual bool SkiaSalGraphicsImpl::supportsOperation ( OutDevSupportType  eType) const
overridevirtual

Implements SalGraphicsImpl.

◆ toSkX()

static constexpr SkScalar SkiaSalGraphicsImpl::toSkX ( tools::Long  x)
inlinestaticconstexprprotected

Definition at line 288 of file gdiimpl.hxx.

References x.

◆ toSkY()

static constexpr SkScalar SkiaSalGraphicsImpl::toSkY ( tools::Long  y)
inlinestaticconstexprprotected

Definition at line 289 of file gdiimpl.hxx.

References y.

◆ windowBackingPropertiesChanged()

void SkiaSalGraphicsImpl::windowBackingPropertiesChanged ( )
protected

Friends And Related Function Documentation

◆ operator<<

template<typename charT , typename traits >
std::basic_ostream< charT, traits > & operator<< ( std::basic_ostream< charT, traits > &  stream,
const SkiaSalGraphicsImpl graphics 
)
friend

Definition at line 330 of file gdiimpl.hxx.

◆ SkiaFlushIdle

friend class SkiaFlushIdle
friend

Definition at line 257 of file gdiimpl.hxx.

Member Data Documentation

◆ mClipRegion

vcl::Region SkiaSalGraphicsImpl::mClipRegion
protected

Definition at line 356 of file gdiimpl.hxx.

◆ mDirtyRect

SkIRect SkiaSalGraphicsImpl::mDirtyRect
protected

Definition at line 355 of file gdiimpl.hxx.

◆ mFlush

std::unique_ptr<SkiaFlushIdle> SkiaSalGraphicsImpl::mFlush
protected

Definition at line 366 of file gdiimpl.hxx.

◆ mInWindowBackingPropertiesChanged

bool SkiaSalGraphicsImpl::mInWindowBackingPropertiesChanged
protected

Definition at line 377 of file gdiimpl.hxx.

◆ mIsGPU

bool SkiaSalGraphicsImpl::mIsGPU
protected

Definition at line 353 of file gdiimpl.hxx.

◆ mLastPolyPolygonInfo

LastPolyPolygonInfo SkiaSalGraphicsImpl::mLastPolyPolygonInfo
protected

Definition at line 374 of file gdiimpl.hxx.

◆ moFillColor

std::optional<Color> SkiaSalGraphicsImpl::moFillColor
protected

Definition at line 358 of file gdiimpl.hxx.

Referenced by makeFillPaint().

◆ moLineColor

std::optional<Color> SkiaSalGraphicsImpl::moLineColor
protected

Definition at line 357 of file gdiimpl.hxx.

Referenced by makeFillPaint(), and makeLinePaint().

◆ mParent

SalGraphics& SkiaSalGraphicsImpl::mParent
protected

Definition at line 346 of file gdiimpl.hxx.

◆ mProvider

SalGeometryProvider* SkiaSalGraphicsImpl::mProvider
protected

Pointer to the SalFrame or SalVirtualDevice.

Definition at line 348 of file gdiimpl.hxx.

◆ mScaling

int SkiaSalGraphicsImpl::mScaling
protected

Definition at line 376 of file gdiimpl.hxx.

◆ mSurface

sk_sp<SkSurface> SkiaSalGraphicsImpl::mSurface
protected

Definition at line 350 of file gdiimpl.hxx.

◆ mWindowContext

std::unique_ptr<sk_app::WindowContext> SkiaSalGraphicsImpl::mWindowContext
protected

Definition at line 352 of file gdiimpl.hxx.

◆ mXorMode

XorMode SkiaSalGraphicsImpl::mXorMode
protected

Definition at line 365 of file gdiimpl.hxx.

Referenced by makePaintInternal().

◆ pendingOperationsToFlush

int SkiaSalGraphicsImpl::pendingOperationsToFlush = 0
inlinestaticprotected

Definition at line 375 of file gdiimpl.hxx.

◆ toSkXYFix

constexpr SkScalar SkiaSalGraphicsImpl::toSkXYFix = SkScalar(0.005)
staticconstexprprotected

Definition at line 291 of file gdiimpl.hxx.


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