[Libreoffice-commits] core.git: Branch 'feature/opengl-vcl' - 2 commits - chart2/opengl vcl/inc vcl/Library_vclplug_gen.mk vcl/opengl vcl/unx
Markus Mohrhard
markus.mohrhard at collabora.co.uk
Sun Nov 9 16:52:47 PST 2014
chart2/opengl/README.deprecated | 23 --------------------
vcl/Library_vclplug_gen.mk | 1
vcl/inc/cairotextrender.hxx | 1
vcl/opengl/README.deprecated | 23 ++++++++++++++++++++
vcl/unx/generic/gdi/cairotextrender.cxx | 1
vcl/unx/generic/gdi/salgdi.cxx | 8 ++++++-
vcl/unx/generic/gdi/x11cairotextrender.cxx | 33 +++++++++++++++++++++++++++++
vcl/unx/generic/gdi/x11cairotextrender.hxx | 13 ++++++++++-
8 files changed, 78 insertions(+), 25 deletions(-)
New commits:
commit c430827ff05fd1beac3a261adefd43d7fb344c8a
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Mon Nov 10 01:13:46 2014 +0100
move README.deprecated from chart2 to vcl
Change-Id: I077209d52805e1b8850a6702b9d88fe63acf8a0b
diff --git a/chart2/opengl/README.deprecated b/vcl/opengl/README.deprecated
similarity index 100%
rename from chart2/opengl/README.deprecated
rename to vcl/opengl/README.deprecated
commit 897d2851888a9be96630b9a274fc4a72f5b138d5
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Mon Nov 10 00:09:01 2014 +0100
implementation for OpenGL text rendering in the unx backend
Change-Id: Ib1246f361d5efd13a7e36d568641c6360495604d
diff --git a/vcl/Library_vclplug_gen.mk b/vcl/Library_vclplug_gen.mk
index bec6f4c..73e5d01 100644
--- a/vcl/Library_vclplug_gen.mk
+++ b/vcl/Library_vclplug_gen.mk
@@ -95,6 +95,7 @@ $(eval $(call gb_Library_add_exception_objects,vclplug_gen,\
vcl/unx/generic/gdi/gcach_xpeer \
vcl/unx/generic/gdi/gdiimpl \
vcl/unx/generic/gdi/pixmap \
+ vcl/unx/generic/gdi/openglx11cairotextrender \
vcl/unx/generic/gdi/salbmp \
vcl/unx/generic/gdi/salgdi2 \
vcl/unx/generic/gdi/salgdi3 \
diff --git a/vcl/inc/cairotextrender.hxx b/vcl/inc/cairotextrender.hxx
index 7bc0b2f..e5db2ab 100644
--- a/vcl/inc/cairotextrender.hxx
+++ b/vcl/inc/cairotextrender.hxx
@@ -77,6 +77,7 @@ class CairoTextRender : public TextRenderImpl
protected:
virtual GlyphCache& getPlatformGlyphCache() = 0;
virtual cairo_surface_t* getCairoSurface() = 0;
+ virtual void drawSurface(cairo_t* cr) = 0;
bool setFont( const FontSelectPattern *pEntry, int nFallbackLevel );
diff --git a/vcl/unx/generic/gdi/cairotextrender.cxx b/vcl/unx/generic/gdi/cairotextrender.cxx
index 5adbd87..5b31b92 100644
--- a/vcl/unx/generic/gdi/cairotextrender.cxx
+++ b/vcl/unx/generic/gdi/cairotextrender.cxx
@@ -341,6 +341,7 @@ void CairoTextRender::DrawServerFontLayout( const ServerFontLayout& rLayout )
aI = aNext;
}
+ drawSurface(cr);
cairo_destroy(cr);
}
diff --git a/vcl/unx/generic/gdi/salgdi.cxx b/vcl/unx/generic/gdi/salgdi.cxx
index b4df486..47b20bc 100644
--- a/vcl/unx/generic/gdi/salgdi.cxx
+++ b/vcl/unx/generic/gdi/salgdi.cxx
@@ -57,6 +57,7 @@
#include "gdiimpl.hxx"
#include "opengl/x11/gdiimpl.hxx"
#include "x11cairotextrender.hxx"
+#include "openglx11cairotextrender.hxx"
#include "generic/printergfx.hxx"
#include "xrender_peer.hxx"
@@ -66,7 +67,6 @@
#include <vcl/opengl/OpenGLHelper.hxx>
X11SalGraphics::X11SalGraphics():
- mpTextRenderImpl(new X11CairoTextRender(false, *this)),
m_pFrame(NULL),
m_pVDev(NULL),
m_pColormap(NULL),
@@ -87,9 +87,15 @@ X11SalGraphics::X11SalGraphics():
static bool bOpenGLPossible = OpenGLHelper::supportsVCLOpenGL();
bool bUseOpenGL = bOpenGLPossible ? officecfg::Office::Common::VCL::UseOpenGL::get() : false;
if (bUseOpenGL)
+ {
mpImpl.reset(new X11OpenGLSalGraphicsImpl(*this));
+ mpTextRenderImpl.reset((new OpenGLX11CairoTextRender(false, *this)));
+ }
else
+ {
+ mpTextRenderImpl.reset((new X11CairoTextRender(false, *this)));
mpImpl.reset(new X11SalGraphicsImpl(*this));
+ }
}
diff --git a/vcl/unx/generic/gdi/x11cairotextrender.cxx b/vcl/unx/generic/gdi/x11cairotextrender.cxx
index 3a21c39..2533107 100644
--- a/vcl/unx/generic/gdi/x11cairotextrender.cxx
+++ b/vcl/unx/generic/gdi/x11cairotextrender.cxx
@@ -20,6 +20,7 @@
#include "x11cairotextrender.hxx"
#include "unx/saldata.hxx"
#include "unx/saldisp.hxx"
+#include "unx/salvd.h"
#include "gcach_xpeer.hxx"
@@ -93,4 +94,36 @@ void X11CairoTextRender::clipRegion(cairo_t* cr)
}
}
+size_t X11CairoTextRender::GetWidth() const
+{
+ if( mrParent.m_pFrame )
+ return mrParent.m_pFrame->maGeometry.nWidth;
+ else if( mrParent.m_pVDev )
+ {
+ long nWidth = 0;
+ long nHeight = 0;
+ mrParent.m_pVDev->GetSize( nWidth, nHeight );
+ return nWidth;
+ }
+ return 1;
+}
+
+size_t X11CairoTextRender::GetHeight() const
+{
+ if( mrParent.m_pFrame )
+ return mrParent.m_pFrame->maGeometry.nHeight;
+ else if( mrParent.m_pVDev )
+ {
+ long nWidth = 0;
+ long nHeight = 0;
+ mrParent.m_pVDev->GetSize( nWidth, nHeight );
+ return nHeight;
+ }
+ return 1;
+}
+
+void X11CairoTextRender::drawSurface(cairo_t* /*cr*/)
+{
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/unx/generic/gdi/x11cairotextrender.hxx b/vcl/unx/generic/gdi/x11cairotextrender.hxx
index 99688d1..fb0c130 100644
--- a/vcl/unx/generic/gdi/x11cairotextrender.hxx
+++ b/vcl/unx/generic/gdi/x11cairotextrender.hxx
@@ -17,6 +17,9 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#ifndef INCLUDED_VCL_UNX_GENERIC_GDI_X11CAIROTEXTRENDER_HXX
+#define INCLUDED_VCL_UNX_GENERIC_GDI_X11CAIROTEXTRENDER_HXX value
+
#include "cairotextrender.hxx"
#include "unx/saldata.hxx"
@@ -26,14 +29,22 @@
class X11CairoTextRender : public CairoTextRender
{
-private:
+protected:
X11SalGraphics& mrParent;
+
+protected:
+ size_t GetWidth() const;
+ size_t GetHeight() const;
+
public:
X11CairoTextRender(bool bPrinter, X11SalGraphics& rParent);
virtual GlyphCache& getPlatformGlyphCache() SAL_OVERRIDE;
virtual cairo_surface_t* getCairoSurface() SAL_OVERRIDE;
virtual void clipRegion(cairo_t* cr) SAL_OVERRIDE;
+ virtual void drawSurface(cairo_t* cr) SAL_OVERRIDE;
};
+#endif
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
More information about the Libreoffice-commits
mailing list