Mesa (mesa_7_6_branch): GLX: Complain when buggy applications call GLX 1. 3 functions.

Ian Romanick idr at kemper.freedesktop.org
Tue Sep 15 20:13:52 UTC 2009


Module: Mesa
Branch: mesa_7_6_branch
Commit: 1f309c40b8065b8729fce631540c66e4b50b84df
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1f309c40b8065b8729fce631540c66e4b50b84df

Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Tue Sep 15 13:12:22 2009 -0700

GLX: Complain when buggy applications call GLX 1.3 functions.

---

 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);
 }
 




More information about the mesa-commit mailing list