LibreOffice Module vcl (master) 1
Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
VirtualDevice Class Reference

#include <virdev.hxx>

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

Public Types

enum class  RefDevMode {
  NONE = 0 ,
  Dpi600 = 1 ,
  MSO1 = 3 ,
  PDF1 = 4 ,
  Custom = 5
}
 
- Public Types inherited from OutputDevice
typedef std::vector< FontMappingUseItemFontMappingUseData
 

Public Member Functions

 VirtualDevice (DeviceFormat eFormat=DeviceFormat::WITHOUT_ALPHA)
 Create a virtual device of size 1x1. More...
 
 VirtualDevice (const OutputDevice &rCompDev, DeviceFormat eFormat=DeviceFormat::WITHOUT_ALPHA)
 Create a virtual device of size 1x1. More...
 
 VirtualDevice (const SystemGraphicsData &rData, const Size &rSize, DeviceFormat eFormat)
 Create a virtual device using an existing system dependent device or graphics context Any rendering will happen directly on the context and not on any intermediate bitmap. More...
 
virtual ~VirtualDevice () override
 
virtual void dispose () override
 
bool CanEnableNativeWidget () const override
 Determine if native widgets can be enabled. More...
 
virtual void EnableRTL (bool bEnable=true) override
 
bool SetOutputSizePixel (const Size &rNewSize, bool bErase=true, bool bAlphaMaskTransparent=false)
 
bool SetOutputSizePixelScaleOffsetAndLOKBuffer (const Size &rNewSize, const Fraction &rScale, const Point &rNewOffset, sal_uInt8 *pBuffer)
 
bool SetOutputSize (const Size &rNewSize)
 
void SetReferenceDevice (RefDevMode)
 
void Compat_ZeroExtleadBug ()
 
void SetReferenceDevice (sal_Int32 i_nDPIX, sal_Int32 i_nDPIY)
 
virtual sal_uInt16 GetBitCount () const override
 
bool IsVirtual () const override
 
bool IsScreenComp () const override
 
- Public Member Functions inherited from OutputDevice
virtual Size GetButtonBorderSize ()
 
virtual Color GetMonochromeButtonColor ()
 
virtual void DrawBorder (tools::Rectangle aBorderRect)
 
virtual css::awt::DeviceInfo GetDeviceInfo () const
 
virtual vcl::WindowGetOwnerWindow () const
 Get the vcl::Window that this OutputDevice belongs to, if any. More...
 
SAL_DLLPRIVATE sal_Int32 GetDPIX () const
 Get the output device's DPI x-axis value. More...
 
SAL_DLLPRIVATE sal_Int32 GetDPIY () const
 Get the output device's DPI y-axis value. More...
 
SAL_DLLPRIVATE void SetDPIX (sal_Int32 nDPIX)
 
SAL_DLLPRIVATE void SetDPIY (sal_Int32 nDPIY)
 
float GetDPIScaleFactor () const
 
sal_Int32 GetDPIScalePercentage () const
 
OutDevType GetOutDevType () const
 
bool SupportsOperation (OutDevSupportType) const
 Query an OutputDevice to see whether it supports a specific operation. More...
 
void SetExtOutDevData (vcl::ExtOutDevData *pExtOutDevData)
 
vcl::ExtOutDevDataGetExtOutDevData () const
 
void DrawPixel (const Point &rPt)
 
void DrawPixel (const Point &rPt, const Color &rColor)
 
Color GetPixel (const Point &rPt) const
 
void DrawRect (const tools::Rectangle &rRect)
 
void DrawRect (const tools::Rectangle &rRect, sal_uLong nHorzRount, sal_uLong nVertRound)
 
void DrawCheckered (const Point &rPos, const Size &rSize, sal_uInt32 nLen=8, Color aStart=COL_WHITE, Color aEnd=COL_BLACK)
 Fill the given rectangle with checkered rectangles of size nLen x nLen using the colors aStart and aEnd. More...
 
void DrawGrid (const tools::Rectangle &rRect, const Size &rDist, DrawGridFlags nFlags)
 
void Invert (const tools::Rectangle &rRect, InvertFlags nFlags=InvertFlags::NONE)
 
void Invert (const tools::Polygon &rPoly, InvertFlags nFlags=InvertFlags::NONE)
 
void DrawEllipse (const tools::Rectangle &rRect)
 
void DrawArc (const tools::Rectangle &rRect, const Point &rStartPt, const Point &rEndPt)
 
void DrawPie (const tools::Rectangle &rRect, const Point &rStartPt, const Point &rEndPt)
 
void DrawChord (const tools::Rectangle &rRect, const Point &rStartPt, const Point &rEndPt)
 
bool IsNativeControlSupported (ControlType nType, ControlPart nPart) const
 Query the platform layer for control support. More...
 
bool HitTestNativeScrollbar (ControlPart nPart, const tools::Rectangle &rControlRegion, const Point &aPos, bool &rIsInside) const
 Query the native control to determine if it was acted upon. More...
 
bool DrawNativeControl (ControlType nType, ControlPart nPart, const tools::Rectangle &rControlRegion, ControlState nState, const ImplControlValue &aValue, const OUString &aCaption, const Color &rBackgroundColor=COL_AUTO)
 Request rendering of a particular control and/or part. More...
 
bool GetNativeControlRegion (ControlType nType, ControlPart nPart, const tools::Rectangle &rControlRegion, ControlState nState, const ImplControlValue &aValue, tools::Rectangle &rNativeBoundingRegion, tools::Rectangle &rNativeContentRegion) const
 Query the native control's actual drawing region (including adornment) More...
 
bool DrawEPS (const Point &rPt, const Size &rSz, const GfxLink &rGfxLink, GDIMetaFile *pSubst=nullptr)
 
FontMetric GetFontMetricFromCollection (int nDevFontIndex) const
 
int GetFontFaceCollectionCount () const
 
bool IsFontAvailable (std::u16string_view rFontName) const
 
bool AddTempDevFont (const OUString &rFileURL, const OUString &rFontName)
 
void RefreshFontData (const bool bNewFontLists)
 
FontMetric GetFontMetric () const
 
FontMetric GetFontMetric (const vcl::Font &rFont) const
 
bool GetFontCharMap (FontCharMapRef &rxFontCharMap) const
 
bool GetFontCapabilities (vcl::FontCapabilities &rFontCapabilities) const
 
bool GetFontFeatures (std::vector< vcl::font::Feature > &rFontFeatures) const
 
bool GetGlyphBoundRects (const Point &rOrigin, const OUString &rStr, int nIndex, int nLen, std::vector< tools::Rectangle > &rVector) const
 
sal_Int32 HasGlyphs (const vcl::Font &rFont, std::u16string_view rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1) const
 
tools::Long GetMinKashida () const
 
sal_Int32 ValidateKashidas (const OUString &rTxt, sal_Int32 nIdx, sal_Int32 nLen, sal_Int32 nKashCount, const sal_Int32 *pKashidaPos, sal_Int32 *pKashidaPosDropped) const
 
SAL_DLLPRIVATE void ImplInitFontList () const
 
SAL_DLLPRIVATE void ImplUpdateFontData ()
 
LogicalFontInstance const * GetFontInstance () const
 
SAL_DLLPRIVATE bool ImplIsAntiparallel () const
 
SAL_DLLPRIVATE void ReMirror (Point &rPoint) const
 
SAL_DLLPRIVATE void ReMirror (tools::Rectangle &rRect) const
 
SAL_DLLPRIVATE void ReMirror (vcl::Region &rRegion) const
 
SAL_DLLPRIVATE bool ImplIsRecordLayout () const
 
virtual bool HasMirroredGraphics () const
 
std::unique_ptr< SalLayoutImplLayout (const OUString &, sal_Int32 nIndex, sal_Int32 nLen, const Point &rLogicPos=Point(0, 0), tools::Long nLogicWidth=0, KernArraySpan aKernArray=KernArraySpan(), o3tl::span< const sal_Bool > pKashidaArray={}, SalLayoutFlags flags=SalLayoutFlags::NONE, vcl::text::TextLayoutCache const *=nullptr, const SalLayoutGlyphs *pGlyphs=nullptr) const
 
SAL_DLLPRIVATE vcl::text::ImplLayoutArgs ImplPrepareLayoutArgs (OUString &, const sal_Int32 nIndex, const sal_Int32 nLen, double nPixelWidth, SalLayoutFlags flags=SalLayoutFlags::NONE, vcl::text::TextLayoutCache const *=nullptr) const
 
SAL_DLLPRIVATE std::unique_ptr< SalLayoutImplGlyphFallbackLayout (std::unique_ptr< SalLayout >, vcl::text::ImplLayoutArgs &, const SalLayoutGlyphs *) const
 
SAL_DLLPRIVATE std::unique_ptr< SalLayoutgetFallbackLayout (LogicalFontInstance *pLogicalFont, int nFallbackLevel, vcl::text::ImplLayoutArgs &rLayoutArgs, const SalLayoutGlyphs *) const
 
bool IsRTLEnabled () const
 
bool GetTextIsRTL (const OUString &, sal_Int32 nIndex, sal_Int32 nLen) const
 
virtual void Flush ()
 
virtual void DrawOutDev (const Point &rDestPt, const Size &rDestSize, const Point &rSrcPt, const Size &rSrcSize)
 
virtual void DrawOutDev (const Point &rDestPt, const Size &rDestSize, const Point &rSrcPt, const Size &rSrcSize, const OutputDevice &rOutDev)
 
virtual void CopyArea (const Point &rDestPt, const Point &rSrcPt, const Size &rSrcSize, bool bWindowInvalidate=false)
 
void Push (vcl::PushFlags nFlags=vcl::PushFlags::ALL)
 
void Pop ()
 
void ClearStack ()
 
void EnableOutput (bool bEnable=true)
 
bool IsOutputEnabled () const
 
bool IsDeviceOutputNecessary () const
 
void SetAntialiasing (AntialiasingFlags nMode)
 
AntialiasingFlags GetAntialiasing () const
 
void SetDrawMode (DrawModeFlags nDrawMode)
 
DrawModeFlags GetDrawMode () const
 
void SetLayoutMode (vcl::text::ComplexTextLayoutFlags nTextLayoutMode)
 
vcl::text::ComplexTextLayoutFlags GetLayoutMode () const
 
void SetDigitLanguage (LanguageType)
 
LanguageType GetDigitLanguage () const
 
void SetRasterOp (RasterOp eRasterOp)
 
RasterOp GetRasterOp () const
 
void SetOutDevViewType (OutDevViewType eOutDevViewType)
 If this OutputDevice is used for displaying a Print Preview the OutDevViewType should be set to 'OutDevViewType::PrintPreview'. More...
 
OutDevViewType GetOutDevViewType () const
 
void SetLineColor ()
 
void SetLineColor (const Color &rColor)
 
const ColorGetLineColor () const
 
bool IsLineColor () const
 
void SetFillColor ()
 
void SetFillColor (const Color &rColor)
 
const ColorGetFillColor () const
 
bool IsFillColor () const
 
void SetBackground ()
 
void SetBackground (const Wallpaper &rBackground)
 
virtual void SaveBackground (VirtualDevice &rSaveDevice, const Point &rPos, const Size &rSize, const Size &rBackgroundSize) const
 
const WallpaperGetBackground () const
 
virtual Color GetBackgroundColor () const
 
virtual Color GetReadableFontColor (const Color &rFontColor, const Color &rBgColor) const
 
bool IsBackground () const
 
void SetFont (const vcl::Font &rNewFont)
 
const vcl::FontGetFont () const
 
vcl::Region GetClipRegion () const
 
void SetClipRegion ()
 
void SetClipRegion (const vcl::Region &rRegion)
 
bool SelectClipRegion (const vcl::Region &, SalGraphics *pGraphics=nullptr)
 
bool IsClipRegion () const
 
void MoveClipRegion (tools::Long nHorzMove, tools::Long nVertMove)
 
void IntersectClipRegion (const tools::Rectangle &rRect)
 
void IntersectClipRegion (const vcl::Region &rRegion)
 
virtual vcl::Region GetActiveClipRegion () const
 
virtual vcl::Region GetOutputBoundsClipRegion () const
 
void DrawLine (const Point &rStartPt, const Point &rEndPt)
 
void DrawLine (const Point &rStartPt, const Point &rEndPt, const LineInfo &rLineInfo)
 
void DrawPolyLine (const tools::Polygon &rPoly)
 Render the given polygon as a line stroke. More...
 
void DrawPolyLine (const basegfx::B2DPolygon &, double fLineWidth=0.0, basegfx::B2DLineJoin eLineJoin=basegfx::B2DLineJoin::Round, css::drawing::LineCap eLineCap=css::drawing::LineCap_BUTT, double fMiterMinimumAngle=basegfx::deg2rad(15.0))
 
void DrawPolyLine (const tools::Polygon &rPoly, const LineInfo &rLineInfo)
 Render the given polygon as a line stroke. More...
 
bool DrawPolyLineDirect (const basegfx::B2DHomMatrix &rObjectTransform, const basegfx::B2DPolygon &rB2DPolygon, double fLineWidth=0.0, double fTransparency=0.0, const std::vector< double > *=nullptr, basegfx::B2DLineJoin eLineJoin=basegfx::B2DLineJoin::NONE, css::drawing::LineCap eLineCap=css::drawing::LineCap_BUTT, double fMiterMinimumAngle=basegfx::deg2rad(15.0))
 
void DrawPolygon (const tools::Polygon &rPoly)
 Render the given polygon. More...
 
void DrawPolygon (const basegfx::B2DPolygon &)
 
void DrawPolyPolygon (const tools::PolyPolygon &rPolyPoly)
 Render the given poly-polygon. More...
 
void DrawPolyPolygon (const basegfx::B2DPolyPolygon &)
 
void DrawGradient (const tools::Rectangle &rRect, const Gradient &rGradient)
 
void DrawGradient (const tools::PolyPolygon &rPolyPoly, const Gradient &rGradient)
 
void DrawHatch (const tools::PolyPolygon &rPolyPoly, const Hatch &rHatch)
 
void AddHatchActions (const tools::PolyPolygon &rPolyPoly, const Hatch &rHatch, GDIMetaFile &rMtf)
 
void DrawHatch (const tools::PolyPolygon &rPolyPoly, const Hatch &rHatch, bool bMtf)
 
void DrawWallpaper (const tools::Rectangle &rRect, const Wallpaper &rWallpaper)
 
void Erase ()
 
void Erase (const tools::Rectangle &rRect)
 
void DrawText (const Point &rStartPt, const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, std::vector< tools::Rectangle > *pVector=nullptr, OUString *pDisplayText=nullptr, const SalLayoutGlyphs *pLayoutCache=nullptr)
 
void DrawText (const tools::Rectangle &rRect, const OUString &rStr, DrawTextFlags nStyle=DrawTextFlags::NONE, std::vector< tools::Rectangle > *pVector=nullptr, OUString *pDisplayText=nullptr, vcl::ITextLayout *_pTextLayout=nullptr)
 
void ImplDrawText (SalLayout &)
 
void ImplDrawTextBackground (const SalLayout &)
 
void DrawCtrlText (const Point &rPos, const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, DrawTextFlags nStyle=DrawTextFlags::Mnemonic, std::vector< tools::Rectangle > *pVector=nullptr, OUString *pDisplayText=nullptr, const SalLayoutGlyphs *pGlyphs=nullptr)
 
void DrawTextLine (const Point &rPos, tools::Long nWidth, FontStrikeout eStrikeout, FontLineStyle eUnderline, FontLineStyle eOverline, bool bUnderlineAbove=false)
 
void ImplDrawTextLine (tools::Long nBaseX, tools::Long nX, tools::Long nY, double nWidth, FontStrikeout eStrikeout, FontLineStyle eUnderline, FontLineStyle eOverline, bool bUnderlineAbove)
 
void ImplDrawTextLines (SalLayout &, FontStrikeout eStrikeout, FontLineStyle eUnderline, FontLineStyle eOverline, bool bWordLine, bool bUnderlineAbove)
 
void DrawWaveLine (const Point &rStartPos, const Point &rEndPos, tools::Long nLineWidth=1, tools::Long nWaveHeight=3)
 
bool ImplDrawRotateText (SalLayout &)
 
tools::Rectangle GetTextRect (const tools::Rectangle &rRect, const OUString &rStr, DrawTextFlags nStyle=DrawTextFlags::WordBreak, TextRectInfo *pInfo=nullptr, const vcl::ITextLayout *_pTextLayout=nullptr) const
 
bool GetTextBoundRect (tools::Rectangle &rRect, const OUString &rStr, sal_Int32 nBase=0, sal_Int32 nIndex=0, sal_Int32 nLen=-1, sal_uLong nLayoutWidth=0, KernArraySpan aDXArray=KernArraySpan(), o3tl::span< const sal_Bool > pKashidaArray={}, const SalLayoutGlyphs *pGlyphs=nullptr) const
 Return the exact bounding rectangle of rStr. More...
 
tools::Rectangle ImplGetTextBoundRect (const SalLayout &) const
 
bool GetTextOutline (tools::PolyPolygon &, const OUString &rStr) const
 
bool GetTextOutlines (PolyPolyVector &, const OUString &rStr, sal_Int32 nBase=0, sal_Int32 nIndex=0, sal_Int32 nLen=-1, sal_uLong nLayoutWidth=0, KernArraySpan aDXArray=KernArraySpan(), o3tl::span< const sal_Bool > pKashidaArray={}) const
 
bool GetTextOutlines (basegfx::B2DPolyPolygonVector &rVector, const OUString &rStr, sal_Int32 nBase, sal_Int32 nIndex=0, sal_Int32 nLen=-1, sal_uLong nLayoutWidth=0, KernArraySpan aDXArray=KernArraySpan(), o3tl::span< const sal_Bool > pKashidaArray={}) const
 
OUString GetEllipsisString (const OUString &rStr, tools::Long nMaxWidth, DrawTextFlags nStyle=DrawTextFlags::EndEllipsis) const
 
tools::Long GetCtrlTextWidth (const OUString &rStr, const SalLayoutGlyphs *pLayoutCache=nullptr) const
 
void AddTextRectActions (const tools::Rectangle &rRect, const OUString &rOrigStr, DrawTextFlags nStyle, GDIMetaFile &rMtf)
 Generate MetaTextActions for the text rect. More...
 
void SetTextColor (const Color &rColor)
 
virtual void SetSystemTextColor (SystemTextColorFlags nFlags, bool bEnabled)
 
const ColorGetTextColor () const
 
void SetTextFillColor ()
 
void SetTextFillColor (const Color &rColor)
 
Color GetTextFillColor () const
 
bool IsTextFillColor () const
 
void SetTextLineColor ()
 
void SetTextLineColor (const Color &rColor)
 
const ColorGetTextLineColor () const
 
bool IsTextLineColor () const
 
void SetOverlineColor ()
 
void SetOverlineColor (const Color &rColor)
 
const ColorGetOverlineColor () const
 
bool IsOverlineColor () const
 
void SetTextAlign (TextAlign eAlign)
 
TextAlign GetTextAlign () const
 
tools::Long GetTextWidth (const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, vcl::text::TextLayoutCache const *=nullptr, SalLayoutGlyphs const *const pLayoutCache=nullptr) const
 Width of the text. More...
 
tools::Long GetTextHeight () const
 Height where any character of the current font fits; in logic coordinates. More...
 
float approximate_digit_width () const
 
void DrawTextArray (const Point &rStartPt, const OUString &rStr, KernArraySpan aKernArray, o3tl::span< const sal_Bool > pKashidaAry, sal_Int32 nIndex, sal_Int32 nLen, SalLayoutFlags flags=SalLayoutFlags::NONE, const SalLayoutGlyphs *pLayoutCache=nullptr)
 
tools::Long GetTextArray (const OUString &rStr, KernArray *pDXAry, sal_Int32 nIndex=0, sal_Int32 nLen=-1, bool bCaret=false, vcl::text::TextLayoutCache const *=nullptr, SalLayoutGlyphs const *const pLayoutCache=nullptr) const
 
void GetCaretPositions (const OUString &, KernArray &rCaretXArray, sal_Int32 nIndex, sal_Int32 nLen, const SalLayoutGlyphs *pGlyphs=nullptr) const
 
void DrawStretchText (const Point &rStartPt, sal_Int32 nWidth, const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1)
 
sal_Int32 GetTextBreak (const OUString &rStr, tools::Long nTextWidth, sal_Int32 nIndex, sal_Int32 nLen=-1, tools::Long nCharExtra=0, vcl::text::TextLayoutCache const *=nullptr, const SalLayoutGlyphs *pGlyphs=nullptr) const
 
sal_Int32 GetTextBreak (const OUString &rStr, tools::Long nTextWidth, sal_Unicode nExtraChar, sal_Int32 &rExtraCharPos, sal_Int32 nIndex, sal_Int32 nLen, tools::Long nCharExtra, vcl::text::TextLayoutCache const *=nullptr, const SalLayoutGlyphs *pGlyphs=nullptr) const
 
SAL_DLLPRIVATE SalLayoutFlags GetBiDiLayoutFlags (std::u16string_view rStr, const sal_Int32 nMinIndex, const sal_Int32 nEndIndex) const
 
void DrawBitmap (const Point &rDestPt, const Bitmap &rBitmap)
 
void DrawBitmap (const Point &rDestPt, const Size &rDestSize, const Bitmap &rBitmap)
 
void DrawBitmap (const Point &rDestPt, const Size &rDestSize, const Point &rSrcPtPixel, const Size &rSrcSizePixel, const Bitmap &rBitmap)
 
void DrawBitmap (const Point &rDestPt, const Size &rDestSize, const Point &rSrcPtPixel, const Size &rSrcSizePixel, const Bitmap &rBitmap, MetaActionType nAction)
 
void DrawBitmapEx (const Point &rDestPt, const BitmapEx &rBitmapEx)
 
void DrawBitmapEx (const Point &rDestPt, const Size &rDestSize, const BitmapEx &rBitmapEx)
 
void DrawBitmapEx (const Point &rDestPt, const Size &rDestSize, const Point &rSrcPtPixel, const Size &rSrcSizePixel, const BitmapEx &rBitmapEx)
 
void DrawBitmapEx (const Point &rDestPt, const Size &rDestSize, const Point &rSrcPtPixel, const Size &rSrcSizePixel, const BitmapEx &rBitmapEx, MetaActionType nAction)
 
void DrawImage (const Point &rPos, const Image &rImage, DrawImageFlags nStyle=DrawImageFlags::NONE)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. virtual void DrawImage( const Point& rPos, const Size& rSize, const Image& rImage, sal_uInt16 nStyle = 0) More...
 
void DrawImage (const Point &rPos, const Size &rSize, const Image &rImage, DrawImageFlags nStyle=DrawImageFlags::NONE)
 
virtual Bitmap GetBitmap (const Point &rSrcPt, const Size &rSize) const
 
BitmapEx GetBitmapEx (const Point &rSrcPt, const Size &rSize) const
 Query extended bitmap (with alpha channel, if available). More...
 
void DrawTransformedBitmapEx (const basegfx::B2DHomMatrix &rTransformation, const BitmapEx &rBitmapEx, double fAlpha=1.0)
 Draw BitmapEx transformed. More...
 
bool HasFastDrawTransformedBitmap () const
 Return true if DrawTransformedBitmapEx() is fast. More...
 
bool RemoveTransparenciesFromMetaFile (const GDIMetaFile &rInMtf, GDIMetaFile &rOutMtf, tools::Long nMaxBmpDPIX, tools::Long nMaxBmpDPIY, bool bReduceTransparency, bool bTransparencyAutoMode, bool bDownsampleBitmaps, const Color &rBackground=COL_TRANSPARENT)
 helper method removing transparencies from a metafile (e.g. More...
 
void DrawTransparent (const tools::PolyPolygon &rPolyPoly, sal_uInt16 nTransparencePercent)
 
void DrawTransparent (const basegfx::B2DHomMatrix &rObjectTransform, const basegfx::B2DPolyPolygon &rB2DPolyPoly, double fTransparency)
 
void DrawTransparent (const GDIMetaFile &rMtf, const Point &rPos, const Size &rSize, const Gradient &rTransparenceGradient)
 
void EnableMapMode (bool bEnable=true)
 
bool IsMapModeEnabled () const
 
void SetMapMode ()
 
void SetMapMode (const MapMode &rNewMapMode)
 
void SetRelativeMapMode (const MapMode &rNewMapMode)
 
virtual void SetMetafileMapMode (const MapMode &rNewMapMode, bool bIsRecord)
 
const MapModeGetMapMode () const
 
basegfx::B2DHomMatrix GetViewTransformation () const
 
basegfx::B2DHomMatrix GetInverseViewTransformation () const
 
basegfx::B2DHomMatrix GetViewTransformation (const MapMode &rMapMode) const
 
basegfx::B2DHomMatrix GetInverseViewTransformation (const MapMode &rMapMode) const
 
void SetPixelOffset (const Size &rOffset)
 Set an offset in pixel. More...
 
SAL_WARN_UNUSED_RESULT Size GetPixelOffset () const
 Get the offset in pixel. More...
 
SAL_WARN_UNUSED_RESULT Point LogicToPixel (const Point &rLogicPt) const
 
SAL_WARN_UNUSED_RESULT Size LogicToPixel (const Size &rLogicSize) const
 
SAL_WARN_UNUSED_RESULT tools::Rectangle LogicToPixel (const tools::Rectangle &rLogicRect) const
 
SAL_WARN_UNUSED_RESULT tools::Polygon LogicToPixel (const tools::Polygon &rLogicPoly) const
 
SAL_WARN_UNUSED_RESULT tools::PolyPolygon LogicToPixel (const tools::PolyPolygon &rLogicPolyPoly) const
 
SAL_WARN_UNUSED_RESULT basegfx::B2DPolyPolygon LogicToPixel (const basegfx::B2DPolyPolygon &rLogicPolyPoly) const
 
SAL_WARN_UNUSED_RESULT vcl::Region LogicToPixel (const vcl::Region &rLogicRegion) const
 
SAL_WARN_UNUSED_RESULT Point LogicToPixel (const Point &rLogicPt, const MapMode &rMapMode) const
 
SAL_WARN_UNUSED_RESULT Size LogicToPixel (const Size &rLogicSize, const MapMode &rMapMode) const
 
SAL_WARN_UNUSED_RESULT tools::Rectangle LogicToPixel (const tools::Rectangle &rLogicRect, const MapMode &rMapMode) const
 
SAL_WARN_UNUSED_RESULT tools::Polygon LogicToPixel (const tools::Polygon &rLogicPoly, const MapMode &rMapMode) const
 
SAL_WARN_UNUSED_RESULT basegfx::B2DPolyPolygon LogicToPixel (const basegfx::B2DPolyPolygon &rLogicPolyPoly, const MapMode &rMapMode) const
 
SAL_WARN_UNUSED_RESULT Point PixelToLogic (const Point &rDevicePt) const
 
SAL_WARN_UNUSED_RESULT Size PixelToLogic (const Size &rDeviceSize) const
 
SAL_WARN_UNUSED_RESULT tools::Rectangle PixelToLogic (const tools::Rectangle &rDeviceRect) const
 
SAL_WARN_UNUSED_RESULT tools::Polygon PixelToLogic (const tools::Polygon &rDevicePoly) const
 
SAL_WARN_UNUSED_RESULT tools::PolyPolygon PixelToLogic (const tools::PolyPolygon &rDevicePolyPoly) const
 
SAL_WARN_UNUSED_RESULT basegfx::B2DPolyPolygon PixelToLogic (const basegfx::B2DPolyPolygon &rDevicePolyPoly) const
 
SAL_WARN_UNUSED_RESULT vcl::Region PixelToLogic (const vcl::Region &rDeviceRegion) const
 
SAL_WARN_UNUSED_RESULT Point PixelToLogic (const Point &rDevicePt, const MapMode &rMapMode) const
 
SAL_WARN_UNUSED_RESULT Size PixelToLogic (const Size &rDeviceSize, const MapMode &rMapMode) const
 
SAL_WARN_UNUSED_RESULT tools::Rectangle PixelToLogic (const tools::Rectangle &rDeviceRect, const MapMode &rMapMode) const
 
SAL_WARN_UNUSED_RESULT tools::Polygon PixelToLogic (const tools::Polygon &rDevicePoly, const MapMode &rMapMode) const
 
SAL_WARN_UNUSED_RESULT basegfx::B2DPolygon PixelToLogic (const basegfx::B2DPolygon &rDevicePoly, const MapMode &rMapMode) const
 
SAL_WARN_UNUSED_RESULT basegfx::B2DPolyPolygon PixelToLogic (const basegfx::B2DPolyPolygon &rDevicePolyPoly, const MapMode &rMapMode) const
 
SAL_WARN_UNUSED_RESULT Point LogicToLogic (const Point &rPtSource, const MapMode *pMapModeSource, const MapMode *pMapModeDest) const
 
SAL_WARN_UNUSED_RESULT Size LogicToLogic (const Size &rSzSource, const MapMode *pMapModeSource, const MapMode *pMapModeDest) const
 
SAL_WARN_UNUSED_RESULT tools::Rectangle LogicToLogic (const tools::Rectangle &rRectSource, const MapMode *pMapModeSource, const MapMode *pMapModeDest) const
 
SAL_DLLPRIVATE tools::Rectangle ImplLogicToDevicePixel (const tools::Rectangle &rLogicRect) const
 Convert a logical rectangle to a rectangle in physical device pixel units. More...
 
SAL_DLLPRIVATE Point ImplLogicToDevicePixel (const Point &rLogicPt) const
 Convert a logical point to a physical point on the device. More...
 
SAL_DLLPRIVATE basegfx::B2DPoint ImplLogicToDeviceSubPixel (const Point &rLogicPt) const
 
SAL_DLLPRIVATE tools::Long ImplLogicWidthToDevicePixel (tools::Long nWidth) const
 Convert a logical width to a width in units of device pixels. More...
 
SAL_DLLPRIVATE double ImplLogicWidthToDeviceSubPixel (tools::Long nWidth) const
 
SAL_DLLPRIVATE tools::Long ImplLogicHeightToDevicePixel (tools::Long nHeight) const
 Convert a logical height to a height in units of device pixels. More...
 
SAL_DLLPRIVATE double ImplLogicHeightToDeviceSubPixel (tools::Long nHeight) const
 
SAL_DLLPRIVATE Point SubPixelToLogic (const basegfx::B2DPoint &rDevicePt) const
 
SAL_DLLPRIVATE tools::Long ImplDevicePixelToLogicWidth (tools::Long nWidth) const
 Convert device pixels to a width in logical units. More...
 
SAL_DLLPRIVATE tools::Long ImplDevicePixelToLogicHeight (tools::Long nHeight) const
 Convert device pixels to a height in logical units. More...
 
SAL_DLLPRIVATE Size ImplLogicToDevicePixel (const Size &rLogicSize) const
 Convert a logical size to the size on the physical device. More...
 
SAL_DLLPRIVATE tools::Rectangle ImplDevicePixelToLogic (const tools::Rectangle &rPixelRect) const
 Convert a rectangle in physical pixel units to a rectangle in physical pixel units and coords. More...
 
SAL_DLLPRIVATE tools::Polygon ImplLogicToDevicePixel (const tools::Polygon &rLogicPoly) const
 Convert a logical polygon to a polygon in physical device pixel units. More...
 
SAL_DLLPRIVATE::basegfx::B2DPolygon ImplLogicToDevicePixel (const ::basegfx::B2DPolygon &rLogicPoly) const
 Convert a logical B2DPolygon to a B2DPolygon in physical device pixel units. More...
 
SAL_DLLPRIVATE tools::PolyPolygon ImplLogicToDevicePixel (const tools::PolyPolygon &rLogicPolyPoly) const
 Convert a logical polypolygon to a polypolygon in physical device pixel units. More...
 
SAL_DLLPRIVATE LineInfo ImplLogicToDevicePixel (const LineInfo &rLineInfo) const
 Convert a line in logical units to a line in physical device pixel units. More...
 
SAL_DLLPRIVATE vcl::Region ImplPixelToDevicePixel (const vcl::Region &rRegion) const
 Convert a region in pixel units to a region in device pixel units and coords. More...
 
SAL_DLLPRIVATE void ImplInvalidateViewTransform ()
 Invalidate the view transformation. More...
 
SAL_DLLPRIVATE basegfx::B2DHomMatrix ImplGetDeviceTransformation () const
 Get device transformation. More...
 
SalGraphics const * GetGraphics () const
 Get the graphic context that the output device uses to draw on. More...
 
SalGraphicsGetGraphics ()
 
void SetConnectMetaFile (GDIMetaFile *pMtf)
 
GDIMetaFileGetConnectMetaFile () const
 
virtual void SetSettings (const AllSettings &rSettings)
 
const AllSettingsGetSettings () const
 
SystemGraphicsData GetSystemGfxData () const
 
OUString GetRenderBackendName () const
 
bool SupportsCairo () const
 
cairo::SurfaceSharedPtr CreateSurface (const cairo::CairoSurfaceSharedPtr &rSurface) const
 Create Surface from given cairo surface. More...
 
cairo::SurfaceSharedPtr CreateSurface (int x, int y, int width, int height) const
 Create surface with given dimensions. More...
 
cairo::SurfaceSharedPtr CreateBitmapSurface (const BitmapSystemData &rData, const Size &rSize) const
 Create Surface for given bitmap data. More...
 
css::uno::Any GetNativeSurfaceHandle (cairo::SurfaceSharedPtr &rSurface, const basegfx::B2ISize &rSize) const
 Return native handle for underlying surface. More...
 
css::uno::Any GetSystemGfxDataAny () const
 
void SetRefPoint ()
 
void SetRefPoint (const Point &rRefPoint)
 
const PointGetRefPoint () const
 
bool IsRefPoint () const
 
Size GetOutputSizePixel () const
 
tools::Long GetOutputWidthPixel () const
 
tools::Long GetOutputHeightPixel () const
 
tools::Long GetOutOffXPixel () const
 
tools::Long GetOutOffYPixel () const
 
void SetOutOffXPixel (tools::Long nOutOffX)
 
void SetOutOffYPixel (tools::Long nOutOffY)
 
Point GetOutputOffPixel () const
 
tools::Rectangle GetOutputRectPixel () const
 
Size GetOutputSize () const
 
css::uno::Reference< css::awt::XGraphics > CreateUnoGraphics ()
 
std::vector< VCLXGraphics * > * GetUnoGraphicsList () const
 
std::vector< VCLXGraphics * > * CreateUnoGraphicsList ()
 
virtual size_t GetSyncCount () const
 
css::uno::Reference< css::rendering::XCanvas > GetCanvas () const
 request XCanvas render interface More...
 
css::uno::Reference< css::rendering::XSpriteCanvas > GetSpriteCanvas () const
 request XSpriteCanvas render interface More...
 
void DrawMask (const Point &rDestPt, const Bitmap &rBitmap, const Color &rMaskColor)
 
void DrawMask (const Point &rDestPt, const Size &rDestSize, const Bitmap &rBitmap, const Color &rMaskColor)
 
void DrawMask (const Point &rDestPt, const Size &rDestSize, const Point &rSrcPtPixel, const Size &rSrcSizePixel, const Bitmap &rBitmap, const Color &rMaskColor)
 
void DrawMask (const Point &rDestPt, const Size &rDestSize, const Point &rSrcPtPixel, const Size &rSrcSizePixel, const Bitmap &rBitmap, const Color &rMaskColor, MetaActionType nAction)
 
- Public Member Functions inherited from VclReferenceBase
void acquire () const
 
void release () const
 
sal_Int32 getRefCount () const
 
void disposeOnce ()
 
bool isDisposed () const
 

Protected Member Functions

virtual bool AcquireGraphics () const override
 Acquire a graphics device that the output device uses to draw on. More...
 
virtual void ReleaseGraphics (bool bRelease=true) override
 Release the graphics device, and remove it from the graphics device list. More...
 
 VirtualDevice (const OutputDevice *pCompDev, DeviceFormat eFormat, OutDevType eOutDevType)
 Create a virtual device of size 1x1. More...
 
virtual bool UsePolyPolygonForComplexGradient () override
 
virtual tools::Long GetFontExtLeading () const override
 
- Protected Member Functions inherited from OutputDevice
css::awt::DeviceInfo GetCommonDeviceInfo (Size const &aDevSize) const
 
SAL_DLLPRIVATE tools::Long GetEmphasisAscent () const
 
SAL_DLLPRIVATE tools::Long GetEmphasisDescent () const
 
SAL_DLLPRIVATE bool InitFont () const
 
virtual void SetFontOrientation (LogicalFontInstance *const pFontInstance) const
 
virtual void ImplClearFontData (bool bNewFontLists)
 
virtual void ImplRefreshFontData (bool bNewFontLists)
 
void ReleaseFontCache ()
 
void ReleaseFontCollection ()
 
void SetFontCollectionFromSVData ()
 
void ResetNewFontCache ()
 
virtual bool ImplNewFont () const
 
virtual void CopyDeviceArea (SalTwoRect &aPosAry, bool bWindowInvalidate)
 
virtual tools::Rectangle GetBackgroundComponentBounds () const
 
virtual const OutputDeviceDrawOutDevDirectCheck (const OutputDevice &rSrcDev) const
 
virtual void DrawOutDevDirectProcess (const OutputDevice &rSrcDev, SalTwoRect &rPosAry, SalGraphics *pSrcGraphics)
 
SAL_DLLPRIVATE void drawOutDevDirect (const OutputDevice &rSrcDev, SalTwoRect &rPosAry)
 
SAL_DLLPRIVATE bool is_double_buffered_window () const
 
virtual css::uno::Reference< css::rendering::XCanvas > ImplGetCanvas (bool bSpriteCanvas) const
 
SAL_DLLPRIVATE void ImplDisposeCanvas ()
 
virtual void ImplReleaseFonts ()
 
virtual void InitClipRegion ()
 
virtual vcl::Region ClipToDeviceBounds (vcl::Region aRegion) const
 Perform actual rect clip against outdev dimensions, to generate empty clips whenever one of the values is completely off the device. More...
 
virtual void ClipToPaintRegion (tools::Rectangle &rDstRect)
 
virtual void DrawHatchLine_DrawLine (const Point &rStartPoint, const Point &rEndPoint)
 
virtual tools::Long GetGradientStepCount (tools::Long nMinRect)
 
void DrawGradientWallpaper (tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, const Wallpaper &rWallpaper)
 
SAL_DLLPRIVATE void ImplInitTextLineSize ()
 
SAL_DLLPRIVATE void ImplInitAboveTextLineSize ()
 
SAL_DLLPRIVATE float approximate_char_width () const
 
virtual bool shouldDrawWavePixelAsRect (tools::Long nLineWidth) const
 
virtual void SetWaveLineColors (Color const &rColor, tools::Long nLineWidth)
 
virtual Size GetWaveLineSize (tools::Long nLineWidth) const
 
virtual void DrawDeviceBitmapEx (const Point &rDestPt, const Size &rDestSize, const Point &rSrcPtPixel, const Size &rSrcSizePixel, BitmapEx &rBitmapEx)
 
virtual bool CanSubsampleBitmap () const
 
virtual bool DrawTransformBitmapExDirect (const basegfx::B2DHomMatrix &aFullTransform, const BitmapEx &rBitmapEx, double fAlpha=1.0)
 Transform and draw a bitmap directly. More...
 
virtual bool TransformAndReduceBitmapExToTargetRange (const basegfx::B2DHomMatrix &aFullTransform, basegfx::B2DRange &aVisibleRange, double &fMaximumArea)
 Transform and reduce the area that needs to be drawn of the bitmap and return the new visible range and the maximum area. More...
 
virtual void EmulateDrawTransparent (const tools::PolyPolygon &rPolyPoly, sal_uInt16 nTransparencePercent)
 
virtual void ClipAndDrawGradientMetafile (const Gradient &rGradient, const tools::PolyPolygon &rPolyPoly)
 
virtual void ImplInitMapModeObjects ()
 
 OutputDevice (OutDevType eOutDevType)
 
virtual ~OutputDevice () override
 
virtual void DrawDeviceMask (const Bitmap &rMask, const Color &rMaskColor, const Point &rDestPt, const Size &rDestSize, const Point &rSrcPtPixel, const Size &rSrcSizePixel)
 
- Protected Member Functions inherited from VclReferenceBase
 VclReferenceBase ()
 
virtual ~VclReferenceBase ()
 
virtual void dispose ()
 

Private Member Functions

SAL_DLLPRIVATE void ImplInitVirDev (const OutputDevice *pOutDev, tools::Long nDX, tools::Long nDY, const SystemGraphicsData *pData=nullptr)
 
SAL_DLLPRIVATE bool InnerImplSetOutputSizePixel (const Size &rNewSize, bool bErase, sal_uInt8 *pBuffer)
 
SAL_DLLPRIVATE bool ImplSetOutputSizePixel (const Size &rNewSize, bool bErase, sal_uInt8 *pBuffer, bool bAlphaMaskTransparent=false)
 
 VirtualDevice (const VirtualDevice &)=delete
 
VirtualDeviceoperator= (const VirtualDevice &)=delete
 
SAL_DLLPRIVATE void ImplFillOpaqueRectangle (const tools::Rectangle &rRect)
 Used for alpha VDev, to set areas to opaque. More...
 
SAL_DLLPRIVATE void ImplSetReferenceDevice (RefDevMode, sal_Int32 i_nDPIX, sal_Int32 i_nDPIY)
 

Private Attributes

std::unique_ptr< SalVirtualDevicempVirDev
 
VclPtr< VirtualDevicempPrev
 
VclPtr< VirtualDevicempNext
 
sal_uInt16 mnBitCount
 
bool mbScreenComp
 
const DeviceFormat meFormatAndAlpha
 
RefDevMode meRefDevMode
 
bool mbForceZeroExtleadBug
 

Friends

class Application
 
class ::OutputDevice
 
class Printer
 
cairo_surface_tget_underlying_cairo_surface (const VirtualDevice &)
 

Additional Inherited Members

- Static Public Member Functions inherited from OutputDevice
static void BeginFontSubstitution ()
 
static void EndFontSubstitution ()
 
static void AddFontSubstitute (const OUString &rFontName, const OUString &rReplaceFontName, AddFontSubstituteFlags nFlags)
 
static void RemoveFontsSubstitute ()
 
static vcl::Font GetDefaultFont (DefaultFontType nType, LanguageType eLang, GetDefaultFontFlags nFlags, const OutputDevice *pOutDev=nullptr)
 
static void ImplClearAllFontData (bool bNewFontLists)
 
static void ImplRefreshAllFontData (bool bNewFontLists)
 
static SAL_DLLPRIVATE void ImplUpdateAllFontData (bool bNewFontLists)
 
static void StartTrackingFontMappingUse ()
 
static FontMappingUseData FinishTrackingFontMappingUse ()
 
static void ImplDrawText (OutputDevice &rTargetDevice, const tools::Rectangle &rRect, const OUString &rOrigStr, DrawTextFlags nStyle, std::vector< tools::Rectangle > *pVector, OUString *pDisplayText, vcl::ITextLayout &_rLayout)
 
static std::shared_ptr< const vcl::text::TextLayoutCacheCreateTextLayoutCache (OUString const &)
 
static SAL_WARN_UNUSED_RESULT Point LogicToLogic (const Point &rPtSource, const MapMode &rMapModeSource, const MapMode &rMapModeDest)
 
static SAL_WARN_UNUSED_RESULT Size LogicToLogic (const Size &rSzSource, const MapMode &rMapModeSource, const MapMode &rMapModeDest)
 
static SAL_WARN_UNUSED_RESULT tools::Rectangle LogicToLogic (const tools::Rectangle &rRectSource, const MapMode &rMapModeSource, const MapMode &rMapModeDest)
 
static SAL_WARN_UNUSED_RESULT tools::Long LogicToLogic (tools::Long nLongSource, MapUnit eUnitSource, MapUnit eUnitDest)
 
static SAL_WARN_UNUSED_RESULT basegfx::B2DPolygon LogicToLogic (const basegfx::B2DPolygon &rPoly, const MapMode &rMapModeSource, const MapMode &rMapModeDest)
 
static SAL_WARN_UNUSED_RESULT basegfx::B2DHomMatrix LogicToLogic (const MapMode &rMapModeSource, const MapMode &rMapModeDest)
 
- Static Protected Member Functions inherited from OutputDevice
static SAL_DLLPRIVATE tools::Long ImplGetTextLines (const tools::Rectangle &rRect, tools::Long nTextHeight, ImplMultiTextLineInfo &rLineInfo, tools::Long nWidth, const OUString &rStr, DrawTextFlags nStyle, const vcl::ITextLayout &_rLayout)
 
static SAL_DLLPRIVATE sal_Int32 ImplBreakLinesWithIterator (const tools::Long nWidth, const OUString &rStr, const vcl::ITextLayout &_rLayout, const css::uno::Reference< css::linguistic2::XHyphenator > &xHyph, const css::uno::Reference< css::i18n::XBreakIterator > &xBI, const bool bHyphenate, const sal_Int32 nPos, sal_Int32 nBreakPos)
 
static SAL_DLLPRIVATE sal_Int32 ImplBreakLinesSimple (const tools::Long nWidth, const OUString &rStr, const vcl::ITextLayout &_rLayout, const sal_Int32 nPos, sal_Int32 nBreakPos, tools::Long &nLineWidth)
 
- Protected Attributes inherited from OutputDevice
std::shared_ptr< vcl::font::PhysicalFontCollectionmxFontCollection
 
std::shared_ptr< ImplFontCachemxFontCache
 

Detailed Description

Definition at line 32 of file virdev.hxx.

Member Enumeration Documentation

◆ RefDevMode

enum class VirtualDevice::RefDevMode
strong
Enumerator
NONE 
Dpi600 
MSO1 
PDF1 
Custom 

Definition at line 40 of file virdev.hxx.

Constructor & Destructor Documentation

◆ VirtualDevice() [1/5]

VirtualDevice::VirtualDevice ( const VirtualDevice )
privatedelete

◆ VirtualDevice() [2/5]

VirtualDevice::VirtualDevice ( const OutputDevice pCompDev,
DeviceFormat  eFormat,
OutDevType  eOutDevType 
)
explicitprotected

Create a virtual device of size 1x1.

Parameters
pCompDevThe generated vdev will be compatible to this device. If it's the nullptr, it uses Application::GetDefaultDevice().
eFormatDevice format of the generated virtual device.
eOutDevTypeThis real virtual output device type.

Definition at line 203 of file virdev.cxx.

References Application::GetDefaultDevice(), ImplInitVirDev(), and SAL_INFO.

◆ VirtualDevice() [3/5]

VirtualDevice::VirtualDevice ( DeviceFormat  eFormat = DeviceFormat::WITHOUT_ALPHA)
inlineexplicit

Create a virtual device of size 1x1.

Parameters
eFormatDevice format of the generated virtual device.

Definition at line 98 of file virdev.hxx.

◆ VirtualDevice() [4/5]

VirtualDevice::VirtualDevice ( const OutputDevice rCompDev,
DeviceFormat  eFormat = DeviceFormat::WITHOUT_ALPHA 
)
inlineexplicit

Create a virtual device of size 1x1.

Parameters
rCompDevThe generated vdev will be compatible to this device.
eFormatDevice format of the generated virtual device.

Definition at line 109 of file virdev.hxx.

◆ VirtualDevice() [5/5]

VirtualDevice::VirtualDevice ( const SystemGraphicsData rData,
const Size rSize,
DeviceFormat  eFormat 
)
explicit

Create a virtual device using an existing system dependent device or graphics context Any rendering will happen directly on the context and not on any intermediate bitmap.

Note: This might not be supported on all platforms !

Definition at line 214 of file virdev.cxx.

References Application::GetDefaultDevice(), Size::Height(), ImplInitVirDev(), SAL_INFO, and Size::Width().

◆ ~VirtualDevice()

VirtualDevice::~VirtualDevice ( )
overridevirtual

Definition at line 224 of file virdev.cxx.

References VclReferenceBase::disposeOnce(), and SAL_INFO.

Member Function Documentation

◆ AcquireGraphics()

bool VirtualDevice::AcquireGraphics ( ) const
overrideprotectedvirtual

Acquire a graphics device that the output device uses to draw on.

There is an LRU of OutputDevices that is used to get the graphics. The actual creation of a SalGraphics instance is done via the SalFrame implementation.

However, the SalFrame instance will only return a valid SalGraphics instance if it is not in use or there wasn't one in the first place. When this happens, AcquireGraphics finds the least recently used OutputDevice in a different frame and "steals" it (releases it then starts using it).

If there are no frames to steal an OutputDevice's SalGraphics instance from then it blocks until the graphics is released.

Once it has acquired a graphics instance, then we add the OutputDevice to the LRU.

Returns
true if was able to initialize the graphics device, false otherwise.

Implements OutputDevice.

Definition at line 47 of file virdev.cxx.

References DBG_TESTSOLARMUTEX, Enable, ImplGetSVData(), Invert, ImplSVData::maGDIData, OutputDevice::mbInitClipRegion, OutputDevice::mbInitFillColor, OutputDevice::mbInitFont, OutputDevice::mbInitLineColor, OutputDevice::mbInitTextColor, OutputDevice::meRasterOp, OutputDevice::mnAntialiasing, ImplSVGDIData::mpFirstVirGraphics, OutputDevice::mpGraphics, ImplSVGDIData::mpLastVirGraphics, OutputDevice::mpNextGraphics, OutputDevice::mpPrevGraphics, mpVirDev, OutputDevice::ReleaseGraphics(), SalGraphics::setAntiAlias(), SalGraphics::SetXORMode(), and Xor.

Referenced by EnableRTL(), vcl::PDFWriterImpl::ImplClearFontData(), vcl::PDFWriterImpl::ImplRefreshFontData(), ImplSetReferenceDevice(), and InnerImplSetOutputSizePixel().

◆ CanEnableNativeWidget()

bool VirtualDevice::CanEnableNativeWidget ( ) const
overridevirtual

Determine if native widgets can be enabled.

Reimplemented from OutputDevice.

Definition at line 40 of file virdev.cxx.

References OutputDevice::GetExtOutDevData().

◆ Compat_ZeroExtleadBug()

void VirtualDevice::Compat_ZeroExtleadBug ( )

Definition at line 505 of file virdev.cxx.

References mbForceZeroExtleadBug.

◆ dispose()

void VirtualDevice::dispose ( void  )
overridevirtual

◆ EnableRTL()

void VirtualDevice::EnableRTL ( bool  bEnable = true)
overridevirtual

◆ GetBitCount()

sal_uInt16 VirtualDevice::GetBitCount ( ) const
overridevirtual

Reimplemented from OutputDevice.

Definition at line 495 of file virdev.cxx.

References mnBitCount.

◆ GetFontExtLeading()

tools::Long VirtualDevice::GetFontExtLeading ( ) const
overrideprotectedvirtual

Reimplemented from OutputDevice.

Definition at line 510 of file virdev.cxx.

References mbForceZeroExtleadBug, and OutputDevice::mpFontInstance.

◆ ImplFillOpaqueRectangle()

void VirtualDevice::ImplFillOpaqueRectangle ( const tools::Rectangle rRect)
private

◆ ImplInitVirDev()

void VirtualDevice::ImplInitVirDev ( const OutputDevice pOutDev,
tools::Long  nDX,
tools::Long  nDY,
const SystemGraphicsData pData = nullptr 
)
private

◆ ImplSetOutputSizePixel()

bool VirtualDevice::ImplSetOutputSizePixel ( const Size rNewSize,
bool  bErase,
sal_uInt8 pBuffer,
bool  bAlphaMaskTransparent = false 
)
private

◆ ImplSetReferenceDevice()

void VirtualDevice::ImplSetReferenceDevice ( RefDevMode  i_eRefDevMode,
sal_Int32  i_nDPIX,
sal_Int32  i_nDPIY 
)
private

◆ InnerImplSetOutputSizePixel()

bool VirtualDevice::InnerImplSetOutputSizePixel ( const Size rNewSize,
bool  bErase,
sal_uInt8 pBuffer 
)
private

◆ IsScreenComp()

bool VirtualDevice::IsScreenComp ( ) const
inlineoverridevirtual

Reimplemented from OutputDevice.

Definition at line 146 of file virdev.hxx.

◆ IsVirtual()

bool VirtualDevice::IsVirtual ( ) const
overridevirtual

Reimplemented from OutputDevice.

Definition at line 453 of file virdev.cxx.

◆ operator=()

VirtualDevice & VirtualDevice::operator= ( const VirtualDevice )
privatedelete

◆ ReleaseGraphics()

void VirtualDevice::ReleaseGraphics ( bool  bRelease = true)
overrideprotectedvirtual

Release the graphics device, and remove it from the graphics device list.

Parameters
bReleaseDetermines whether to release the fonts of the physically released graphics device.

Implements OutputDevice.

Definition at line 94 of file virdev.cxx.

References DBG_TESTSOLARMUTEX, ImplGetSVData(), OutputDevice::ImplReleaseFonts(), ImplSVData::maGDIData, ImplSVGDIData::mpFirstVirGraphics, OutputDevice::mpGraphics, ImplSVGDIData::mpLastVirGraphics, OutputDevice::mpNextGraphics, OutputDevice::mpPrevGraphics, and mpVirDev.

Referenced by dispose(), and InnerImplSetOutputSizePixel().

◆ SetOutputSize()

bool VirtualDevice::SetOutputSize ( const Size rNewSize)
inline

Definition at line 133 of file virdev.hxx.

References OutputDevice::LogicToPixel().

◆ SetOutputSizePixel()

bool VirtualDevice::SetOutputSizePixel ( const Size rNewSize,
bool  bErase = true,
bool  bAlphaMaskTransparent = false 
)

◆ SetOutputSizePixelScaleOffsetAndLOKBuffer()

bool VirtualDevice::SetOutputSizePixelScaleOffsetAndLOKBuffer ( const Size rNewSize,
const Fraction rScale,
const Point rNewOffset,
sal_uInt8 pBuffer 
)

◆ SetReferenceDevice() [1/2]

void VirtualDevice::SetReferenceDevice ( RefDevMode  i_eRefDevMode)

Definition at line 426 of file virdev.cxx.

References Dpi600, ImplSetReferenceDevice(), MSO1, NONE, PDF1, and SAL_WARN.

Referenced by vcl::PDFWriterImpl::PDFWriterImpl().

◆ SetReferenceDevice() [2/2]

void VirtualDevice::SetReferenceDevice ( sal_Int32  i_nDPIX,
sal_Int32  i_nDPIY 
)

Definition at line 448 of file virdev.cxx.

References Custom, and ImplSetReferenceDevice().

◆ UsePolyPolygonForComplexGradient()

bool VirtualDevice::UsePolyPolygonForComplexGradient ( )
overrideprotectedvirtual

Implements OutputDevice.

Definition at line 500 of file virdev.cxx.

Friends And Related Function Documentation

◆ ::OutputDevice

friend class ::OutputDevice
friend

Definition at line 35 of file virdev.hxx.

◆ Application

friend class Application
friend

Definition at line 34 of file virdev.hxx.

◆ get_underlying_cairo_surface

cairo_surface_t * get_underlying_cairo_surface ( const VirtualDevice )
friend

◆ Printer

friend class Printer
friend

Definition at line 36 of file virdev.hxx.

Member Data Documentation

◆ mbForceZeroExtleadBug

bool VirtualDevice::mbForceZeroExtleadBug
private

Definition at line 55 of file virdev.hxx.

Referenced by Compat_ZeroExtleadBug(), GetFontExtLeading(), and ImplInitVirDev().

◆ mbScreenComp

bool VirtualDevice::mbScreenComp
private

Definition at line 52 of file virdev.hxx.

Referenced by ImplInitVirDev(), ImplSetReferenceDevice(), and Application::SetSettings().

◆ meFormatAndAlpha

const DeviceFormat VirtualDevice::meFormatAndAlpha
private

Definition at line 53 of file virdev.hxx.

Referenced by ImplInitVirDev(), ImplSetOutputSizePixel(), and InnerImplSetOutputSizePixel().

◆ meRefDevMode

RefDevMode VirtualDevice::meRefDevMode
private

Definition at line 54 of file virdev.hxx.

Referenced by ImplInitVirDev(), and ImplSetReferenceDevice().

◆ mnBitCount

sal_uInt16 VirtualDevice::mnBitCount
private

Definition at line 51 of file virdev.hxx.

Referenced by GetBitCount(), and ImplInitVirDev().

◆ mpNext

VclPtr<VirtualDevice> VirtualDevice::mpNext
private

◆ mpPrev

VclPtr<VirtualDevice> VirtualDevice::mpPrev
private

Definition at line 49 of file virdev.hxx.

Referenced by dispose(), and ImplInitVirDev().

◆ mpVirDev

std::unique_ptr<SalVirtualDevice> VirtualDevice::mpVirDev
private

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