diff options
author | Ian Romanick <ian.d.romanick@intel.com> | 2009-09-15 13:12:22 -0700 |
---|---|---|
committer | Ian Romanick <ian.d.romanick@intel.com> | 2009-09-15 13:12:22 -0700 |
commit | 1f309c40b8065b8729fce631540c66e4b50b84df (patch) | |
tree | 4db8936d9fa79201bf01cc40d256864b80ce3208 /src/glx | |
parent | 799631acb18be93afab29e27241cde3780672e98 (diff) | |
download | external_mesa3d-1f309c40b8065b8729fce631540c66e4b50b84df.zip external_mesa3d-1f309c40b8065b8729fce631540c66e4b50b84df.tar.gz external_mesa3d-1f309c40b8065b8729fce631540c66e4b50b84df.tar.bz2 |
GLX: Complain when buggy applications call GLX 1.3 functions.
Diffstat (limited to 'src/glx')
-rw-r--r-- | src/glx/x11/glx_pbuffer.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/glx/x11/glx_pbuffer.c b/src/glx/x11/glx_pbuffer.c index a06331f..37459f8 100644 --- a/src/glx/x11/glx_pbuffer.c +++ b/src/glx/x11/glx_pbuffer.c @@ -41,6 +41,23 @@ /** + * Emit a warning when clients use GLX 1.3 functions on pre-1.3 systems. + */ +static void +warn_GLX_1_3(Display *dpy, const char *function_name) +{ + __GLXdisplayPrivate *priv = __glXInitialize(dpy); + + if (priv->minorVersion < 3) { + fprintf(stderr, + "WARNING: Application calling GLX 1.3 function \"%s\" " + "when GLX 1.3 is not supported! This is an application bug!\n", + function_name); + } +} + + +/** * Change a drawable's attribute. * * This function is used to implement \c glXSelectEvent and @@ -559,6 +576,8 @@ glXCreatePbuffer(Display * dpy, GLXFBConfig config, const int *attrib_list) width = 0; height = 0; + warn_GLX_1_3(dpy, __func__); + for (i = 0; attrib_list[i * 2]; i++) { switch (attrib_list[i * 2]) { case GLX_PBUFFER_WIDTH: @@ -592,6 +611,7 @@ PUBLIC void glXQueryDrawable(Display * dpy, GLXDrawable drawable, int attribute, unsigned int *value) { + warn_GLX_1_3(dpy, __func__); GetDrawableAttribute(dpy, drawable, attribute, value); } @@ -645,6 +665,8 @@ PUBLIC GLXPixmap glXCreatePixmap(Display * dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list) { + warn_GLX_1_3(dpy, __func__); + return CreateDrawable(dpy, (__GLcontextModes *) config, (Drawable) pixmap, attrib_list, X_GLXCreatePixmap); } @@ -654,6 +676,8 @@ PUBLIC GLXWindow glXCreateWindow(Display * dpy, GLXFBConfig config, Window win, const int *attrib_list) { + warn_GLX_1_3(dpy, __func__); + return CreateDrawable(dpy, (__GLcontextModes *) config, (Drawable) win, attrib_list, X_GLXCreateWindow); } @@ -662,6 +686,8 @@ glXCreateWindow(Display * dpy, GLXFBConfig config, Window win, PUBLIC void glXDestroyPixmap(Display * dpy, GLXPixmap pixmap) { + warn_GLX_1_3(dpy, __func__); + DestroyDrawable(dpy, (GLXDrawable) pixmap, X_GLXDestroyPixmap); } @@ -669,6 +695,8 @@ glXDestroyPixmap(Display * dpy, GLXPixmap pixmap) PUBLIC void glXDestroyWindow(Display * dpy, GLXWindow win) { + warn_GLX_1_3(dpy, __func__); + DestroyDrawable(dpy, (GLXDrawable) win, X_GLXDestroyWindow); } |