|
std::tuple< HFONT, bool, sal_Int32 > | ImplDoSetFont (HDC hDC, vcl::font::FontSelectPattern const &i_rFont, const vcl::font::PhysicalFontFace *i_pFontFace, HFONT &o_rOldFont) |
|
HDC | getHDC () const |
|
void | setHDC (HDC aNew) |
|
HPALETTE | getDefPal () const |
|
UINT | setPalette (HPALETTE, BOOL bForceBkgd=TRUE) |
|
HRGN | getRegion () const |
|
HWND | gethWnd () |
|
| WinSalGraphics (WinSalGraphics::Type eType, bool bScreen, HWND hWnd, SalGeometryProvider *pProvider) |
|
virtual | ~WinSalGraphics () override |
|
SalGraphicsImpl * | GetImpl () const override |
|
WinSalGraphicsImplBase * | getWinSalGraphicsImplBase () const |
|
bool | isPrinter () const |
|
bool | isVirtualDevice () const |
|
bool | isWindow () const |
|
bool | isScreen () const |
|
void | setHWND (HWND hWnd) |
|
void | Flush () |
|
virtual bool | blendBitmap (const SalTwoRect &, const SalBitmap &rBitmap) override |
| Blend the bitmap with the current buffer. More...
|
|
virtual bool | blendAlphaBitmap (const SalTwoRect &, const SalBitmap &rSrcBitmap, const SalBitmap &rMaskBitmap, const SalBitmap &rAlphaBitmap) override |
| Draw the bitmap by blending using the mask and alpha channel. More...
|
|
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 |
| Returns true if the drawTransformedBitmap() call is fast, and so it should be used directly without trying to optimize some calls e.g. More...
|
|
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 void | GetResolution (sal_Int32 &rDPIX, sal_Int32 &rDPIY) 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) override |
|
virtual void | SetROPLineColor (SalROPColor nROPColor) override |
|
virtual void | SetROPFillColor (SalROPColor nROPColor) override |
|
virtual void | SetTextColor (Color nColor) override |
|
virtual void | SetFont (LogicalFontInstance *, int nFallbackLevel) override |
|
virtual void | GetFontMetric (FontMetricDataRef &, int nFallbackLevel) override |
|
virtual FontCharMapRef | GetFontCharMap () const override |
|
virtual bool | GetFontCapabilities (vcl::FontCapabilities &rGetFontCapabilities) const override |
|
virtual void | GetDevFontList (vcl::font::PhysicalFontCollection *) override |
|
virtual void | ClearDevFontCache () override |
|
virtual bool | AddTempDevFont (vcl::font::PhysicalFontCollection *, const OUString &rFileURL, const OUString &rFontName) override |
|
virtual std::unique_ptr< GenericSalLayout > | GetTextLayout (int nFallbackLevel) override |
|
virtual void | DrawTextLayout (const GenericSalLayout &) override |
|
virtual bool | supportsOperation (OutDevSupportType) const override |
|
virtual SystemGraphicsData | GetGraphicsData () const override |
|
| SalGraphics () |
|
| ~SalGraphics () COVERITY_NOEXCEPT_FALSE override |
|
virtual SalGraphicsImpl * | GetImpl () const =0 |
|
void | setAntiAlias (bool bNew) |
|
bool | getAntiAlias () const |
|
virtual void | GetResolution (sal_Int32 &rDPIX, sal_Int32 &rDPIY)=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 | SetTextColor (Color nColor)=0 |
|
virtual void | SetFont (LogicalFontInstance *, int nFallbackLevel)=0 |
|
void | ReleaseFonts () |
|
virtual void | GetFontMetric (FontMetricDataRef &, int nFallbackLevel)=0 |
|
virtual FontCharMapRef | GetFontCharMap () const =0 |
|
virtual bool | GetFontCapabilities (vcl::FontCapabilities &rFontCapabilities) const =0 |
|
virtual void | GetDevFontList (vcl::font::PhysicalFontCollection *)=0 |
|
virtual void | ClearDevFontCache ()=0 |
|
virtual bool | AddTempDevFont (vcl::font::PhysicalFontCollection *, const OUString &rFileURL, const OUString &rFontName)=0 |
|
virtual std::unique_ptr< GenericSalLayout > | GetTextLayout (int nFallbackLevel)=0 |
|
virtual void | DrawTextLayout (const GenericSalLayout &)=0 |
|
virtual bool | supportsOperation (OutDevSupportType) const =0 |
|
SalLayoutFlags | GetLayout () const |
|
void | SetLayout (SalLayoutFlags aLayout) |
|
void | mirror (tools::Long &nX, const OutputDevice &rOutDev) const |
|
tools::Long | mirror2 (tools::Long nX, const OutputDevice &rOutDev) const |
|
void | mirror (tools::Long &nX, tools::Long nWidth, const OutputDevice &rOutDev, bool bBack=false) const |
|
bool | mirror (sal_uInt32 nPoints, const Point *pPtAry, Point *pPtAry2, const OutputDevice &rOutDev) const |
|
void | mirror (tools::Rectangle &rRect, const OutputDevice &, bool bBack=false) const |
|
void | mirror (vcl::Region &rRgn, const OutputDevice &rOutDev) const |
|
void | mirror (ImplControlValue &, const OutputDevice &) const |
|
basegfx::B2DPolyPolygon | mirror (const basegfx::B2DPolyPolygon &i_rPoly, const OutputDevice &rOutDev) const |
|
const basegfx::B2DHomMatrix & | getMirror (const OutputDevice &rOutDev) const |
|
void | SetClipRegion (const vcl::Region &, const OutputDevice &rOutDev) |
|
void | DrawPixel (tools::Long nX, tools::Long nY, const OutputDevice &rOutDev) |
|
void | DrawPixel (tools::Long nX, tools::Long nY, Color nColor, const OutputDevice &rOutDev) |
|
void | DrawLine (tools::Long nX1, tools::Long nY1, tools::Long nX2, tools::Long nY2, const OutputDevice &rOutDev) |
|
void | DrawRect (tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, const OutputDevice &rOutDev) |
|
void | DrawPolyLine (sal_uInt32 nPoints, Point const *pPtAry, const OutputDevice &rOutDev) |
|
void | DrawPolygon (sal_uInt32 nPoints, const Point *pPtAry, const OutputDevice &rOutDev) |
|
void | DrawPolyPolygon (sal_uInt32 nPoly, const sal_uInt32 *pPoints, const Point **pPtAry, const OutputDevice &rOutDev) |
|
bool | DrawPolyPolygon (const basegfx::B2DHomMatrix &rObjectToDevice, const basegfx::B2DPolyPolygon &i_rPolyPolygon, double i_fTransparency, const OutputDevice &i_rOutDev) |
|
bool | DrawPolyLine (const basegfx::B2DHomMatrix &rObjectToDevice, const basegfx::B2DPolygon &i_rPolygon, double i_fTransparency, double i_fLineWidth, const std::vector< double > *i_pStroke, basegfx::B2DLineJoin i_eLineJoin, css::drawing::LineCap i_eLineCap, double i_fMiterMinimumAngle, bool bPixelSnapHairline, const OutputDevice &i_rOutDev) |
|
bool | DrawPolyLineBezier (sal_uInt32 nPoints, const Point *pPtAry, const PolyFlags *pFlgAry, const OutputDevice &rOutDev) |
|
bool | DrawPolygonBezier (sal_uInt32 nPoints, const Point *pPtAry, const PolyFlags *pFlgAry, const OutputDevice &rOutDev) |
|
bool | DrawPolyPolygonBezier (sal_uInt32 nPoly, const sal_uInt32 *pPoints, const Point *const *pPtAry, const PolyFlags *const *pFlgAry, const OutputDevice &rOutDev) |
|
bool | DrawGradient (const tools::PolyPolygon &rPolyPoly, const Gradient &rGradient, const OutputDevice &rOutDev) |
|
void | CopyArea (tools::Long nDestX, tools::Long nDestY, tools::Long nSrcX, tools::Long nSrcY, tools::Long nSrcWidth, tools::Long nSrcHeight, const OutputDevice &rOutDev) |
|
void | CopyBits (const SalTwoRect &rPosAry, const OutputDevice &rOutDev) |
|
void | CopyBits (const SalTwoRect &rPosAry, SalGraphics &rSrcGraphics, const OutputDevice &rOutDev, const OutputDevice &rSrcOutDev) |
|
void | DrawBitmap (const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap, const OutputDevice &rOutDev) |
|
void | DrawBitmap (const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap, const SalBitmap &rTransparentBitmap, const OutputDevice &rOutDev) |
|
void | DrawMask (const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap, Color nMaskColor, const OutputDevice &rOutDev) |
|
std::shared_ptr< SalBitmap > | GetBitmap (tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, const OutputDevice &rOutDev) |
|
Color | GetPixel (tools::Long nX, tools::Long nY, const OutputDevice &rOutDev) |
|
void | Invert (tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, SalInvert nFlags, const OutputDevice &rOutDev) |
|
void | Invert (sal_uInt32 nPoints, const Point *pPtAry, SalInvert nFlags, const OutputDevice &rOutDev) |
|
bool | DrawEPS (tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, void *pPtr, sal_uInt32 nSize, const OutputDevice &rOutDev) |
|
bool | IsNativeControlSupported (ControlType, ControlPart) |
|
bool | HitTestNativeScrollbar (ControlPart nPart, const tools::Rectangle &rControlRegion, const Point &aPos, bool &rIsInside, const OutputDevice &rOutDev) |
|
bool | DrawNativeControl (ControlType nType, ControlPart nPart, const tools::Rectangle &rControlRegion, ControlState nState, const ImplControlValue &aValue, const OUString &aCaption, const OutputDevice &rOutDev, const Color &rBackgroundColor=COL_AUTO) |
|
bool | GetNativeControlRegion (ControlType nType, ControlPart nPart, const tools::Rectangle &rControlRegion, ControlState nState, const ImplControlValue &aValue, tools::Rectangle &rNativeBoundingRegion, tools::Rectangle &rNativeContentRegion, const OutputDevice &rOutDev) |
|
bool | UpdateSettings (AllSettings &) |
|
bool | BlendBitmap (const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap, const OutputDevice &rOutDev) |
|
bool | BlendAlphaBitmap (const SalTwoRect &rPosAry, const SalBitmap &rSalSrcBitmap, const SalBitmap &rSalMaskBitmap, const SalBitmap &rSalAlphaBitmap, const OutputDevice &rOutDev) |
|
bool | DrawAlphaBitmap (const SalTwoRect &, const SalBitmap &rSourceBitmap, const SalBitmap &rAlphaBitmap, const OutputDevice &rOutDev) |
|
bool | DrawTransformedBitmap (const basegfx::B2DPoint &rNull, const basegfx::B2DPoint &rX, const basegfx::B2DPoint &rY, const SalBitmap &rSourceBitmap, const SalBitmap *pAlphaBitmap, double fAlpha, const OutputDevice &rOutDev) |
|
bool | HasFastDrawTransformedBitmap () const |
|
bool | DrawAlphaRect (tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, sal_uInt8 nTransparency, const OutputDevice &rOutDev) |
|
virtual OUString | getRenderBackendName () const |
|
virtual SystemGraphicsData | GetGraphicsData () const =0 |
|
virtual bool | ShouldDownscaleIconsAtSurface (double *pScaleOut) const |
|
|
virtual void | setClipRegion (const vcl::Region &) 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 bool | drawGradient (const tools::PolyPolygon &, const Gradient &) override |
|
virtual bool | implDrawGradient (basegfx::B2DPolyPolygon const &rPolyPolygon, SalGradient const &rGradient) 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 void | drawBitmap (const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap) override |
|
virtual void | drawBitmap (const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap, const SalBitmap &rTransparentBitmap) override |
|
virtual void | drawMask (const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap, Color nMaskColor) override |
|
virtual std::shared_ptr< SalBitmap > | getBitmap (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 | isNativeControlSupported (ControlType nType, ControlPart nPart) override |
| Query the platform layer for native control support. More...
|
|
virtual bool | hitTestNativeControl (ControlType nType, ControlPart nPart, const tools::Rectangle &rControlRegion, const Point &aPos, bool &rIsInside) override |
| Query if a position is inside the native widget part. More...
|
|
virtual bool | drawNativeControl (ControlType nType, ControlPart nPart, const tools::Rectangle &rControlRegion, ControlState nState, const ImplControlValue &aValue, const OUString &aCaption, const Color &rBackgroundColor) override |
| Draw the requested control. More...
|
|
virtual bool | getNativeControlRegion (ControlType nType, ControlPart nPart, const tools::Rectangle &rControlRegion, ControlState nState, const ImplControlValue &aValue, const OUString &aCaption, tools::Rectangle &rNativeBoundingRegion, tools::Rectangle &rNativeContentRegion) override |
| Get the native control regions for the control part. More...
|
|
virtual void | setClipRegion (const vcl::Region &)=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 bool | drawGradient (const tools::PolyPolygon &rPolyPoly, const Gradient &rGradient)=0 |
|
virtual bool | implDrawGradient (basegfx::B2DPolyPolygon const &, SalGradient const &) |
|
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< SalBitmap > | getBitmap (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 |
| Blend the bitmap with the current buffer. More...
|
|
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. More...
|
|
virtual bool | drawAlphaBitmap (const SalTwoRect &, const SalBitmap &rSourceBitmap, const SalBitmap &rAlphaBitmap)=0 |
| 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)=0 |
| draw transformed bitmap (maybe with alpha) where Null, X, Y define the coordinate system More...
|
|
virtual bool | hasFastDrawTransformedBitmap () const =0 |
| Returns true if the drawTransformedBitmap() call is fast, and so it should be used directly without trying to optimize some calls e.g. More...
|
|
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. More...
|
|
tools::Long | GetDeviceWidth (const OutputDevice &rOutDev) const |
|
virtual void | handleDamage (const tools::Rectangle &rDamagedRegion) |
| Handle damage done by drawing with a widget draw override. More...
|
|
bool | initWidgetDrawBackends (bool bForce=false) |
|
vcl::WidgetDrawInterface * | forWidget () |
|
virtual | ~WidgetDrawInterface () COVERITY_NOEXCEPT_FALSE |
|
virtual bool | isNativeControlSupported (ControlType eType, ControlPart ePart) |
| Query the platform layer for native control support. More...
|
|
virtual bool | hitTestNativeControl (ControlType eType, ControlPart ePart, const tools::Rectangle &rBoundingControlRegion, const Point &aPos, bool &rIsInside) |
| Query if a position is inside the native widget part. More...
|
|
virtual bool | drawNativeControl (ControlType eType, ControlPart ePart, const tools::Rectangle &rBoundingControlRegion, ControlState eState, const ImplControlValue &aValue, const OUString &aCaptions, const Color &rBackgroundColor) |
| Draw the requested control. More...
|
|
virtual bool | getNativeControlRegion (ControlType eType, ControlPart ePart, const tools::Rectangle &rBoundingControlRegion, ControlState eState, const ImplControlValue &aValue, const OUString &aCaption, tools::Rectangle &rNativeBoundingRegion, tools::Rectangle &rNativeContentRegion) |
| Get the native control regions for the control part. More...
|
|
virtual bool | updateSettings (AllSettings &rSettings) |
|
WinSalGraphics never owns the HDC it uses to draw, because the HDC can have various origins with different ways to correctly free it.
And WinSalGraphics stores all default values (mhDef*) of the HDC, which must be restored when the HDC changes (setHDC) or the SalGraphics is destructed. So think of the HDC in terms of Rust's Borrowing semantics.
Definition at line 140 of file win/salgdi.h.