[Libreoffice-commits] core.git: vcl/inc vcl/unx
Caolán McNamara
caolanm at redhat.com
Tue Feb 2 14:59:36 UTC 2016
vcl/inc/unx/salgdi.h | 4 +++
vcl/unx/generic/gdi/salgdi.cxx | 17 +++++++++++++++
vcl/unx/generic/gdi/x11cairotextrender.cxx | 31 +----------------------------
3 files changed, 23 insertions(+), 29 deletions(-)
New commits:
commit 5a8ec16bf5b51af826ed98644021cd2290747f6f
Author: Caolán McNamara <caolanm at redhat.com>
Date: Mon Feb 1 12:38:52 2016 +0000
move getCairoContext from X11CairoTextRender to X11SalGraphics
and simplify a little bit
Change-Id: I5a2faeb7e22ee5a0eaa4f05bc73fd92cbe2f5083
diff --git a/vcl/inc/unx/salgdi.h b/vcl/inc/unx/salgdi.h
index d2cee20..697a7ca 100644
--- a/vcl/inc/unx/salgdi.h
+++ b/vcl/inc/unx/salgdi.h
@@ -283,6 +283,10 @@ public:
*/
void YieldGraphicsExpose();
+ cairo_t* getCairoContext();
+ void releaseCairoContext(cairo_t* cr);
+
+
// do XCopyArea or XGet/PutImage depending on screen numbers
// signature is like XCopyArea with screen numbers added
static void CopyScreenArea(
diff --git a/vcl/unx/generic/gdi/salgdi.cxx b/vcl/unx/generic/gdi/salgdi.cxx
index fc8554b..7bc1719 100644
--- a/vcl/unx/generic/gdi/salgdi.cxx
+++ b/vcl/unx/generic/gdi/salgdi.cxx
@@ -64,6 +64,7 @@
#include "xrender_peer.hxx"
#include "cairo_cairo.hxx"
#include "cairo_xlib_cairo.hxx"
+#include <cairo-xlib.h>
#include <vcl/opengl/OpenGLHelper.hxx>
@@ -564,4 +565,20 @@ SalGeometryProvider *X11SalGraphics::GetGeometryProvider() const
return static_cast< SalGeometryProvider * >(m_pVDev);
}
+cairo_t* X11SalGraphics::getCairoContext()
+{
+ cairo_surface_t* surface = cairo_xlib_surface_create(GetXDisplay(), hDrawable_,
+ GetVisual().visual, SAL_MAX_INT16, SAL_MAX_INT16);
+
+ cairo_t *cr = cairo_create(surface);
+ cairo_surface_destroy(surface);
+
+ return cr;
+}
+
+void X11SalGraphics::releaseCairoContext(cairo_t* cr)
+{
+ 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 5a2b095..a3973c8 100644
--- a/vcl/unx/generic/gdi/x11cairotextrender.cxx
+++ b/vcl/unx/generic/gdi/x11cairotextrender.cxx
@@ -25,10 +25,6 @@
#include "gcach_xpeer.hxx"
#include <cairo.h>
-#include <cairo-ft.h>
-
-#include <cairo-xlib.h>
-#include <cairo-xlib-xrender.h>
struct BOX
{
@@ -58,30 +54,7 @@ GlyphCache& X11CairoTextRender::getPlatformGlyphCache()
cairo_t* X11CairoTextRender::getCairoContext()
{
- // find a XRenderPictFormat compatible with the Drawable
- XRenderPictFormat* pVisualFormat = mrParent.GetXRenderFormat();
-
- Display* pDisplay = mrParent.GetXDisplay();
-
- cairo_surface_t* surface = nullptr;
- if (pVisualFormat)
- {
- surface = cairo_xlib_surface_create_with_xrender_format (
- pDisplay, mrParent.hDrawable_,
- ScreenOfDisplay(pDisplay, mrParent.m_nXScreen.getXScreen()),
- pVisualFormat, SAL_MAX_INT16, SAL_MAX_INT16);
- }
- else
- {
- surface = cairo_xlib_surface_create(pDisplay, mrParent.hDrawable_,
- mrParent.GetVisual().visual, SAL_MAX_INT16, SAL_MAX_INT16);
- }
-
- if (!surface)
- return nullptr;
-
- cairo_t *cr = cairo_create(surface);
- cairo_surface_destroy(surface);
+ cairo_t *cr = mrParent.getCairoContext();
//rhbz#1283420 bodge to draw and undraw something which has the side effect
//of making the mysterious xrender related problem go away
@@ -148,7 +121,7 @@ size_t X11CairoTextRender::GetHeight() const
void X11CairoTextRender::releaseCairoContext(cairo_t* cr)
{
- cairo_destroy(cr);
+ mrParent.releaseCairoContext(cr);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
More information about the Libreoffice-commits
mailing list