diff options
author | Daniel Manjarres <[email protected]> | 2014-06-22 09:47:58 -0700 |
---|---|---|
committer | Brian Paul <[email protected]> | 2014-10-13 22:05:58 -0600 |
commit | 291be28476ea60c6fb1eb2a882e2e25def5d3735 (patch) | |
tree | 37a44d8c091e6dd87433dd9eb53a01640d1ed89d | |
parent | 4e2cf84b1f5fd9f52dd1a12947a405a25d1e2137 (diff) |
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
about bad drawables and bad graphics contexts.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54372
Cc: [email protected]
Reviewed-by: Brian Paul <[email protected]>
-rw-r--r-- | src/glx/xfont.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/glx/xfont.c b/src/glx/xfont.c index 316c585ff3a..a086b7a03ef 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); |