43 return pPDFData ==
nullptr;
128 SAL_INFO(
"vcl.virdev",
"ImplInitVirDev(" << nDX <<
"," << nDY <<
")" );
136 bool bErase = nDX > 0 && nDY > 0;
162 throw css::uno::RuntimeException(
163 "Could not create system bitmap!",
164 css::uno::Reference< css::uno::XInterface >() );
191 if( !pData && bErase)
206 , meAlphaFormat(eAlphaFormat)
208 SAL_INFO(
"vcl.virdev",
"VirtualDevice::VirtualDevice( " << static_cast<int>(eFormat)
209 <<
", " << static_cast<int>(eAlphaFormat)
210 <<
", " << static_cast<int>(eOutDevType) <<
" )" );
221 SAL_INFO(
"vcl.virdev",
"VirtualDevice::VirtualDevice( " << static_cast<int>(eFormat) <<
" )" );
228 SAL_INFO(
"vcl.virdev",
"VirtualDevice::~VirtualDevice()" );
234 SAL_INFO(
"vcl.virdev",
"VirtualDevice::dispose()" );
258 "VirtualDevice::InnerImplSetOutputSizePixel( " << rNewSize.
Width() <<
", "
259 << rNewSize.
Height() <<
", " <<
int(bErase) <<
" )" );
267 SAL_INFO(
"vcl.virdev",
"Trying to re-use a VirtualDevice but this time using a pre-allocated buffer");
277 if ( nNewHeight < 1 )
283 bRet =
mpVirDev->SetSizeUsingBuffer( nNewWidth, nNewHeight, pBuffer );
285 bRet =
mpVirDev->SetSize( nNewWidth, nNewHeight );
296 std::unique_ptr<SalVirtualDevice> pNewVirDev;
308 SalGraphics* pGraphics = pNewVirDev->AcquireGraphics();
320 nHeight = nNewHeight;
321 SalTwoRect aPosAry(0, 0, nWidth, nHeight, 0, 0, nWidth, nHeight);
323 pNewVirDev->ReleaseGraphics( pGraphics );
413 const Size& rNewSize,
const Fraction& rScale,
const Point& rNewOffset,
428 sal_Int32 nDPIX = 600, nDPIY = 600;
429 switch( i_eRefDevMode )
433 SAL_WARN(
"vcl.virdev",
"VDev::SetRefDev illegal argument!" );
439 nDPIX = nDPIY = 6*1440;
void EnableOutput(bool bEnable=true)
sal_Int32 mnDPIScalePercentage
For HiDPI displays, we want to draw elements for a percentage larger.
void Compat_ZeroExtleadBug()
const DeviceFormat meFormat
VclPtr< OutputDevice > mpNextGraphics
Next output device in list.
virtual bool UsePolyPolygonForComplexGradient() override
void SetReferenceDevice(RefDevMode)
virtual ~VirtualDevice() override
void SetAntialiasing(AntialiasingFlags nMode)
VclPtr< VirtualDevice > mpNext
constexpr::Color COL_TRANSPARENT(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
VclPtr< OutputDevice > mpLastVirGraphics
void Push(vcl::PushFlags nFlags=vcl::PushFlags::ALL)
const wchar_t *typedef int(__stdcall *DllNativeUnregProc)(int
virtual bool AcquireGraphics() const override
Acquire a graphics device that the output device uses to draw on.
void CopyBits(const SalTwoRect &rPosAry, const OutputDevice &rOutDev)
const MapMode & GetMapMode() const
std::shared_ptr< vcl::font::PhysicalFontCollection > mxFontCollection
bool GetTextRenderModeForResolutionIndependentLayout() const
const DeviceFormat meAlphaFormat
AntialiasingFlags GetAntialiasing() const
virtual void dispose() override
static OutputDevice * GetDefaultDevice()
Get the default "device" (in this case the default window).
std::unique_ptr< vcl::font::PhysicalFontFaceCollection > mpFontFaceCollection
constexpr tools::Long Width() const
VirtualDevice(const VirtualDevice &)=delete
AntialiasingFlags mnAntialiasing
VclPtr< VirtualDevice > mpFirstVirDev
virtual void EnableRTL(bool bEnable=true)
virtual tools::Long GetFontExtLeading() const override
void DrawRect(const tools::Rectangle &rRect)
SalGraphics * mpGraphics
Graphics context to draw on.
ImplSVData * ImplGetSVData()
void SetScaleX(const Fraction &rScaleX)
virtual void dispose() override
SAL_DLLPRIVATE bool ImplSetOutputSizePixel(const Size &rNewSize, bool bErase, sal_uInt8 *pBuffer)
SAL_DLLPRIVATE void ImplInitVirDev(const OutputDevice *pOutDev, tools::Long nDX, tools::Long nDY, const SystemGraphicsData *pData=nullptr)
virtual bool AcquireGraphics() const =0
Acquire a graphics device that the output device uses to draw on.
virtual void EnableRTL(bool bEnable=true) override
bool SetOutputSizePixel(const Size &rNewSize, bool bErase=true)
void SetOrigin(const Point &rOrigin)
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
const Color & GetLineColor() const
SAL_DLLPRIVATE void ImplFillOpaqueRectangle(const tools::Rectangle &rRect)
Used for alpha VDev, to set areas to opaque.
std::unique_ptr< SalVirtualDevice > mpVirDev
void SetScaleY(const Fraction &rScaleY)
virtual sal_uInt16 GetBitCount() const override
Size GetOutputSizePixel() const
bool mbForceZeroExtleadBug
virtual sal_uInt16 GetBitCount() const
SAL_DLLPRIVATE bool InnerImplSetOutputSizePixel(const Size &rNewSize, bool bErase, sal_uInt8 *pBuffer)
virtual void ReleaseGraphics(bool bRelease=true) override
Release the graphics device, and remove it from the graphics device list.
virtual void SetXORMode(bool bSet, bool bInvertOnly)=0
VclPtr< OutputDevice > mpPrevGraphics
Previous output device in list.
void setAntiAlias(bool bNew)
VclPtr< VirtualDevice > mpPrev
VclPtr< VirtualDevice > mpAlphaVDev
virtual void ReleaseGraphics(bool bRelease=true)=0
Release the graphics device, and remove it from the graphics device list.
constexpr tools::Long Height() const
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_WHITE
#define SAL_INFO(area, stream)
::OutputDevice const * GetOutDev() const
VclPtr< OutputDevice > mpFirstVirGraphics
static VclPtr< reference_type > Create(Arg &&...arg)
A construction helper for VclPtr.
std::shared_ptr< ImplFontCache > mxScreenFontCache
bool IsVirtual() const override
void SetTextRenderModeForResolutionIndependentLayout(bool bMode)
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_BLACK
rtl::Reference< LogicalFontInstance > mpFontInstance
SAL_DLLPRIVATE void ImplSetReferenceDevice(RefDevMode, sal_Int32 i_nDPIX, sal_Int32 i_nDPIY)
std::shared_ptr< vcl::font::PhysicalFontCollection > mxScreenFontList
bool SetOutputSizePixelScaleOffsetAndBuffer(const Size &rNewSize, const Fraction &rScale, const Point &rNewOffset, sal_uInt8 *pBuffer)
void SetLayout(SalLayoutFlags aLayout)
std::shared_ptr< ImplFontCache > mxFontCache
#define SAL_WARN(area, stream)
vcl::ExtOutDevData * GetExtOutDevData() const
#define DBG_TESTSOLARMUTEX()
bool CanEnableNativeWidget() const override
Determine if native widgets can be enabled.
virtual std::unique_ptr< SalVirtualDevice > CreateVirtualDevice(SalGraphics &rGraphics, tools::Long &rDX, tools::Long &rDY, DeviceFormat eFormat, const SystemGraphicsData *pData=nullptr)=0
vcl::Window * ImplGetDefaultWindow()
Returns either the application window, or the default GL context window.
virtual void ImplReleaseFonts()
virtual bool IsScreenComp() const
const Color & GetFillColor() const