diff options
Diffstat (limited to 'vcl/win')
-rw-r--r-- | vcl/win/app/salinst.cxx | 14 | ||||
-rw-r--r-- | vcl/win/gdi/salfont.cxx | 1 | ||||
-rw-r--r-- | vcl/win/gdi/salgdi.cxx | 6 | ||||
-rw-r--r-- | vcl/win/gdi/salgdi2.cxx | 9 | ||||
-rw-r--r-- | vcl/win/gdi/salnativewidgets-luna.cxx | 1 | ||||
-rw-r--r-- | vcl/win/gdi/winlayout.cxx | 3 |
6 files changed, 32 insertions, 2 deletions
diff --git a/vcl/win/app/salinst.cxx b/vcl/win/app/salinst.cxx index 3a5fd78f743b..54df30da1f0e 100644 --- a/vcl/win/app/salinst.cxx +++ b/vcl/win/app/salinst.cxx @@ -32,11 +32,13 @@ #include <vcl/inputtypes.hxx> #include <vcl/opengl/OpenGLHelper.hxx> #include <vcl/opengl/OpenGLContext.hxx> +#include <vcl/skia/SkiaHelper.hxx> #include <vcl/timer.hxx> #include <vclpluginapi.h> #include <opengl/salbmp.hxx> #include <opengl/win/gdiimpl.hxx> +#include <skia/salbmp.hxx> #include <win/wincomp.hxx> #include <win/salids.hrc> #include <win/saldata.hxx> @@ -967,12 +969,22 @@ SalTimer* WinSalInstance::CreateSalTimer() std::shared_ptr<SalBitmap> WinSalInstance::CreateSalBitmap() { - if (OpenGLHelper::isVCLOpenGLEnabled()) + if (SkiaHelper::isVCLSkiaEnabled()) + return std::make_shared<SkiaSalBitmap>(); + else if (OpenGLHelper::isVCLOpenGLEnabled()) return std::make_shared<OpenGLSalBitmap>(); else return std::make_shared<WinSalBitmap>(); } +std::shared_ptr<vcl::BackendCapabilities> WinSalInstance::GetBackendCapabilities() +{ + auto pBackendCapabilities = SalInstance::GetBackendCapabilities(); + if( SkiaHelper::isVCLSkiaEnabled()) + pBackendCapabilities->mbSupportsBitmap32 = true; + return pBackendCapabilities; +} + int WinSalInstance::WorkaroundExceptionHandlingInUSER32Lib(int, LPEXCEPTION_POINTERS pExceptionInfo) { // Decide if an exception is a c++ (mostly UNO) exception or a process violation. diff --git a/vcl/win/gdi/salfont.cxx b/vcl/win/gdi/salfont.cxx index 5a866092bf30..2218e5030e04 100644 --- a/vcl/win/gdi/salfont.cxx +++ b/vcl/win/gdi/salfont.cxx @@ -781,6 +781,7 @@ void ImplGetLogFontFromFontSelect( HDC hDC, static BYTE nDefaultQuality = NONANTIALIASED_QUALITY; if (nDefaultQuality == NONANTIALIASED_QUALITY) { + // TODO skia if (OpenGLWrapper::isVCLOpenGLEnabled()) nDefaultQuality = ANTIALIASED_QUALITY; else diff --git a/vcl/win/gdi/salgdi.cxx b/vcl/win/gdi/salgdi.cxx index 2d4a283bb818..19553f415eee 100644 --- a/vcl/win/gdi/salgdi.cxx +++ b/vcl/win/gdi/salgdi.cxx @@ -35,8 +35,10 @@ #include <salgdiimpl.hxx> #include "gdiimpl.hxx" #include <opengl/win/gdiimpl.hxx> +#include <skia/win/gdiimpl.hxx> #include <vcl/opengl/OpenGLHelper.hxx> +#include <vcl/skia/SkiaHelper.hxx> #define DITHER_PAL_DELTA 51 @@ -619,7 +621,9 @@ WinSalGraphics::WinSalGraphics(WinSalGraphics::Type eType, bool bScreen, HWND hW mpStdClipRgnData(nullptr), mnPenWidth(GSL_PEN_WIDTH) { - if (OpenGLHelper::isVCLOpenGLEnabled() && !mbPrinter) + if (SkiaHelper::isVCLSkiaEnabled() && !mbPrinter) + mpImpl.reset(new WinSkiaSalGraphicsImpl(*this, pProvider)); + else if (OpenGLHelper::isVCLOpenGLEnabled() && !mbPrinter) mpImpl.reset(new WinOpenGLSalGraphicsImpl(*this, pProvider)); else mpImpl.reset(new WinSalGraphicsImpl(*this)); diff --git a/vcl/win/gdi/salgdi2.cxx b/vcl/win/gdi/salgdi2.cxx index ceddcb5b2c8a..7e04366351f6 100644 --- a/vcl/win/gdi/salgdi2.cxx +++ b/vcl/win/gdi/salgdi2.cxx @@ -30,12 +30,14 @@ #include <win/salgdi.h> #include <win/salframe.h> #include <opengl/salbmp.hxx> +#include <skia/salbmp.hxx> #include <vcl/salbtype.hxx> #include <vcl/bitmapaccess.hxx> #include <outdata.hxx> #include <salgdiimpl.hxx> #include <opengl/win/gdiimpl.hxx> +#include <skia/win/gdiimpl.hxx> bool WinSalGraphics::supportsOperation( OutDevSupportType eType ) const @@ -120,6 +122,11 @@ void convertToWinSalBitmap(SalBitmap& rSalBitmap, WinSalBitmap& rWinSalBitmap) { aBitmapPalette = pGLSalBitmap->GetBitmapPalette(); } + SkiaSalBitmap* pSkiaSalBitmap = dynamic_cast<SkiaSalBitmap*>(&rSalBitmap); + if (pSkiaSalBitmap != nullptr) // TODO + { + aBitmapPalette = pSkiaSalBitmap->GetBitmapPalette(); + } BitmapBuffer* pRead = rSalBitmap.AcquireBuffer(BitmapAccessMode::Read); @@ -165,6 +172,7 @@ void convertToWinSalBitmap(SalBitmap& rSalBitmap, WinSalBitmap& rWinSalBitmap) void WinSalGraphics::drawBitmap(const SalTwoRect& rPosAry, const SalBitmap& rSalBitmap) { if (dynamic_cast<WinOpenGLSalGraphicsImpl*>(mpImpl.get()) == nullptr && + dynamic_cast<WinSkiaSalGraphicsImpl*>(mpImpl.get()) == nullptr && dynamic_cast<const WinSalBitmap*>(&rSalBitmap) == nullptr) { std::unique_ptr<WinSalBitmap> pWinSalBitmap(new WinSalBitmap()); @@ -183,6 +191,7 @@ void WinSalGraphics::drawBitmap( const SalTwoRect& rPosAry, const SalBitmap& rSTransparentBitmap ) { if (dynamic_cast<WinOpenGLSalGraphicsImpl*>(mpImpl.get()) == nullptr && + dynamic_cast<WinSkiaSalGraphicsImpl*>(mpImpl.get()) == nullptr && dynamic_cast<const WinSalBitmap*>(&rSSalBitmap) == nullptr) { std::unique_ptr<WinSalBitmap> pWinSalBitmap(new WinSalBitmap()); diff --git a/vcl/win/gdi/salnativewidgets-luna.cxx b/vcl/win/gdi/salnativewidgets-luna.cxx index 84a9bda35ec3..1bfc5312b9a6 100644 --- a/vcl/win/gdi/salnativewidgets-luna.cxx +++ b/vcl/win/gdi/salnativewidgets-luna.cxx @@ -1159,6 +1159,7 @@ bool WinSalGraphics::drawNativeControl( ControlType nType, tools::Rectangle cacheRect = rControlRegion; Size keySize = cacheRect.GetSize(); + // TODO skia WinOpenGLSalGraphicsImpl* pImpl = dynamic_cast<WinOpenGLSalGraphicsImpl*>(mpImpl.get()); // tdf#95618 - A few controls render outside the region they're given. diff --git a/vcl/win/gdi/winlayout.cxx b/vcl/win/gdi/winlayout.cxx index 25949dc0692e..ec8472a5256b 100644 --- a/vcl/win/gdi/winlayout.cxx +++ b/vcl/win/gdi/winlayout.cxx @@ -434,6 +434,7 @@ bool WinSalGraphics::DrawCachedGlyphs(const GenericSalLayout& rLayout) COLORREF color = GetTextColor(hDC); Color salColor = Color(GetRValue(color), GetGValue(color), GetBValue(color)); + // TODO skia WinOpenGLSalGraphicsImpl *pImpl = dynamic_cast<WinOpenGLSalGraphicsImpl*>(mpImpl.get()); if (!pImpl) return false; @@ -475,6 +476,7 @@ void WinSalGraphics::DrawTextLayout(const GenericSalLayout& rLayout) const WinFontInstance* pWinFont = static_cast<const WinFontInstance*>(&rLayout.GetFont()); const HFONT hLayoutFont = pWinFont->GetHFONT(); + // TODO skia bool bUseOpenGL = OpenGLHelper::isVCLOpenGLEnabled() && !mbPrinter; // Our DirectWrite renderer is incomplete, skip it for vertical text where glyphs are not @@ -523,6 +525,7 @@ void WinSalGraphics::DrawTextLayout(const GenericSalLayout& rLayout) tools::Rectangle aRect; rLayout.GetBoundRect(aRect); + // TODO skia WinOpenGLSalGraphicsImpl *pImpl = dynamic_cast<WinOpenGLSalGraphicsImpl*>(mpImpl.get()); if (pImpl) |