+ GLWRAP_DEFER_WITH_RETURN (ret, glXGetProcAddressARB, func);
+
+ return ret;
+}
+
+void (*glXGetProcAddress (const GLubyte *func))(void)
+{
+ /* This comment must not be removed. It ensures that the
+ * glXGetProcAddress function ends up in our exported symbol
+ * list even though there's not otherwise any code saying:
+ *
+ * GLWRAP_DEFER_WITH_RETURN (ret, glXGetProcAddress, func);
+ */
+ return glXGetProcAddressARB(func);
+}
+
+Bool
+glXMakeCurrent (Display *dpy, GLXDrawable drawable, GLXContext ctx)
+{
+ Bool ret;
+
+ fips_dispatch_init (FIPS_API_GLX);
+
+ GLWRAP_DEFER_WITH_RETURN (ret, glXMakeCurrent, dpy, drawable, ctx);
+
+ metrics_info_init ();
+
+ metrics_set_current_op (METRICS_OP_SHADER + 0);
+ metrics_counter_start ();
+
+ return ret;
+}
+
+Bool
+glXMakeContextCurrent (Display *dpy, GLXDrawable drawable, GLXDrawable read, GLXContext ctx)
+{
+ Bool ret;
+
+ fips_dispatch_init (FIPS_API_GLX);
+
+ GLWRAP_DEFER_WITH_RETURN (ret, glXMakeContextCurrent, dpy, drawable, read, ctx);
+
+ metrics_info_init ();
+
+ metrics_set_current_op (METRICS_OP_SHADER + 0);
+ metrics_counter_start ();
+
+ return ret;