[Mesa-dev] patch: fix glxusexfont

Daniel Manjarres danmanj at gmail.com
Sun Jun 22 09:57:19 PDT 2014


Author: Daniel Manjarres <danmanj at gmail.com>
Date:   Sun Jun 22 09:47:58 2014 -0700

     glx: Fix glxUseXFont for glxWindow and glxPixmaps

     The current implementation of glxUseXFont requires creating
     a temporary pixmap and graphics context, which requires a real
     old-school X11 Window, not a glxDrawable. This patch changes
     things so that glxUseXFont will also accept a glxWindow or
     glxPixmap, and lookup the underlying X11 Drawable. Without
     this patch glxUseXFont generates a giant stream of Xerrors
     bout bad drawables and bad graphics contexts.

     Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54372

diff --git a/src/glx/xfont.c b/src/glx/xfont.c
index 316c585..8735386 100644
--- a/src/glx/xfont.c
+++ b/src/glx/xfont.c
@@ -221,6 +221,7 @@ DRI_glXUseXFont(struct glx_context *CC, Font font, int 
first, int count, int lis
     XGCValues values;
     unsigned long valuemask;
     XFontStruct *fs;
+   __GLXDRIdrawable *glxdraw;

     GLint swapbytes, lsbfirst, rowlength;
     GLint skiprows, skippixels, alignment;
@@ -233,6 +234,10 @@ DRI_glXUseXFont(struct glx_context *CC, Font font, int 
first, int count, int lis
     dpy = CC->currentDpy;
     win = CC->currentDrawable;

+   glxdraw = GetGLXDRIDrawable(CC->currentDpy, CC->currentDrawable);
+   if(glxdraw)
+          win = glxdraw->xDrawable;
+
     fs = XQueryFont(dpy, font);
     if (!fs) {
        __glXSetError(CC, GL_INVALID_VALUE);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-glx-Fix-glxUseXFont-for-glxWindow-and-glxPixmaps.patch
Type: text/x-diff
Size: 1551 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20140622/b14b162a/attachment.patch>


More information about the mesa-dev mailing list