1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
13 #include <salgdiimpl.hxx>
20 class GenPspGfxBackend final
: public SalGraphicsImpl
23 psp::PrinterGfx
* m_pPrinterGfx
;
26 GenPspGfxBackend(psp::PrinterGfx
* pPrinterGfx
);
27 ~GenPspGfxBackend() override
;
30 void freeResources() override
;
31 OUString
getRenderBackendName() const override
{ return "genpsp"; }
33 bool setClipRegion(vcl::Region
const& rRegion
) override
;
34 void ResetClipRegion() override
;
36 sal_uInt16
GetBitCount() const override
;
38 tools::Long
GetGraphicsWidth() const override
;
40 void SetLineColor() override
;
41 void SetLineColor(Color nColor
) override
;
42 void SetFillColor() override
;
43 void SetFillColor(Color nColor
) override
;
44 void SetXORMode(bool bSet
, bool bInvertOnly
) override
;
45 void SetROPLineColor(SalROPColor nROPColor
) override
;
46 void SetROPFillColor(SalROPColor nROPColor
) override
;
48 void drawPixel(tools::Long nX
, tools::Long nY
) override
;
49 void drawPixel(tools::Long nX
, tools::Long nY
, Color nColor
) override
;
51 void drawLine(tools::Long nX1
, tools::Long nY1
, tools::Long nX2
, tools::Long nY2
) override
;
52 void drawRect(tools::Long nX
, tools::Long nY
, tools::Long nWidth
, tools::Long nHeight
) override
;
53 void drawPolyLine(sal_uInt32 nPoints
, const Point
* pPointArray
) override
;
54 void drawPolygon(sal_uInt32 nPoints
, const Point
* pPointArray
) override
;
55 void drawPolyPolygon(sal_uInt32 nPoly
, const sal_uInt32
* pPoints
,
56 const Point
** pPointArray
) override
;
58 bool drawPolyPolygon(const basegfx::B2DHomMatrix
& rObjectToDevice
,
59 const basegfx::B2DPolyPolygon
&, double fTransparency
) override
;
61 bool drawPolyLine(const basegfx::B2DHomMatrix
& rObjectToDevice
, const basegfx::B2DPolygon
&,
62 double fTransparency
, double fLineWidth
, const std::vector
<double>* pStroke
,
63 basegfx::B2DLineJoin
, css::drawing::LineCap
, double fMiterMinimumAngle
,
64 bool bPixelSnapHairline
) override
;
66 bool drawPolyLineBezier(sal_uInt32 nPoints
, const Point
* pPointArray
,
67 const PolyFlags
* pFlagArray
) override
;
69 bool drawPolygonBezier(sal_uInt32 nPoints
, const Point
* pPointArray
,
70 const PolyFlags
* pFlagArray
) override
;
72 bool drawPolyPolygonBezier(sal_uInt32 nPoly
, const sal_uInt32
* pPoints
,
73 const Point
* const* pPointArray
,
74 const PolyFlags
* const* pFlagArray
) override
;
76 void copyArea(tools::Long nDestX
, tools::Long nDestY
, tools::Long nSrcX
, tools::Long nSrcY
,
77 tools::Long nSrcWidth
, tools::Long nSrcHeight
, bool bWindowInvalidate
) override
;
79 void copyBits(const SalTwoRect
& rPosAry
, SalGraphics
* pSrcGraphics
) override
;
81 void drawBitmap(const SalTwoRect
& rPosAry
, const SalBitmap
& rSalBitmap
) override
;
83 void drawBitmap(const SalTwoRect
& rPosAry
, const SalBitmap
& rSalBitmap
,
84 const SalBitmap
& rMaskBitmap
) override
;
86 void drawMask(const SalTwoRect
& rPosAry
, const SalBitmap
& rSalBitmap
,
87 Color nMaskColor
) override
;
89 std::shared_ptr
<SalBitmap
> getBitmap(tools::Long nX
, tools::Long nY
, tools::Long nWidth
,
90 tools::Long nHeight
) override
;
92 Color
getPixel(tools::Long nX
, tools::Long nY
) override
;
94 void invert(tools::Long nX
, tools::Long nY
, tools::Long nWidth
, tools::Long nHeight
,
95 SalInvert nFlags
) override
;
97 void invert(sal_uInt32 nPoints
, const Point
* pPtAry
, SalInvert nFlags
) override
;
99 bool drawEPS(tools::Long nX
, tools::Long nY
, tools::Long nWidth
, tools::Long nHeight
,
100 void* pPtr
, sal_uInt32 nSize
) override
;
102 bool blendBitmap(const SalTwoRect
&, const SalBitmap
& rBitmap
) override
;
104 bool blendAlphaBitmap(const SalTwoRect
&, const SalBitmap
& rSrcBitmap
,
105 const SalBitmap
& rMaskBitmap
, const SalBitmap
& rAlphaBitmap
) override
;
107 bool drawAlphaBitmap(const SalTwoRect
&, const SalBitmap
& rSourceBitmap
,
108 const SalBitmap
& rAlphaBitmap
) override
;
110 bool drawTransformedBitmap(const basegfx::B2DPoint
& rNull
, const basegfx::B2DPoint
& rX
,
111 const basegfx::B2DPoint
& rY
, const SalBitmap
& rSourceBitmap
,
112 const SalBitmap
* pAlphaBitmap
, double fAlpha
) override
;
114 bool hasFastDrawTransformedBitmap() const override
;
116 bool drawAlphaRect(tools::Long nX
, tools::Long nY
, tools::Long nWidth
, tools::Long nHeight
,
117 sal_uInt8 nTransparency
) override
;
119 bool drawGradient(const tools::PolyPolygon
& rPolygon
, const Gradient
& rGradient
) override
;
120 bool implDrawGradient(basegfx::B2DPolyPolygon
const& rPolyPolygon
,
121 SalGradient
const& rGradient
) override
;
123 bool supportsOperation(OutDevSupportType eType
) const override
;
126 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */