vcl/headless/CairoCommon.cxx | 2 - vcl/headless/SvpGraphicsBackend.cxx | 14 +++++----- vcl/inc/headless/CairoCommon.hxx | 2 - vcl/unx/generic/gdi/X11CairoSalGraphicsImpl.cxx | 31 ++++++------------------ 4 files changed, 18 insertions(+), 31 deletions(-)
New commits: commit 9124e9d2381ac7b039ef00b70f21b23b60735bb9 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Mon Jan 2 20:40:38 2023 +0000 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Wed Jan 4 15:42:06 2023 +0000 drop SAL_DISABLE_USE_CAIRO_FOR_FATLINES Change-Id: Ic55a117ff1f2b971f2f075d706fd1b182f16ace5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144969 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/vcl/unx/generic/gdi/X11CairoSalGraphicsImpl.cxx b/vcl/unx/generic/gdi/X11CairoSalGraphicsImpl.cxx index 2109e19b9660..9f2fcb988697 100644 --- a/vcl/unx/generic/gdi/X11CairoSalGraphicsImpl.cxx +++ b/vcl/unx/generic/gdi/X11CairoSalGraphicsImpl.cxx @@ -153,31 +153,18 @@ bool X11CairoSalGraphicsImpl::drawPolyLine(const basegfx::B2DHomMatrix& rObjectT return true; } - // disable by setting to something - static const char* pUseCairoForFatLines(getenv("SAL_DISABLE_USE_CAIRO_FOR_FATLINES")); + cairo_t* cr = mrX11Common.getCairoContext(); + clipRegion(cr); - if (nullptr == pUseCairoForFatLines && mrX11Common.SupportsCairo()) - { - cairo_t* cr = mrX11Common.getCairoContext(); - clipRegion(cr); + // Use the now available static drawPolyLine from the Cairo-Headless-Fallback + // that will take care of all needed stuff + const bool bRetval(CairoCommon::drawPolyLine( + cr, nullptr, mnPenColor, getAntiAlias(), rObjectToDevice, rPolygon, fTransparency, + fLineWidth, pStroke, eLineJoin, eLineCap, fMiterMinimumAngle, bPixelSnapHairline)); - // Use the now available static drawPolyLine from the Cairo-Headless-Fallback - // that will take care of all needed stuff - const bool bRetval(CairoCommon::drawPolyLine( - cr, nullptr, mnPenColor, getAntiAlias(), rObjectToDevice, rPolygon, fTransparency, - fLineWidth, pStroke, eLineJoin, eLineCap, fMiterMinimumAngle, bPixelSnapHairline)); - - X11Common::releaseCairoContext(cr); - - if (bRetval) - { - return true; - } - } + X11Common::releaseCairoContext(cr); - return X11SalGraphicsImpl::drawPolyLine(rObjectToDevice, rPolygon, fTransparency, fLineWidth, - pStroke, eLineJoin, eLineCap, fMiterMinimumAngle, - bPixelSnapHairline); + return bRetval; } #endif commit e9749cf0e9a4110fe47ba2f3693b2f7dbf2dd7a3 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Tue Jan 3 20:12:43 2023 +0000 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Wed Jan 4 15:41:54 2023 +0000 make applyColor static Change-Id: I69cdc922488351d8bd7c0facf9c7209f56f24291 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145027 Tested-by: Caolán McNamara <caol...@redhat.com> Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/vcl/headless/CairoCommon.cxx b/vcl/headless/CairoCommon.cxx index 511799dff9ce..3a8010f21b59 100644 --- a/vcl/headless/CairoCommon.cxx +++ b/vcl/headless/CairoCommon.cxx @@ -567,7 +567,7 @@ cairo_t* CairoCommon::createTmpCompatibleCairoContext() const void CairoCommon::applyColor(cairo_t* cr, Color aColor, double fTransparency) { - if (cairo_surface_get_content(m_pSurface) == CAIRO_CONTENT_COLOR_ALPHA) + if (cairo_surface_get_content(cairo_get_target(cr)) == CAIRO_CONTENT_COLOR_ALPHA) { cairo_set_source_rgba(cr, aColor.GetRed() / 255.0, aColor.GetGreen() / 255.0, aColor.GetBlue() / 255.0, 1.0 - fTransparency); diff --git a/vcl/headless/SvpGraphicsBackend.cxx b/vcl/headless/SvpGraphicsBackend.cxx index 10667e53e4dd..a47332173676 100644 --- a/vcl/headless/SvpGraphicsBackend.cxx +++ b/vcl/headless/SvpGraphicsBackend.cxx @@ -112,7 +112,7 @@ void SvpGraphicsBackend::drawPixel(tools::Long nX, tools::Long nY, Color aColor) m_rCairoCommon.clipRegion(cr); cairo_rectangle(cr, nX, nY, 1, 1); - m_rCairoCommon.applyColor(cr, aColor, 0.0); + CairoCommon::applyColor(cr, aColor, 0.0); cairo_fill(cr); basegfx::B2DRange extents = getClippedFillDamage(cr); @@ -141,7 +141,7 @@ void SvpGraphicsBackend::drawLine(tools::Long nX1, tools::Long nY1, tools::Long AddPolygonToPath(cr, aPoly, basegfx::B2DHomMatrix(), !getAntiAlias(), false); - m_rCairoCommon.applyColor(cr, m_rCairoCommon.m_aLineColor); + CairoCommon::applyColor(cr, m_rCairoCommon.m_aLineColor); basegfx::B2DRange extents = getClippedStrokeDamage(cr); extents.transform(basegfx::utils::createTranslateB2DHomMatrix(0.5, 0.5)); @@ -187,7 +187,7 @@ void SvpGraphicsBackend::implDrawRect(double nX, double nY, double nWidth, doubl cairo_rectangle(cr, nX, nY, nWidth, nHeight); - m_rCairoCommon.applyColor(cr, m_rCairoCommon.m_aFillColor, fTransparency); + CairoCommon::applyColor(cr, m_rCairoCommon.m_aFillColor, fTransparency); // Get FillDamage (will be extended for LineDamage below) extents = getClippedFillDamage(cr); @@ -317,7 +317,7 @@ bool SvpGraphicsBackend::drawPolyPolygon(const basegfx::B2DHomMatrix& rObjectToD { add_polygon_path(cr, rPolyPolygon, rObjectToDevice, !getAntiAlias()); - m_rCairoCommon.applyColor(cr, m_rCairoCommon.m_aFillColor, fTransparency); + CairoCommon::applyColor(cr, m_rCairoCommon.m_aFillColor, fTransparency); // Get FillDamage (will be extended for LineDamage below) extents = getClippedFillDamage(cr); @@ -333,7 +333,7 @@ bool SvpGraphicsBackend::drawPolyPolygon(const basegfx::B2DHomMatrix& rObjectToD add_polygon_path(cr, rPolyPolygon, rObjectToDevice, !getAntiAlias()); - m_rCairoCommon.applyColor(cr, m_rCairoCommon.m_aLineColor, fTransparency); + CairoCommon::applyColor(cr, m_rCairoCommon.m_aLineColor, fTransparency); // expand with possible StrokeDamage basegfx::B2DRange stroke_extents = getClippedStrokeDamage(cr); @@ -842,7 +842,7 @@ bool SvpGraphicsBackend::drawAlphaRect(tools::Long nX, tools::Long nY, tools::Lo { cairo_rectangle(cr, nX, nY, nWidth, nHeight); - m_rCairoCommon.applyColor(cr, m_rCairoCommon.m_aFillColor, fTransparency); + CairoCommon::applyColor(cr, m_rCairoCommon.m_aFillColor, fTransparency); // set FillDamage extents = getClippedFillDamage(cr); @@ -860,7 +860,7 @@ bool SvpGraphicsBackend::drawAlphaRect(tools::Long nX, tools::Long nY, tools::Lo cairo_rectangle(cr, nX, nY, nWidth, nHeight); - m_rCairoCommon.applyColor(cr, m_rCairoCommon.m_aLineColor, fTransparency); + CairoCommon::applyColor(cr, m_rCairoCommon.m_aLineColor, fTransparency); // expand with possible StrokeDamage basegfx::B2DRange stroke_extents = getClippedStrokeDamage(cr); diff --git a/vcl/inc/headless/CairoCommon.hxx b/vcl/inc/headless/CairoCommon.hxx index 230d8988429c..3bf132c95894 100644 --- a/vcl/inc/headless/CairoCommon.hxx +++ b/vcl/inc/headless/CairoCommon.hxx @@ -144,7 +144,7 @@ struct VCL_DLLPUBLIC CairoCommon cairo_t* createTmpCompatibleCairoContext() const; - void applyColor(cairo_t* cr, Color rColor, double fTransparency = 0.0); + static void applyColor(cairo_t* cr, Color rColor, double fTransparency = 0.0); void clipRegion(cairo_t* cr); static void clipRegion(cairo_t* cr, const vcl::Region& rClipRegion);