| @@ -40,6 +40,23 @@ | |||
| #include "glcontextmodes.h" | |||
| /** | |||
| * 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. | |||
| * | |||
| @@ -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); | |||
| } | |||