]> git.cworth.org Git - fips/blobdiff - fips-dispatch-gl.c
Add explicit link to libpthread, to work around debugging issues
[fips] / fips-dispatch-gl.c
index cd9e35eaf0c0c08cd59f25035524ddc119642784..d8c01c357cdcc4b86d24fc400eabcdee804f21b0 100644 (file)
@@ -41,109 +41,249 @@ unsupported (const char *name)
        exit (1);
 }
 
+#define resolve(dispatch, name)                        \
+       dispatch = fips_dispatch_lookup (name); \
+       if (! dispatch)                         \
+               unsupported (name);
+
+#define resolve2(dispatch, name_a, name_b)               \
+       dispatch = fips_dispatch_lookup (name_a);         \
+       if (! dispatch)                                   \
+               dispatch = fips_dispatch_lookup (name_b); \
+       if (! dispatch)                                   \
+               unsupported (name_a);
+
 static void
-resolve_glGenQueries (void)
+stub_glGetIntegerv (GLenum pname, GLint * params)
+{
+       check_initialized ();
+       resolve (fips_dispatch_glGetIntegerv, "glGetIntegerv");
+       fips_dispatch_glGetIntegerv (pname, params);
+}
+
+PFNGLGETINTEGERVPROC fips_dispatch_glGetIntegerv = stub_glGetIntegerv;
+
+static const GLubyte *
+stub_glGetString (GLenum name)
 {
-       fips_dispatch_glGenQueries = fips_dispatch_lookup ("glGenQueries");
+       check_initialized ();
+       resolve (fips_dispatch_glGetString, "glGetString");
+       return fips_dispatch_glGetString (name);
+}
 
-       if (! fips_dispatch_glGenQueries)
-               fips_dispatch_glGenQueries = fips_dispatch_lookup ("glGenQueriesARB");
+PFNGLGETSTRINGPROC fips_dispatch_glGetString = stub_glGetString;
 
-       if (! fips_dispatch_glGenQueries)
-               unsupported ("GenQueries");
+static const GLubyte *
+stub_glGetStringi (GLenum name, GLuint index)
+{
+       check_initialized ();
+       resolve (fips_dispatch_glGetStringi, "glGetStringi");
+       return fips_dispatch_glGetStringi (name, index);
 }
 
+PFNGLGETSTRINGIPROC fips_dispatch_glGetStringi = stub_glGetStringi;
+
 static void
 stub_glGenQueries (GLsizei n, GLuint *ids)
 {
        check_initialized ();
-       resolve_glGenQueries ();
+       resolve2 (fips_dispatch_glGenQueries,
+                 "glGenQueries", "glGenQueriesARB")
        fips_dispatch_glGenQueries (n, ids);
 }
 
 PFNGLGENQUERIESPROC fips_dispatch_glGenQueries = stub_glGenQueries;
 
 static void
-resolve_glDeleteQueries (void)
+stub_glDeleteQueries (GLsizei n, const GLuint * ids)
 {
-       fips_dispatch_glDeleteQueries = fips_dispatch_lookup ("glDeleteQueries");
+       check_initialized ();
+       resolve2 (fips_dispatch_glDeleteQueries,
+                 "glDeleteQueries", "glDeleteQueriesARB");
+       fips_dispatch_glDeleteQueries (n, ids);
+}
 
-       if (! fips_dispatch_glDeleteQueries)
-               fips_dispatch_glDeleteQueries = fips_dispatch_lookup ("glDeleteQueriesARB");
+PFNGLDELETEQUERIESPROC fips_dispatch_glDeleteQueries = stub_glDeleteQueries;
 
-       if (! fips_dispatch_glDeleteQueries)
-               unsupported ("DeleteQueries");
+static void
+stub_glBeginQuery (GLenum target, GLuint id)
+{
+       check_initialized ();
+       resolve2 (fips_dispatch_glBeginQuery,
+                 "glBeginQuery", "glBeginQueryARB");
+       fips_dispatch_glBeginQuery (target, id);
 }
 
+PFNGLBEGINQUERYPROC fips_dispatch_glBeginQuery = stub_glBeginQuery;
+
 static void
-stub_glDeleteQueries (GLsizei n, const GLuint * ids)
+stub_glEndQuery (GLenum target)
 {
        check_initialized ();
-       resolve_glDeleteQueries ();
-       fips_dispatch_glDeleteQueries (n, ids);
+       resolve2 (fips_dispatch_glEndQuery, "glEndQuery", "glEndQueryARB");
+       fips_dispatch_glEndQuery (target);
 }
 
-PFNGLDELETEQUERIESPROC fips_dispatch_glDeleteQueries = stub_glDeleteQueries;
+PFNGLENDQUERYPROC fips_dispatch_glEndQuery = stub_glEndQuery;
 
 static void
-resolve_glBeginQuery (void)
+stub_glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint * params)
 {
-       fips_dispatch_glBeginQuery = fips_dispatch_lookup ("glBeginQuery");
+       check_initialized ();
+       resolve2 (fips_dispatch_glGetQueryObjectuiv,
+                 "glGetQueryObjectuiv", "glGetQueryObjectuivARB");
+       fips_dispatch_glGetQueryObjectuiv (id, pname, params);
+}
 
-       if (! fips_dispatch_glBeginQuery)
-               fips_dispatch_glBeginQuery = fips_dispatch_lookup ("glBeginQueryARB");
+PFNGLGETQUERYOBJECTUIVPROC fips_dispatch_glGetQueryObjectuiv =
+       stub_glGetQueryObjectuiv;
 
-       if (! fips_dispatch_glBeginQuery)
-               unsupported ("BeginQuery");
+static void
+stub_glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize,
+                               GLuint *groups)
+{
+       check_initialized ();
+       resolve (fips_dispatch_glGetPerfMonitorGroupsAMD,
+                "glGetPerfMonitorGroupsAMD");
+       fips_dispatch_glGetPerfMonitorGroupsAMD (numGroups, groupsSize, groups);
 }
 
+PFNGLGETPERFMONITORGROUPSAMDPROC fips_dispatch_glGetPerfMonitorGroupsAMD =
+       stub_glGetPerfMonitorGroupsAMD;
+
 static void
-stub_glBeginQuery (GLenum target, GLuint id)
+stub_glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters,
+                                 GLint *maxActiveCounters,
+                                 GLsizei counterSize, GLuint *counters)
 {
        check_initialized ();
-       resolve_glBeginQuery ();
-       fips_dispatch_glBeginQuery (target, id);
+       resolve (fips_dispatch_glGetPerfMonitorCountersAMD,
+                "glGetPerfMonitorCountersAMD");
+       fips_dispatch_glGetPerfMonitorCountersAMD (group, numCounters,
+                                                  maxActiveCounters,
+                                                  counterSize, counters);
 }
 
-PFNGLBEGINQUERYPROC fips_dispatch_glBeginQuery = stub_glBeginQuery;
+PFNGLGETPERFMONITORCOUNTERSAMDPROC fips_dispatch_glGetPerfMonitorCountersAMD =
+       stub_glGetPerfMonitorCountersAMD;
 
 static void
-resolve_glEndQuery (void)
+stub_glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize,
+                                    GLsizei *length, GLchar *groupString)
 {
-       fips_dispatch_glEndQuery = fips_dispatch_lookup ("glEndQuery");
+       check_initialized ();
+       resolve (fips_dispatch_glGetPerfMonitorGroupStringAMD,
+                "glGetPerfMonitorGroupStringAMD");
+       fips_dispatch_glGetPerfMonitorGroupStringAMD (group, bufSize, length,
+                                                     groupString);
+}
 
-       if (! fips_dispatch_glEndQuery)
-               fips_dispatch_glEndQuery = fips_dispatch_lookup ("glEndQueryARB");
+PFNGLGETPERFMONITORGROUPSTRINGAMDPROC
+fips_dispatch_glGetPerfMonitorGroupStringAMD =
+       stub_glGetPerfMonitorGroupStringAMD;
 
-       if (! fips_dispatch_glEndQuery)
-               unsupported ("EndQuery");
+static void
+stub_glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter,
+                                      GLsizei bufSize, GLsizei *length,
+                                      GLchar *counterString)
+{
+       check_initialized ();
+       resolve (fips_dispatch_glGetPerfMonitorCounterStringAMD,
+                "glGetPerfMonitorCounterStringAMD");
+       fips_dispatch_glGetPerfMonitorCounterStringAMD (group, counter,
+                                                       bufSize, length,
+                                                       counterString);
 }
 
+PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC
+fips_dispatch_glGetPerfMonitorCounterStringAMD =
+       stub_glGetPerfMonitorCounterStringAMD;
+
 static void
-stub_glEndQuery (GLenum target)
+stub_glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data)
 {
        check_initialized ();
-       resolve_glEndQuery ();
-       fips_dispatch_glEndQuery (target);
+       resolve (fips_dispatch_glGetPerfMonitorCounterInfoAMD,
+                "glGetPerfMonitorCounterInfoAMD");
+       fips_dispatch_glGetPerfMonitorCounterInfoAMD (group, counter,
+                                                     pname, data);
 }
 
-PFNGLENDQUERYPROC fips_dispatch_glEndQuery = stub_glEndQuery;
+PFNGLGETPERFMONITORCOUNTERINFOAMDPROC
+fips_dispatch_glGetPerfMonitorCounterInfoAMD =
+       stub_glGetPerfMonitorCounterInfoAMD;
 
 static void
-resolve_glGetQueryObjectuiv (void)
+stub_glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors)
 {
-       fips_dispatch_glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC) fips_dispatch_lookup ("glGetQueryObjectuivARB");
+       check_initialized ();
+       resolve (fips_dispatch_glGenPerfMonitorsAMD, "glGenPerfMonitorsAMD");
+       fips_dispatch_glGenPerfMonitorsAMD (n, monitors);
+}
 
-       if (! fips_dispatch_glGetQueryObjectuiv)
-               unsupported ("GetQueryObjectuiv");
+PFNGLGENPERFMONITORSAMDPROC fips_dispatch_glGenPerfMonitorsAMD =
+       stub_glGenPerfMonitorsAMD;
+
+static void
+stub_glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors)
+{
+       check_initialized ();
+       resolve (fips_dispatch_glDeletePerfMonitorsAMD,
+                "glDeletePerfMonitorsAMD");
+       fips_dispatch_glDeletePerfMonitorsAMD (n, monitors);
 }
 
+PFNGLDELETEPERFMONITORSAMDPROC fips_dispatch_glDeletePerfMonitorsAMD =
+       stub_glDeletePerfMonitorsAMD;
+
 static void
-stub_glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint * params)
+stub_glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable,
+                                    GLuint group, GLint numCounters,
+                                    GLuint *counterList)
 {
        check_initialized ();
-       resolve_glGetQueryObjectuiv ();
-       fips_dispatch_glGetQueryObjectuiv (id, pname, params);
+       resolve (fips_dispatch_glSelectPerfMonitorCountersAMD,
+                "glSelectPerfMonitorCountersAMD");
+       fips_dispatch_glSelectPerfMonitorCountersAMD (monitor, enable, group,
+                                                     numCounters, counterList);
+}
+
+PFNGLSELECTPERFMONITORCOUNTERSAMDPROC
+fips_dispatch_glSelectPerfMonitorCountersAMD =
+       stub_glSelectPerfMonitorCountersAMD;
+
+static void
+stub_glBeginPerfMonitorAMD (GLuint monitor)
+{
+       check_initialized ();
+       resolve (fips_dispatch_glBeginPerfMonitorAMD, "glBeginPerfMonitorAMD");
+       fips_dispatch_glBeginPerfMonitorAMD (monitor);
+}
+
+PFNGLBEGINPERFMONITORAMDPROC fips_dispatch_glBeginPerfMonitorAMD =
+       stub_glBeginPerfMonitorAMD;
+
+static void
+stub_glEndPerfMonitorAMD (GLuint monitor)
+{
+       check_initialized ();
+       resolve (fips_dispatch_glEndPerfMonitorAMD, "glEndPerfMonitorAMD");
+       fips_dispatch_glEndPerfMonitorAMD (monitor);
+}
+
+PFNGLENDPERFMONITORAMDPROC fips_dispatch_glEndPerfMonitorAMD =
+       stub_glEndPerfMonitorAMD;
+
+static void
+stub_glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten)
+{
+       check_initialized ();
+       resolve (fips_dispatch_glGetPerfMonitorCounterDataAMD,
+                "glGetPerfMonitorCounterDataAMD");
+       fips_dispatch_glGetPerfMonitorCounterDataAMD (monitor, pname, dataSize,
+                                                     data, bytesWritten);
 }
 
-PFNGLGETQUERYOBJECTUIVPROC fips_dispatch_glGetQueryObjectuiv = stub_glGetQueryObjectuiv;
+PFNGLGETPERFMONITORCOUNTERDATAAMDPROC
+fips_dispatch_glGetPerfMonitorCounterDataAMD =
+       stub_glGetPerfMonitorCounterDataAMD;