|
 |
20aa85 |
From ec864247bc40d92e32e3b0f9916d3e39974c9116 Mon Sep 17 00:00:00 2001
|
|
 |
20aa85 |
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
|
 |
20aa85 |
Date: Mon, 20 Mar 2017 15:08:01 +0000
|
|
 |
20aa85 |
Subject: [PATCH] tdf#106577 cairo_mask pattern affects more surface than
|
|
 |
20aa85 |
expected
|
|
 |
20aa85 |
|
|
 |
20aa85 |
Change-Id: I7f967c401f7b84fd696fa4cf8a944f7a5730917c
|
|
 |
20aa85 |
---
|
|
 |
20aa85 |
vcl/headless/svpgdi.cxx | 15 ++++++++++++++-
|
|
 |
20aa85 |
1 file changed, 14 insertions(+), 1 deletion(-)
|
|
 |
20aa85 |
|
|
 |
20aa85 |
diff --git a/vcl/headless/svpgdi.cxx b/vcl/headless/svpgdi.cxx
|
|
 |
20aa85 |
index 91b6f86e87cb..925a5adecd55 100644
|
|
 |
20aa85 |
--- a/vcl/headless/svpgdi.cxx
|
|
 |
20aa85 |
+++ b/vcl/headless/svpgdi.cxx
|
|
 |
20aa85 |
@@ -1201,8 +1201,21 @@ void SvpSalGraphics::invert(const basegfx::B2DPolygon &rPoly, SalInvert nFlags)
|
|
 |
20aa85 |
if (nFlags & SalInvert::N50)
|
|
 |
20aa85 |
{
|
|
 |
20aa85 |
cairo_pattern_t *pattern = create_stipple();
|
|
 |
20aa85 |
- cairo_mask(cr, pattern);
|
|
 |
20aa85 |
+ cairo_surface_t* surface = cairo_surface_create_similar(m_pSurface,
|
|
 |
20aa85 |
+ cairo_surface_get_content(m_pSurface),
|
|
 |
20aa85 |
+ extents.getWidth() * m_fScale,
|
|
 |
20aa85 |
+ extents.getHeight() * m_fScale);
|
|
 |
20aa85 |
+
|
|
 |
20aa85 |
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 14, 0)
|
|
 |
20aa85 |
+ cairo_surface_set_device_scale(surface, m_fScale, m_fScale);
|
|
 |
20aa85 |
+#endif
|
|
 |
20aa85 |
+ cairo_t* stipple_cr = cairo_create(surface);
|
|
 |
20aa85 |
+ cairo_set_source_rgb(stipple_cr, 1.0, 1.0, 1.0);
|
|
 |
20aa85 |
+ cairo_mask(stipple_cr, pattern);
|
|
 |
20aa85 |
cairo_pattern_destroy(pattern);
|
|
 |
20aa85 |
+ cairo_destroy(stipple_cr);
|
|
 |
20aa85 |
+ cairo_mask_surface(cr, surface, extents.getMinX(), extents.getMinY());
|
|
 |
20aa85 |
+ cairo_surface_destroy(surface);
|
|
 |
20aa85 |
}
|
|
 |
20aa85 |
else
|
|
 |
20aa85 |
{
|
|
 |
20aa85 |
--
|
|
 |
20aa85 |
2.17.1
|
|
 |
20aa85 |
|