vcl/headless/SvpGraphicsBackend.cxx |   29 ++++++++++++++++++++++++++++-
 vcl/headless/svpgdi.cxx             |   28 ----------------------------
 vcl/inc/headless/svpgdi.hxx         |    2 +-
 3 files changed, 29 insertions(+), 30 deletions(-)

New commits:
commit 3aaf8506b3ee0d4a1bb86be7c6ca4d9402467d49
Author:     Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
AuthorDate: Tue Dec 28 09:48:30 2021 +0900
Commit:     Tomaž Vajngerl <qui...@gmail.com>
CommitDate: Mon Jan 3 08:03:20 2022 +0100

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

diff --git a/vcl/headless/SvpGraphicsBackend.cxx 
b/vcl/headless/SvpGraphicsBackend.cxx
index 10c02d4644f9..d5dd2fe48b27 100644
--- a/vcl/headless/SvpGraphicsBackend.cxx
+++ b/vcl/headless/SvpGraphicsBackend.cxx
@@ -383,7 +383,34 @@ std::shared_ptr<SalBitmap> 
SvpGraphicsBackend::getBitmap(tools::Long /*nX*/, too
     return std::shared_ptr<SalBitmap>();
 }
 
-Color SvpGraphicsBackend::getPixel(tools::Long /*nX*/, tools::Long /*nY*/) { 
return Color(); }
+Color SvpGraphicsBackend::getPixel(tools::Long nX, tools::Long nY)
+{
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 12, 0)
+    cairo_surface_t* target
+        = cairo_surface_create_similar_image(m_rCairoCommon.m_pSurface, 
CAIRO_FORMAT_ARGB32, 1, 1);
+#else
+    cairo_surface_t* target = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 
1, 1);
+#endif
+
+    cairo_t* cr = cairo_create(target);
+
+    cairo_rectangle(cr, 0, 0, 1, 1);
+    cairo_set_source_surface(cr, m_rCairoCommon.m_pSurface, -nX, -nY);
+    cairo_paint(cr);
+    cairo_destroy(cr);
+
+    cairo_surface_flush(target);
+    vcl::bitmap::lookup_table const& unpremultiply_table = 
vcl::bitmap::get_unpremultiply_table();
+    unsigned char* data = cairo_image_surface_get_data(target);
+    sal_uInt8 a = data[SVP_CAIRO_ALPHA];
+    sal_uInt8 b = unpremultiply_table[a][data[SVP_CAIRO_BLUE]];
+    sal_uInt8 g = unpremultiply_table[a][data[SVP_CAIRO_GREEN]];
+    sal_uInt8 r = unpremultiply_table[a][data[SVP_CAIRO_RED]];
+    Color aColor(ColorAlpha, a, r, g, b);
+    cairo_surface_destroy(target);
+
+    return aColor;
+}
 
 void SvpGraphicsBackend::invert(tools::Long /*nX*/, tools::Long /*nY*/, 
tools::Long /*nWidth*/,
                                 tools::Long /*nHeight*/, SalInvert /*nFlags*/)
diff --git a/vcl/headless/svpgdi.cxx b/vcl/headless/svpgdi.cxx
index 523a76fbb530..bc6a6231d1c1 100644
--- a/vcl/headless/svpgdi.cxx
+++ b/vcl/headless/svpgdi.cxx
@@ -1108,34 +1108,6 @@ std::shared_ptr<SalBitmap> SvpSalGraphics::getBitmap( 
tools::Long nX, tools::Lon
     return pBitmap;
 }
 
-Color SvpSalGraphics::getPixel( tools::Long nX, tools::Long nY )
-{
-#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 12, 0)
-    cairo_surface_t *target = 
cairo_surface_create_similar_image(m_aCairoCommon.m_pSurface, 
CAIRO_FORMAT_ARGB32, 1, 1);
-#else
-    cairo_surface_t *target = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 
1, 1);
-#endif
-
-    cairo_t* cr = cairo_create(target);
-
-    cairo_rectangle(cr, 0, 0, 1, 1);
-    cairo_set_source_surface(cr, m_aCairoCommon.m_pSurface, -nX, -nY);
-    cairo_paint(cr);
-    cairo_destroy(cr);
-
-    cairo_surface_flush(target);
-    vcl::bitmap::lookup_table const & unpremultiply_table = 
vcl::bitmap::get_unpremultiply_table();
-    unsigned char *data = cairo_image_surface_get_data(target);
-    sal_uInt8 a = data[SVP_CAIRO_ALPHA];
-    sal_uInt8 b = unpremultiply_table[a][data[SVP_CAIRO_BLUE]];
-    sal_uInt8 g = unpremultiply_table[a][data[SVP_CAIRO_GREEN]];
-    sal_uInt8 r = unpremultiply_table[a][data[SVP_CAIRO_RED]];
-    Color aColor(ColorAlpha, a, r, g, b);
-    cairo_surface_destroy(target);
-
-    return aColor;
-}
-
 namespace
 {
     cairo_pattern_t * create_stipple()
diff --git a/vcl/inc/headless/svpgdi.hxx b/vcl/inc/headless/svpgdi.hxx
index 0d36a2cf8442..ba4dec8d29e8 100644
--- a/vcl/inc/headless/svpgdi.hxx
+++ b/vcl/inc/headless/svpgdi.hxx
@@ -140,7 +140,7 @@ public:
                                       const SalBitmap& rSalBitmap,
                                       Color nMaskColor ) override;
     virtual std::shared_ptr<SalBitmap> getBitmap( tools::Long nX, tools::Long 
nY, tools::Long nWidth, tools::Long nHeight ) override;
-    virtual Color           getPixel( tools::Long nX, tools::Long nY ) 
override;
+
     virtual void            invert( tools::Long nX, tools::Long nY, 
tools::Long nWidth, tools::Long nHeight, SalInvert nFlags ) override;
     virtual void            invert( sal_uInt32 nPoints, const Point* pPtAry, 
SalInvert nFlags ) override;
 

Reply via email to