vcl/headless/SvpGraphicsBackend.cxx |   57 +++++++++++++++++++++++++++++++++---
 vcl/headless/svpgdi.cxx             |   55 ----------------------------------
 vcl/inc/headless/svpgdi.hxx         |    1 
 3 files changed, 53 insertions(+), 60 deletions(-)

New commits:
commit 96b62c331c5c780100de7a5b474af259c8fbb916
Author:     Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
AuthorDate: Tue Dec 28 13:09:15 2021 +0900
Commit:     Tomaž Vajngerl <qui...@gmail.com>
CommitDate: Tue Jan 4 06:55:04 2022 +0100

    vcl: drawAlphaRect to SvpGraphicsBackend
    
    Change-Id: I44f388b6578d4f9e7d0e5b75e17fab534574da1b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127844
    Tested-by: Jenkins
    Reviewed-by: Tomaž Vajngerl <qui...@gmail.com>

diff --git a/vcl/headless/SvpGraphicsBackend.cxx 
b/vcl/headless/SvpGraphicsBackend.cxx
index 460d869766c7..71670cb37bd1 100644
--- a/vcl/headless/SvpGraphicsBackend.cxx
+++ b/vcl/headless/SvpGraphicsBackend.cxx
@@ -486,11 +486,60 @@ bool SvpGraphicsBackend::drawTransformedBitmap(const 
basegfx::B2DPoint& /*rNull*
 
 bool SvpGraphicsBackend::hasFastDrawTransformedBitmap() const { return false; }
 
-bool SvpGraphicsBackend::drawAlphaRect(tools::Long /*nX*/, tools::Long /*nY*/,
-                                       tools::Long /*nWidth*/, tools::Long 
/*nHeight*/,
-                                       sal_uInt8 /*nTransparency*/)
+bool SvpGraphicsBackend::drawAlphaRect(tools::Long nX, tools::Long nY, 
tools::Long nWidth,
+                                       tools::Long nHeight, sal_uInt8 
nTransparency)
 {
-    return false;
+    const bool bHasFill(m_rCairoCommon.m_aFillColor != SALCOLOR_NONE);
+    const bool bHasLine(m_rCairoCommon.m_aLineColor != SALCOLOR_NONE);
+
+    if (!(bHasFill || bHasLine))
+    {
+        return true;
+    }
+
+    cairo_t* cr = m_rCairoCommon.getCairoContext(false, getAntiAlias());
+    m_rCairoCommon.clipRegion(cr);
+
+    const double fTransparency = nTransparency * (1.0 / 100);
+
+    // To make releaseCairoContext work, use empty extents
+    basegfx::B2DRange extents;
+
+    if (bHasFill)
+    {
+        cairo_rectangle(cr, nX, nY, nWidth, nHeight);
+
+        m_rCairoCommon.applyColor(cr, m_rCairoCommon.m_aFillColor, 
fTransparency);
+
+        // set FillDamage
+        extents = getClippedFillDamage(cr);
+
+        cairo_fill(cr);
+    }
+
+    if (bHasLine)
+    {
+        // PixelOffset used: Set PixelOffset as linear transformation
+        // Note: Was missing here - probably not by purpose (?)
+        cairo_matrix_t aMatrix;
+        cairo_matrix_init_translate(&aMatrix, 0.5, 0.5);
+        cairo_set_matrix(cr, &aMatrix);
+
+        cairo_rectangle(cr, nX, nY, nWidth, nHeight);
+
+        m_rCairoCommon.applyColor(cr, m_rCairoCommon.m_aLineColor, 
fTransparency);
+
+        // expand with possible StrokeDamage
+        basegfx::B2DRange stroke_extents = getClippedStrokeDamage(cr);
+        
stroke_extents.transform(basegfx::utils::createTranslateB2DHomMatrix(0.5, 0.5));
+        extents.expand(stroke_extents);
+
+        cairo_stroke(cr);
+    }
+
+    m_rCairoCommon.releaseCairoContext(cr, false, extents);
+
+    return true;
 }
 
 bool SvpGraphicsBackend::drawGradient(const tools::PolyPolygon& rPolyPolygon,
diff --git a/vcl/headless/svpgdi.cxx b/vcl/headless/svpgdi.cxx
index eb8edacafbd3..46016e0e3349 100644
--- a/vcl/headless/svpgdi.cxx
+++ b/vcl/headless/svpgdi.cxx
@@ -756,61 +756,6 @@ bool SvpSalGraphics::drawTransformedBitmap(
     return true;
 }
 
-bool SvpSalGraphics::drawAlphaRect(tools::Long nX, tools::Long nY, tools::Long 
nWidth, tools::Long nHeight, sal_uInt8 nTransparency)
-{
-    const bool bHasFill(m_aCairoCommon.m_aFillColor != SALCOLOR_NONE);
-    const bool bHasLine(m_aCairoCommon.m_aLineColor != SALCOLOR_NONE);
-
-    if(!(bHasFill || bHasLine))
-    {
-        return true;
-    }
-
-    cairo_t* cr = m_aCairoCommon.getCairoContext(false, getAntiAlias());
-    clipRegion(cr);
-
-    const double fTransparency = nTransparency * (1.0/100);
-
-    // To make releaseCairoContext work, use empty extents
-    basegfx::B2DRange extents;
-
-    if (bHasFill)
-    {
-        cairo_rectangle(cr, nX, nY, nWidth, nHeight);
-
-        m_aCairoCommon.applyColor(cr, m_aCairoCommon.m_aFillColor, 
fTransparency);
-
-        // set FillDamage
-        extents = getClippedFillDamage(cr);
-
-        cairo_fill(cr);
-    }
-
-    if (bHasLine)
-    {
-        // PixelOffset used: Set PixelOffset as linear transformation
-        // Note: Was missing here - probably not by purpose (?)
-        cairo_matrix_t aMatrix;
-        cairo_matrix_init_translate(&aMatrix, 0.5, 0.5);
-        cairo_set_matrix(cr, &aMatrix);
-
-        cairo_rectangle(cr, nX, nY, nWidth, nHeight);
-
-        m_aCairoCommon.applyColor(cr, m_aCairoCommon.m_aLineColor, 
fTransparency);
-
-        // expand with possible StrokeDamage
-        basegfx::B2DRange stroke_extents = getClippedStrokeDamage(cr);
-        
stroke_extents.transform(basegfx::utils::createTranslateB2DHomMatrix(0.5, 0.5));
-        extents.expand(stroke_extents);
-
-        cairo_stroke(cr);
-    }
-
-    m_aCairoCommon.releaseCairoContext(cr, false, extents);
-
-    return true;
-}
-
 SvpSalGraphics::SvpSalGraphics()
     : m_aTextRenderImpl(*this)
     , m_pBackend(new SvpGraphicsBackend(m_aCairoCommon))
diff --git a/vcl/inc/headless/svpgdi.hxx b/vcl/inc/headless/svpgdi.hxx
index d304b355ab88..61decc908563 100644
--- a/vcl/inc/headless/svpgdi.hxx
+++ b/vcl/inc/headless/svpgdi.hxx
@@ -67,7 +67,6 @@ protected:
         const SalBitmap& rSourceBitmap,
         const SalBitmap* pAlphaBitmap,
         double fAlpha) override;
-    virtual bool drawAlphaRect( tools::Long nX, tools::Long nY, tools::Long 
nWidth, tools::Long nHeight, sal_uInt8 nTransparency ) override;
 
     cairo_t* createTmpCompatibleCairoContext() const;
 

Reply via email to