summaryrefslogtreecommitdiff
path: root/vcl/headless
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-04-04 15:56:29 +0100
committerCaolán McNamara <caolanm@redhat.com>2019-04-04 18:07:53 +0200
commit3c6c56b107d71d5f4790be0b76299e8f215f88cc (patch)
treea76b6a5f7b1dc075bc8a5e9ffeb4a6e1d912a1c3 /vcl/headless
parentb8c49b1d4d4debd86c4b944b0bb2ba020ef1b030 (diff)
Revert "raise cairo baseline to 1.12.0"
This reverts commit 50580f452cc7c88a231831619a3f05958ce56460. Revert "raise cairo baseline to 1.10.0" This reverts commit 58a0e60dee0d27a699f856827c20b792417d3478. 32bit baseline is currently at cairo 1.8.8 Change-Id: I5156df6aee03dbbb2e209dbd5717a98580256170 Reviewed-on: https://gerrit.libreoffice.org/70260 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl/headless')
-rw-r--r--vcl/headless/svpgdi.cxx23
1 files changed, 22 insertions, 1 deletions
diff --git a/vcl/headless/svpgdi.cxx b/vcl/headless/svpgdi.cxx
index b072bf946cdc..2cf49ca17696 100644
--- a/vcl/headless/svpgdi.cxx
+++ b/vcl/headless/svpgdi.cxx
@@ -47,6 +47,12 @@
#include <unx/gendata.hxx>
#include <dlfcn.h>
+#if ENABLE_CAIRO_CANVAS
+# if defined CAIRO_VERSION && CAIRO_VERSION < CAIRO_VERSION_ENCODE(1, 10, 0)
+# define CAIRO_OPERATOR_DIFFERENCE (static_cast<cairo_operator_t>(23))
+# endif
+#endif
+
namespace
{
basegfx::B2DRange getClipBox(cairo_t* cr)
@@ -1739,7 +1745,11 @@ std::shared_ptr<SalBitmap> SvpSalGraphics::getBitmap( long nX, long nY, long nWi
Color SvpSalGraphics::getPixel( long nX, long nY )
{
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 12, 0)
cairo_surface_t *target = cairo_surface_create_similar_image(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);
@@ -1795,7 +1805,14 @@ void SvpSalGraphics::invert(const basegfx::B2DPolygon &rPoly, SalInvert nFlags)
cairo_set_source_rgb(cr, 1.0, 1.0, 1.0);
- cairo_set_operator(cr, CAIRO_OPERATOR_DIFFERENCE);
+ if (cairo_version() >= CAIRO_VERSION_ENCODE(1, 10, 0))
+ {
+ cairo_set_operator(cr, CAIRO_OPERATOR_DIFFERENCE);
+ }
+ else
+ {
+ SAL_WARN("vcl.gdi", "SvpSalGraphics::invert, archaic cairo");
+ }
if (nFlags & SalInvert::TrackFrame)
{
@@ -1973,7 +1990,11 @@ cairo_surface_t* SvpSalGraphics::createCairoSurface(const BitmapBuffer *pBuffer)
cairo_t* SvpSalGraphics::createTmpCompatibleCairoContext() const
{
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 12, 0)
cairo_surface_t *target = cairo_surface_create_similar_image(m_pSurface,
+#else
+ cairo_surface_t *target = cairo_image_surface_create(
+#endif
CAIRO_FORMAT_ARGB32,
m_aFrameSize.getX() * m_fScale,
m_aFrameSize.getY() * m_fScale);