aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver/mi
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2017-02-09 14:05:57 +0100
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2017-04-10 16:09:20 +0200
commitf4c80a78ce0e5648334fc43e5c93a068ed3ec5be (patch)
tree109fac35d5025730fc3bbce7b135118b233878e5 /nx-X11/programs/Xserver/mi
parentf743f9f743362c891f049a514cdcf3d39546194b (diff)
downloadnx-libs-f4c80a78ce0e5648334fc43e5c93a068ed3ec5be.tar.gz
nx-libs-f4c80a78ce0e5648334fc43e5c93a068ed3ec5be.tar.bz2
nx-libs-f4c80a78ce0e5648334fc43e5c93a068ed3ec5be.zip
Xserver: Support building against libXfont2 (v2) API and old libXfont(1) API alike.
Fixes ArcticaProject/nx-libs#296. Inspired by the following X.org commit. Other than X.org, we will continue support for building nx-libs against libXfont1 for a while. commit 05a793f5b3c40747d5a92a076def7f4fb673c7e7 Author: Keith Packard <keithp@keithp.com> Date: Tue Sep 1 18:50:55 2015 -0700 dix: Switch to the libXfont2 API (v2) This new libXfont API eliminates exposing internal X server symbols to the font library, replacing those with a struct full of the entire API needed to use that library. v2: Use libXfont2 instead of libXfont_2 Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
Diffstat (limited to 'nx-X11/programs/Xserver/mi')
-rw-r--r--nx-X11/programs/Xserver/mi/Imakefile3
-rw-r--r--nx-X11/programs/Xserver/mi/miglblt.c12
2 files changed, 14 insertions, 1 deletions
diff --git a/nx-X11/programs/Xserver/mi/Imakefile b/nx-X11/programs/Xserver/mi/Imakefile
index def061051..de7015c73 100644
--- a/nx-X11/programs/Xserver/mi/Imakefile
+++ b/nx-X11/programs/Xserver/mi/Imakefile
@@ -179,6 +179,9 @@ NormalLibraryTarget(cbrt,cbrt.o)
SpecialCObjectRule(miinitext,$(ICONFIGFILES),$(EXT_DEFINES))
SpecialCObjectRule(miscrinit,$(ICONFIGFILES),$(EXT_DEFINES))
+SpecialCObjectRule(miglblt,$(ICONFIGFILES),$(FONT_DEFINES))
+SpecialCObjectRule(mipolytext,$(ICONFIGFILES),$(FONT_DEFINES))
+
#ifdef ItsyCompilerBug
SpecialCObjectRule(mipolycon,$(_NOOP_),-O0)
#endif
diff --git a/nx-X11/programs/Xserver/mi/miglblt.c b/nx-X11/programs/Xserver/mi/miglblt.c
index e317541a4..60c28fad4 100644
--- a/nx-X11/programs/Xserver/mi/miglblt.c
+++ b/nx-X11/programs/Xserver/mi/miglblt.c
@@ -55,6 +55,11 @@ SOFTWARE.
#include <nx-X11/Xproto.h>
#include "misc.h"
#include <X11/fonts/fontstruct.h>
+#ifdef HAS_XFONT2
+# include <X11/fonts/libxfont2.h>
+#else
+# include <X11/fonts/fontutil.h>
+#endif /* HAS_XFONT2 */
#include "dixfontstr.h"
#include "gcstruct.h"
#include "windowstr.h"
@@ -203,13 +208,18 @@ miImageGlyphBlt(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase)
CharInfoPtr *ppci; /* array of character info */
void *pglyphBase; /* start of array of glyphs */
{
- ExtentInfoRec info; /* used by QueryGlyphExtents() */
+ ExtentInfoRec info; /* used by xfont2_query_glyph_extents (libXfont2)
+ resp. QueryGlyphExtents() (libXfont1) */
XID gcvals[3];
int oldAlu, oldFS;
unsigned long oldFG;
xRectangle backrect;
+#ifdef HAS_XFONT2
+ xfont2_query_glyph_extents(pGC->font, ppci, (unsigned long) nglyph, &info);
+#else
QueryGlyphExtents(pGC->font, ppci, (unsigned long)nglyph, &info);
+#endif /* HAS_XFONT2 */
if (info.overallWidth >= 0)
{