33#include <config_cairo_canvas.h>
41 class FontSelectPattern;
42 class PhysicalFontFace;
43 class PhysicalFontCollection;
59class AbstractTrueTypeFont;
60class FileDefinitionWidgetDraw;
89 GetImpl()->setAntiAlias(bNew);
160 const OUString& rFileURL,
161 const OUString& rFontName ) = 0;
163 virtual std::unique_ptr<GenericSalLayout>
177 bool mirror( sal_uInt32 nPoints,
const Point *pPtAry,
Point *pPtAry2,
const OutputDevice& rOutDev )
const;
196 void DrawPolyLine( sal_uInt32 nPoints,
Point const * pPtAry,
const OutputDevice& rOutDev );
200 void DrawPolyPolygon(
202 const sal_uInt32* pPoints,
203 const Point** pPtAry,
206 bool DrawPolyPolygon(
209 double i_fTransparency,
215 double i_fTransparency,
217 const std::vector< double >* i_pStroke,
219 css::drawing::LineCap i_eLineCap,
220 double i_fMiterMinimumAngle,
221 bool bPixelSnapHairline,
224 bool DrawPolyLineBezier(
230 bool DrawPolygonBezier(
236 bool DrawPolyPolygonBezier(
238 const sal_uInt32* pPoints,
239 const Point*
const* pPtAry,
287 std::shared_ptr<SalBitmap> GetBitmap(
326 bool HitTestNativeScrollbar(
336 bool DrawNativeControl(
342 const OUString& aCaption,
344 const Color& rBackgroundColor = COL_AUTO );
349 bool GetNativeControlRegion(
369 bool BlendAlphaBitmap(
376 bool DrawAlphaBitmap(
382 bool DrawTransformedBitmap(
391 bool HasFastDrawTransformedBitmap()
const;
399 virtual OUString getRenderBackendName()
const;
408 virtual bool ShouldDownscaleIconsAtSurface(
double* pScaleOut)
const;
411#if ENABLE_CAIRO_CANVAS
414 virtual bool SupportsCairo()
const = 0;
448 double fTransparency) = 0;
453 double fTransparency,
455 const std::vector< double >* pStroke,
457 css::drawing::LineCap,
458 double fMiterMinimumAngle,
459 bool bPixelSnapHairline) = 0;
473 const sal_uInt32* pPoints,
474 const Point*
const* pPtAry,
492 bool bWindowInvalidate ) = 0;
508 Color nMaskColor ) = 0;
526 sal_uInt32 nSize ) = 0;
561 virtual bool drawTransformedBitmap(
627 bool initWidgetDrawBackends(
bool bForce =
false);
742 double fTransparency)
override
750 double fTransparency,
752 const std::vector< double >* pStroke,
754 css::drawing::LineCap eLineCap,
755 double fMiterMinimumAngle,
756 bool bPixelSnapHairline)
override
758 return GetImpl()->
drawPolyLine(rObjectToDevice, rPolygon, fTransparency, fLineWidth, pStroke, eJoin, eLineCap, fMiterMinimumAngle, bPixelSnapHairline);
772 const sal_uInt32* pPoints,
773 const Point*
const* pPtAry,
774 const PolyFlags*
const* pFlgAry)
override
791 tools::Long nHeight,
void* pPtr, sal_uInt32 nSize)
override
803 bool bWindowInvalidate)
override
805 GetImpl()->
copyArea(nDestX, nDestY, nSrcX, nSrcY, nSrcWidth, nSrcHeight, bWindowInvalidate);
854 const SalBitmap* pAlphaBitmap,
double fAlpha)
override
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
bool drawPolyLine(const basegfx::B2DHomMatrix &rObjectToDevice, const basegfx::B2DPolygon &rPolygon, double fTransparency, double fLineWidth, const std::vector< double > *pStroke, basegfx::B2DLineJoin eJoin, css::drawing::LineCap eLineCap, double fMiterMinimumAngle, bool bPixelSnapHairline) override
bool blendBitmap(const SalTwoRect &rPosAry, const SalBitmap &rBitmap) override
Blend the bitmap with the current buffer.
bool drawAlphaBitmap(const SalTwoRect &rPosAry, const SalBitmap &rSourceBitmap, const SalBitmap &rAlphaBitmap) override
Render bitmap with alpha channel.
bool drawPolyPolygonBezier(sal_uInt32 nPoly, const sal_uInt32 *pPoints, const Point *const *pPtAry, const PolyFlags *const *pFlgAry) override
void drawPolygon(sal_uInt32 nPoints, const Point *pPtAry) override
void SetLineColor() override
void drawBitmap(const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap) override
bool supportsOperation(OutDevSupportType eType) const override
void drawMask(const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap, Color nMaskColor) override
bool drawPolygonBezier(sal_uInt32 nPoints, const Point *pPtAry, const PolyFlags *pFlgAry) override
void drawLine(tools::Long nX1, tools::Long nY1, tools::Long nX2, tools::Long nY2) override
void drawPolyPolygon(sal_uInt32 nPoly, const sal_uInt32 *pPoints, const Point **pPtAry) override
bool drawEPS(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, void *pPtr, sal_uInt32 nSize) override
bool drawGradient(const tools::PolyPolygon &rPolygon, const Gradient &rGradient) override
void SetLineColor(Color nColor) override
bool drawAlphaRect(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, sal_uInt8 nTransparency) override
Render solid rectangle with given transparency.
OUString getRenderBackendName() const override
void drawBitmap(const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap, const SalBitmap &rMaskBitmap) override
bool drawPolyLineBezier(sal_uInt32 nPoints, const Point *pPtAry, const PolyFlags *pFlgAry) override
void copyArea(tools::Long nDestX, tools::Long nDestY, tools::Long nSrcX, tools::Long nSrcY, tools::Long nSrcWidth, tools::Long nSrcHeight, bool bWindowInvalidate) override
void drawPixel(tools::Long nX, tools::Long nY) override
void SetROPFillColor(SalROPColor aColor) override
void SetFillColor() override
void copyBits(const SalTwoRect &rPosAry, SalGraphics *pSrcGraphics) override
std::shared_ptr< SalBitmap > getBitmap(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight) override
bool drawPolyPolygon(const basegfx::B2DHomMatrix &rObjectToDevice, const basegfx::B2DPolyPolygon &rPolyPolygon, double fTransparency) override
Color getPixel(tools::Long nX, tools::Long nY) override
bool implDrawGradient(basegfx::B2DPolyPolygon const &rPolyPolygon, SalGradient const &rGradient) override
void setClipRegion(const vcl::Region &i_rClip) override
void SetROPLineColor(SalROPColor aColor) override
sal_uInt16 GetBitCount() const override
void invert(sal_uInt32 nPoints, const Point *pPtAry, SalInvert nFlags) override
void SetXORMode(bool bSet, bool bInvertOnly) override
void SetFillColor(Color nColor) override
void invert(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, SalInvert nFlags) override
bool blendAlphaBitmap(const SalTwoRect &rPosAry, const SalBitmap &rSourceBitmap, const SalBitmap &rMaskBitmap, const SalBitmap &rAlphaBitmap) override
Draw the bitmap by blending using the mask and alpha channel.
void drawPixel(tools::Long nX, tools::Long nY, Color nColor) override
tools::Long GetGraphicsWidth() const override
void ResetClipRegion() override
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
void drawPolyLine(sal_uInt32 nPoints, const Point *pPtAry) override
void drawRect(tools::Long nX, tools::Long nY, tools::Long nDX, tools::Long nDY) override
bool hasFastDrawTransformedBitmap() const override
Returns true if the drawTransformedBitmap() call is fast, and so it should be used directly without t...
Implementation class for SalGraphics.
virtual void setClipRegion(const vcl::Region &)=0
virtual void drawMask(const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap, Color nMaskColor)=0
virtual void ResetClipRegion()=0
virtual bool supportsOperation(OutDevSupportType eType) const =0
virtual bool drawAlphaBitmap(const SalTwoRect &, const SalBitmap &rSourceBitmap, const SalBitmap &rAlphaBitmap)=0
virtual void invert(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, SalInvert nFlags)=0
virtual void drawPolyLine(sal_uInt32 nPoints, const Point *pPtAry)=0
virtual void drawLine(tools::Long nX1, tools::Long nY1, tools::Long nX2, tools::Long nY2)=0
virtual void drawPixel(tools::Long nX, tools::Long nY)=0
virtual void copyBits(const SalTwoRect &rPosAry, SalGraphics *pSrcGraphics)=0
virtual void drawRect(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight)=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 bool blendAlphaBitmap(const SalTwoRect &, const SalBitmap &rSrcBitmap, const SalBitmap &rMaskBitmap, 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 void SetROPLineColor(SalROPColor nROPColor)=0
virtual void SetFillColor()=0
virtual void SetXORMode(bool bSet, bool bInvertOnly)=0
virtual std::shared_ptr< SalBitmap > getBitmap(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight)=0
virtual bool drawPolyPolygonBezier(sal_uInt32 nPoly, const sal_uInt32 *pPoints, const Point *const *pPtAry, const PolyFlags *const *pFlgAry)=0
virtual bool drawGradient(const tools::PolyPolygon &rPolygon, const Gradient &rGradient)=0
virtual void SetLineColor()=0
virtual Color getPixel(tools::Long nX, tools::Long nY)=0
virtual tools::Long GetGraphicsWidth() const =0
virtual bool drawPolygonBezier(sal_uInt32 nPoints, const Point *pPtAry, const PolyFlags *pFlgAry)=0
virtual bool implDrawGradient(basegfx::B2DPolyPolygon const &rPolyPolygon, SalGradient const &rGradient)=0
virtual void drawBitmap(const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap)=0
virtual bool drawEPS(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, void *pPtr, sal_uInt32 nSize)=0
virtual void SetROPFillColor(SalROPColor nROPColor)=0
virtual bool blendBitmap(const SalTwoRect &, const SalBitmap &rBitmap)=0
virtual void drawPolygon(sal_uInt32 nPoints, const Point *pPtAry)=0
virtual OUString getRenderBackendName() const =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 sal_uInt16 GetBitCount() const =0
virtual bool drawPolyLineBezier(sal_uInt32 nPoints, const Point *pPtAry, const PolyFlags *pFlgAry)=0
virtual void drawPolyPolygon(sal_uInt32 nPoly, const sal_uInt32 *pPoints, const Point **pPtAry)=0
virtual void copyBits(const SalTwoRect &rPosAry, SalGraphics *pSrcGraphics)=0
virtual void invert(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, SalInvert nFlags)=0
virtual bool drawEPS(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, void *pPtr, sal_uInt32 nSize)=0
void SetLayout(SalLayoutFlags aLayout)
virtual void drawPixel(tools::Long nX, tools::Long nY)=0
virtual void SetROPLineColor(SalROPColor nROPColor)=0
virtual bool GetFontCapabilities(vcl::FontCapabilities &rFontCapabilities) const =0
virtual void drawPixel(tools::Long nX, tools::Long nY, Color nColor)=0
virtual void SetTextColor(Color nColor)=0
virtual void drawPolyPolygon(sal_uInt32 nPoly, const sal_uInt32 *pPoints, const Point **pPtAry)=0
virtual void SetXORMode(bool bSet, bool bInvertOnly)=0
virtual SystemGraphicsData GetGraphicsData() const =0
virtual FontCharMapRef GetFontCharMap() const =0
SalLayoutFlags GetLayout() const
virtual void drawRect(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight)=0
virtual void handleDamage(const tools::Rectangle &rDamagedRegion)
Handle damage done by drawing with a widget draw override.
virtual Color getPixel(tools::Long nX, tools::Long nY)=0
virtual bool drawPolyPolygonBezier(sal_uInt32 nPoly, const sal_uInt32 *pPoints, const Point *const *pPtAry, const PolyFlags *const *pFlgAry)=0
virtual void ClearDevFontCache()=0
bool getAntiAlias() const
virtual void GetResolution(sal_Int32 &rDPIX, sal_Int32 &rDPIY)=0
void setAntiAlias(bool bNew)
virtual void SetLineColor()=0
virtual void SetFillColor()=0
vcl::WidgetDrawInterface * forWidget()
virtual bool AddTempDevFont(vcl::font::PhysicalFontCollection *, const OUString &rFileURL, const OUString &rFontName)=0
virtual bool hasFastDrawTransformedBitmap() const =0
Returns true if the drawTransformedBitmap() call is fast, and so it should be used directly without t...
virtual SalGraphicsImpl * GetImpl() const =0
virtual void drawPolygon(sal_uInt32 nPoints, const Point *pPtAry)=0
virtual tools::Long GetGraphicsWidth() const =0
std::unique_ptr< vcl::WidgetDrawInterface > m_pWidgetDraw
virtual std::shared_ptr< SalBitmap > getBitmap(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight)=0
virtual bool supportsOperation(OutDevSupportType) const =0
virtual void drawPolyLine(sal_uInt32 nPoints, const Point *pPtAry)=0
virtual void DrawTextLayout(const GenericSalLayout &)=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
bool UpdateSettings(AllSettings &)
virtual void drawBitmap(const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap)=0
virtual void GetDevFontList(vcl::font::PhysicalFontCollection *)=0
virtual bool drawAlphaRect(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, sal_uInt8 nTransparency)=0
Render solid rectangle with given transparency.
virtual void drawMask(const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap, Color nMaskColor)=0
virtual bool blendBitmap(const SalTwoRect &, const SalBitmap &rBitmap)=0
Blend the bitmap with the current buffer.
virtual std::unique_ptr< GenericSalLayout > GetTextLayout(int nFallbackLevel)=0
virtual void SetFillColor(Color nColor)=0
bool IsNativeControlSupported(ControlType, ControlPart)
virtual void drawBitmap(const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap, const SalBitmap &rMaskBitmap)=0
basegfx::B2DHomMatrix m_aLastMirror
virtual void SetFont(LogicalFontInstance *, int nFallbackLevel)=0
virtual void invert(sal_uInt32 nPoints, const Point *pPtAry, SalInvert nFlags)=0
bool m_bAntiAlias
flags which hold the SetAntialiasing() value from OutputDevice
virtual void setClipRegion(const vcl::Region &)=0
virtual bool drawPolyPolygon(const basegfx::B2DHomMatrix &rObjectToDevice, const basegfx::B2DPolyPolygon &, double fTransparency)=0
virtual void drawLine(tools::Long nX1, tools::Long nY1, tools::Long nX2, tools::Long nY2)=0
virtual bool drawPolyLineBezier(sal_uInt32 nPoints, const Point *pPtAry, const PolyFlags *pFlgAry)=0
virtual void ResetClipRegion()=0
virtual void SetLineColor(Color nColor)=0
MirrorMode m_eLastMirrorMode
virtual bool drawPolygonBezier(sal_uInt32 nPoints, const Point *pPtAry, const PolyFlags *pFlgAry)=0
virtual sal_uInt16 GetBitCount() const =0
tools::Long m_nLastMirrorTranslation
virtual void SetROPFillColor(SalROPColor nROPColor)=0
virtual bool drawAlphaBitmap(const SalTwoRect &, const SalBitmap &rSourceBitmap, const SalBitmap &rAlphaBitmap)=0
Render bitmap with alpha channel.
virtual bool implDrawGradient(basegfx::B2DPolyPolygon const &, SalGradient const &)
virtual bool blendAlphaBitmap(const SalTwoRect &, const SalBitmap &rSrcBitmap, const SalBitmap &rMaskBitmap, const SalBitmap &rAlphaBitmap)=0
Draw the bitmap by blending using the mask and alpha channel.
virtual bool drawGradient(const tools::PolyPolygon &rPolyPoly, const Gradient &rGradient)=0
virtual void GetFontMetric(FontMetricDataRef &, int nFallbackLevel)=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
#define VCL_PLUGIN_PUBLIC
std::shared_ptr< Surface > SurfaceSharedPtr
std::shared_ptr< cairo_surface_t > CairoSurfaceSharedPtr
A PhysicalFontFaceCollection is created by a PhysicalFontCollection and becomes invalid when original...
Return value of GetTTGlobalFontInfo()