31#include <ApplicationServices/ApplicationServices.h>
35#include <CoreGraphics/CoreGraphics.h>
36#include <CoreText/CoreText.h>
56#include <unordered_map>
135NSRect getTotalScreenBounds();
136void resetTotalScreenBounds();
308 CGContextRef context,
375 const Point** pPointArray)
override;
381 double fTransparency,
double fLineWidth,
const std::vector<double>* pStroke,
383 bool bPixelSnapHairline)
override;
392 const Point*
const* pPointArray,
393 const PolyFlags*
const* pFlagArray)
override;
406 Color nMaskColor)
override;
419 void* pPtr, sal_uInt32 nSize)
override;
431 const SalBitmap* pAlphaBitmap,
double fAlpha)
override;
471 void initResolution( NSWindow* );
473 void updateResolution();
476 bool IsWindowGraphics()
const {
return maShared.mbWindow; }
477 void SetPrinterGraphics(CGContextRef, sal_Int32 nRealDPIX, sal_Int32 nRealDPIY);
483 void UpdateWindow( NSRect& );
516 const Point& aPos,
bool& rIsInside )
override;
519 const OUString& aCaption,
const Color& rBackgroundColor )
override;
543 virtual std::unique_ptr<GenericSalLayout>
virtual bool drawNativeControl(ControlType nType, ControlPart nPart, const tools::Rectangle &rControlRegion, ControlState nState, const ImplControlValue &aValue)=0
AquaGraphicsBackendBase(AquaSharedAttributes &rShared, SalGraphicsImpl *impl)
AquaSharedAttributes & mrShared
AquaSharedAttributes & GetShared()
virtual void drawTextLayout(const GenericSalLayout &layout)=0
virtual void UpdateGeometryProvider(SalGeometryProvider *)
static bool performDrawNativeControl(ControlType nType, ControlPart nPart, const tools::Rectangle &rControlRegion, ControlState nState, const ImplControlValue &aValue, CGContextRef context, AquaSalFrame *mpFrame)
virtual void Flush(const tools::Rectangle &)
virtual ~AquaGraphicsBackendBase()=0
virtual void WindowBackingPropertiesChanged()
SalGraphicsImpl * GetImpl()
void ResetClipRegion() override
void SetFillColor(Color nColor) override
sal_uInt16 GetBitCount() const override
bool blendBitmap(const SalTwoRect &, const SalBitmap &rBitmap) override
bool supportsOperation(OutDevSupportType eType) const override
void SetROPFillColor(SalROPColor nROPColor) override
void SetLineColor() override
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
bool drawPolyPolygon(const basegfx::B2DHomMatrix &rObjectToDevice, const basegfx::B2DPolyPolygon &, double fTransparency) override
void SetLineColor(Color nColor) override
std::shared_ptr< SalBitmap > getBitmap(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight) override
void setClipRegion(vcl::Region const &rRegion) override
void drawLine(tools::Long nX1, tools::Long nY1, tools::Long nX2, tools::Long nY2) override
void copyBits(const SalTwoRect &rPosAry, SalGraphics *pSrcGraphics) override
bool drawAlphaRect(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, sal_uInt8 nTransparency) override
bool drawPolyPolygonBezier(sal_uInt32 nPoly, const sal_uInt32 *pPoints, const Point *const *pPointArray, const PolyFlags *const *pFlagArray) override
bool drawTransformedBitmap(const basegfx::B2DPoint &rNull, const basegfx::B2DPoint &rX, const basegfx::B2DPoint &rY, const SalBitmap &rSourceBitmap, const SalBitmap *pAlphaBitmap, double fAlpha) override
void refreshRect(const CGRect &)
bool drawPolyLineBezier(sal_uInt32 nPoints, const Point *pPointArray, const PolyFlags *pFlagArray) override
void drawBitmap(const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap) override
tools::Long GetGraphicsWidth() const override
void drawPixel(tools::Long nX, tools::Long nY, Color nColor) override
void drawPolyPolygon(sal_uInt32 nPoly, const sal_uInt32 *pPoints, const Point **pPointArray) override
virtual void drawTextLayout(const GenericSalLayout &layout) override
bool drawPolygonBezier(sal_uInt32 nPoints, const Point *pPointArray, const PolyFlags *pFlagArray) override
bool hasFastDrawTransformedBitmap() const override
~AquaGraphicsBackend() override
bool drawAlphaBitmap(const SalTwoRect &, const SalBitmap &rSourceBitmap, const SalBitmap &rAlphaBitmap) override
void drawBitmap(const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap, const SalBitmap &rMaskBitmap) override
void drawMask(const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap, Color nMaskColor) override
void invert(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, SalInvert nFlags) override
bool blendAlphaBitmap(const SalTwoRect &, const SalBitmap &rSrcBitmap, const SalBitmap &rMaskBitmap, const SalBitmap &rAlphaBitmap) override
void drawRect(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight) 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 freeResources() override
bool drawEPS(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, void *pPtr, sal_uInt32 nSize) override
void SetROPLineColor(SalROPColor nROPColor) override
bool drawGradient(const tools::PolyPolygon &rPolygon, const Gradient &rGradient) override
void drawPolyLine(sal_uInt32 nPoints, const Point *pPointArray) override
OUString getRenderBackendName() const override
void invert(sal_uInt32 nPoints, const Point *pPtAry, SalInvert nFlags) override
AquaGraphicsBackend(AquaSharedAttributes &rShared)
void drawPixelImpl(tools::Long nX, tools::Long nY, const RGBAColor &rColor)
bool implDrawGradient(basegfx::B2DPolyPolygon const &rPolyPolygon, SalGradient const &rGradient) override
Color getPixel(tools::Long nX, tools::Long nY) override
void drawPixel(tools::Long nX, tools::Long nY) override
void SetXORMode(bool bSet, bool bInvertOnly) override
virtual bool drawNativeControl(ControlType nType, ControlPart nPart, const tools::Rectangle &rControlRegion, ControlState nState, const ImplControlValue &aValue) override
void drawPolygon(sal_uInt32 nPoints, const Point *pPointArray) override
void SetFillColor() override
tools::Rectangle maInvalidRect
virtual SalGraphicsImpl * GetImpl() const override
virtual bool GetFontCapabilities(vcl::FontCapabilities &rFontCapabilities) const override
virtual void DrawTextLayout(const GenericSalLayout &) override
virtual FontCharMapRef GetFontCharMap() const override
std::unique_ptr< AquaGraphicsBackendBase > mpBackend
void RefreshRect(const CGRect &)
virtual SystemGraphicsData GetGraphicsData() const override
virtual std::unique_ptr< GenericSalLayout > GetTextLayout(int nFallbackLevel) override
AquaGraphicsBackendBase * getAquaGraphicsBackend() const
virtual void GetDevFontList(vcl::font::PhysicalFontCollection *) override
virtual void SetFont(LogicalFontInstance *, int nFallbackLevel) override
AquaSharedAttributes maShared
virtual void ClearDevFontCache() override
virtual void SetTextColor(Color nColor) override
sal_Int32 mnRealDPIX
device resolution of this graphics
virtual void GetResolution(sal_Int32 &rDPIX, sal_Int32 &rDPIY) override
rtl::Reference< CoreTextFont > mpFont[MAX_FALLBACK]
virtual void GetFontMetric(FontMetricDataRef &, int nFallbackLevel) override
AquaSalGraphics(bool bPrinter=false)
void WindowBackingPropertiesChanged()
virtual bool AddTempDevFont(vcl::font::PhysicalFontCollection *, const OUString &rFileURL, const OUString &rFontName) override
virtual ~AquaSalGraphics() override
void SetVirDevGraphics(SalVirtualDevice *pVirDev, CGLayerHolder const &rLayer, CGContextRef, int nBitDepth=0)
void Flush(const tools::Rectangle &)
CoreTextFontFace(const FontAttributes &, CTFontDescriptorRef xRef)
sal_IntPtr GetFontId() const override
~CoreTextFontFace() override
CTFontDescriptorRef GetFontDescriptorRef() const
rtl::Reference< LogicalFontInstance > CreateFontInstance(const vcl::font::FontSelectPattern &) const override
CTFontDescriptorRef mxFontDescriptor
const std::vector< hb_variation_t > & GetVariations(const LogicalFontInstance &) const override
hb_blob_t * GetHbTable(hb_tag_t nTag) const override
float mfFontRotation
text rotation in radian
void GetFontMetric(FontMetricDataRef const &)
CTFontRef GetCTFont() const
bool GetGlyphOutline(sal_GlyphId, basegfx::B2DPolyPolygon &, bool) const override
float mfFontStretch
<1.0: font is squeezed, >1.0 font is stretched, else 1.0
CoreTextFont(const CoreTextFontFace &, const vcl::font::FontSelectPattern &)
Interface used to share logic on sizing between SalVirtualDevices and SalFrames.
Implementation class for SalGraphics.
A non-visible drawable/buffer (e.g. an X11 Pixmap).
CTFontCollectionRef fontCollection()
std::unordered_map< sal_IntPtr, rtl::Reference< CoreTextFontFace > > maFontContainer
CTFontCollectionRef mpCTFontCollection
void AddFont(CoreTextFontFace *)
void AnnounceFonts(vcl::font::PhysicalFontCollection &) const
CoreTextFontFace * GetFontDataFromId(sal_IntPtr nFontId) const
abstract base class for physical font faces
constexpr ::Color COL_WHITE(0xFF, 0xFF, 0xFF)
constexpr ::Color COL_BLACK(0x00, 0x00, 0x00)
void resetWindowScaling()
bool isBrushVisible() const
CGContextHolder maContextHolder
std::unique_ptr< XorEmulation > mpXorEmulation
bool mbVirDev
is this a virtual device graphics
bool mbNonAntialiasedText
allows text to be rendered without antialiasing
bool isPenVisible() const
CGContextHolder maBGContextHolder
CGContextHolder maCSContextHolder
bool mbPrinter
is this a printer graphics
RGBAColor maLineColor
Drawing colors pen color RGBA.
CGMutablePathRef mxClipPath
path representing current clip region
void refreshRect(float lX, float lY, float lWidth, float lHeight)
RGBAColor maFillColor
brush color RGBA