X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=fips-dispatch-gl.c;h=d8c01c357cdcc4b86d24fc400eabcdee804f21b0;hb=47739542f4ffba033bb70a8f58d1a056889f717e;hp=cd9e35eaf0c0c08cd59f25035524ddc119642784;hpb=6475596e655063624dbf54359bd2a45de6a17dd1;p=fips diff --git a/fips-dispatch-gl.c b/fips-dispatch-gl.c index cd9e35e..d8c01c3 100644 --- a/fips-dispatch-gl.c +++ b/fips-dispatch-gl.c @@ -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;