vcl/headless/svpcairotextrender.cxx | 4 +++- vcl/unx/generic/gdi/cairotextrender.cxx | 2 -- vcl/unx/generic/gdi/openglx11cairotextrender.cxx | 6 ++++++ vcl/unx/generic/gdi/x11cairotextrender.cxx | 3 ++- 4 files changed, 11 insertions(+), 4 deletions(-)
New commits: commit 1a1ee2f6e5b8215ad5f7bcdcb13f5fdce5784b2e Author: Caolán McNamara <caol...@redhat.com> Date: Mon Feb 1 12:08:43 2016 +0000 move CairoTextRender cleanup to callers so releaseCairoContext is a mirror of getCairoContext, so callers that don't need to flush can drop that explicit call Not sure, now that I see it, how there's been no sign of any problem with no damage of the affected text area under gtk3 Change-Id: I8e508160be4102c64a0ecdf5591b6999f9171c36 diff --git a/vcl/headless/svpcairotextrender.cxx b/vcl/headless/svpcairotextrender.cxx index 3109a75..9468793 100644 --- a/vcl/headless/svpcairotextrender.cxx +++ b/vcl/headless/svpcairotextrender.cxx @@ -9,6 +9,7 @@ #include "headless/svpcairotextrender.hxx" #include "headless/svpgdi.hxx" +#include <cairo.h> SvpCairoTextRender::SvpCairoTextRender(SvpSalGraphics& rParent) : mrParent(rParent) @@ -36,8 +37,9 @@ void SvpCairoTextRender::clipRegion(cairo_t* cr) mrParent.clipRegion(cr); } -void SvpCairoTextRender::releaseCairoContext(cairo_t*) +void SvpCairoTextRender::releaseCairoContext(cairo_t* cr) { + mrParent.releaseCairoContext(cr, false, basegfx::B2DRange()); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/unx/generic/gdi/cairotextrender.cxx b/vcl/unx/generic/gdi/cairotextrender.cxx index 3c95849..747791d 100644 --- a/vcl/unx/generic/gdi/cairotextrender.cxx +++ b/vcl/unx/generic/gdi/cairotextrender.cxx @@ -344,9 +344,7 @@ void CairoTextRender::DrawServerFontLayout( const ServerFontLayout& rLayout ) aI = aNext; } - cairo_surface_flush(cairo_get_target(cr)); releaseCairoContext(cr); - cairo_destroy(cr); } const FontCharMapPtr CairoTextRender::GetFontCharMap() const diff --git a/vcl/unx/generic/gdi/openglx11cairotextrender.cxx b/vcl/unx/generic/gdi/openglx11cairotextrender.cxx index d5350e9..0c8ac0d 100644 --- a/vcl/unx/generic/gdi/openglx11cairotextrender.cxx +++ b/vcl/unx/generic/gdi/openglx11cairotextrender.cxx @@ -60,11 +60,15 @@ void OpenGLX11CairoTextRender::releaseCairoContext(cairo_t* cr) // XXX: lfrb: GLES 2.0 doesn't support GL_UNSIGNED_INT_8_8_8_8_REV OpenGLSalGraphicsImpl *pImpl = dynamic_cast< OpenGLSalGraphicsImpl* >(mrParent.GetImpl()); if(!pImpl) + { + cairo_destroy(cr); return; + } cairo_surface_t* pSurface = cairo_get_target(cr); int nWidth = cairo_image_surface_get_width( pSurface ); int nHeight = cairo_image_surface_get_height( pSurface ); + cairo_surface_flush(pSurface); unsigned char *pSrc = cairo_image_surface_get_data( pSurface ); // XXX: lfrb: GLES 2.0 doesn't support GL_UNSIGNED_INT_8_8_8_8_REV @@ -78,6 +82,8 @@ void OpenGLX11CairoTextRender::releaseCairoContext(cairo_t* cr) pImpl->PreDraw(); pImpl->DrawAlphaTexture( aTexture, aRect, true, true ); pImpl->PostDraw(); + + cairo_destroy(cr); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/unx/generic/gdi/x11cairotextrender.cxx b/vcl/unx/generic/gdi/x11cairotextrender.cxx index dc1797f..5a2b095 100644 --- a/vcl/unx/generic/gdi/x11cairotextrender.cxx +++ b/vcl/unx/generic/gdi/x11cairotextrender.cxx @@ -146,8 +146,9 @@ size_t X11CairoTextRender::GetHeight() const return 1; } -void X11CairoTextRender::releaseCairoContext(cairo_t* /*cr*/) +void X11CairoTextRender::releaseCairoContext(cairo_t* cr) { + cairo_destroy(cr); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits