X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=fips-dispatch-gl.c;h=115405830558cdf285f9cac1b9556992fcefd860;hb=6dcb864fcfa77c4bf4eb7e1c04f00e53f9fee446;hp=cd9e35eaf0c0c08cd59f25035524ddc119642784;hpb=6475596e655063624dbf54359bd2a45de6a17dd1;p=fips diff --git a/fips-dispatch-gl.c b/fips-dispatch-gl.c index cd9e35e..1154058 100644 --- a/fips-dispatch-gl.c +++ b/fips-dispatch-gl.c @@ -41,109 +41,219 @@ 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_glGenQueries (GLsizei n, GLuint *ids) { - fips_dispatch_glGenQueries = fips_dispatch_lookup ("glGenQueries"); + check_initialized (); + resolve2 (fips_dispatch_glGenQueries, + "glGenQueries", "glGenQueriesARB") + fips_dispatch_glGenQueries (n, ids); +} - if (! fips_dispatch_glGenQueries) - fips_dispatch_glGenQueries = fips_dispatch_lookup ("glGenQueriesARB"); +PFNGLGENQUERIESPROC fips_dispatch_glGenQueries = stub_glGenQueries; - if (! fips_dispatch_glGenQueries) - unsupported ("GenQueries"); +static void +stub_glDeleteQueries (GLsizei n, const GLuint * ids) +{ + check_initialized (); + resolve2 (fips_dispatch_glDeleteQueries, + "glDeleteQueries", "glDeleteQueriesARB"); + fips_dispatch_glDeleteQueries (n, ids); } +PFNGLDELETEQUERIESPROC fips_dispatch_glDeleteQueries = stub_glDeleteQueries; + static void -stub_glGenQueries (GLsizei n, GLuint *ids) +stub_glBeginQuery (GLenum target, GLuint id) { check_initialized (); - resolve_glGenQueries (); - fips_dispatch_glGenQueries (n, ids); + resolve2 (fips_dispatch_glBeginQuery, + "glBeginQuery", "glBeginQueryARB"); + fips_dispatch_glBeginQuery (target, id); } -PFNGLGENQUERIESPROC fips_dispatch_glGenQueries = stub_glGenQueries; +PFNGLBEGINQUERYPROC fips_dispatch_glBeginQuery = stub_glBeginQuery; static void -resolve_glDeleteQueries (void) +stub_glEndQuery (GLenum target) { - fips_dispatch_glDeleteQueries = fips_dispatch_lookup ("glDeleteQueries"); + check_initialized (); + resolve2 (fips_dispatch_glEndQuery, "glEndQuery", "glEndQueryARB"); + fips_dispatch_glEndQuery (target); +} - if (! fips_dispatch_glDeleteQueries) - fips_dispatch_glDeleteQueries = fips_dispatch_lookup ("glDeleteQueriesARB"); +PFNGLENDQUERYPROC fips_dispatch_glEndQuery = stub_glEndQuery; - if (! fips_dispatch_glDeleteQueries) - unsupported ("DeleteQueries"); +static void +stub_glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint * params) +{ + check_initialized (); + resolve2 (fips_dispatch_glGetQueryObjectuiv, + "glGetQueryObjectuiv", "glGetQueryObjectuivARB"); + fips_dispatch_glGetQueryObjectuiv (id, pname, params); } +PFNGLGETQUERYOBJECTUIVPROC fips_dispatch_glGetQueryObjectuiv = + stub_glGetQueryObjectuiv; + static void -stub_glDeleteQueries (GLsizei n, const GLuint * ids) +stub_glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, + GLuint *groups) { check_initialized (); - resolve_glDeleteQueries (); - fips_dispatch_glDeleteQueries (n, ids); + resolve (fips_dispatch_glGetPerfMonitorGroupsAMD, + "glGetPerfMonitorGroupsAMD"); + fips_dispatch_glGetPerfMonitorGroupsAMD (numGroups, groupsSize, groups); } -PFNGLDELETEQUERIESPROC fips_dispatch_glDeleteQueries = stub_glDeleteQueries; +PFNGLGETPERFMONITORGROUPSAMDPROC fips_dispatch_glGetPerfMonitorGroupsAMD = + stub_glGetPerfMonitorGroupsAMD; static void -resolve_glBeginQuery (void) +stub_glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, + GLint *maxActiveCounters, + GLsizei counterSize, GLuint *counters) { - fips_dispatch_glBeginQuery = fips_dispatch_lookup ("glBeginQuery"); + check_initialized (); + resolve (fips_dispatch_glGetPerfMonitorCountersAMD, + "glGetPerfMonitorCountersAMD"); + fips_dispatch_glGetPerfMonitorCountersAMD (group, numCounters, + maxActiveCounters, + counterSize, counters); +} - if (! fips_dispatch_glBeginQuery) - fips_dispatch_glBeginQuery = fips_dispatch_lookup ("glBeginQueryARB"); +PFNGLGETPERFMONITORCOUNTERSAMDPROC fips_dispatch_glGetPerfMonitorCountersAMD = + stub_glGetPerfMonitorCountersAMD; - if (! fips_dispatch_glBeginQuery) - unsupported ("BeginQuery"); +static void +stub_glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, + GLsizei *length, GLchar *groupString) +{ + check_initialized (); + resolve (fips_dispatch_glGetPerfMonitorGroupStringAMD, + "glGetPerfMonitorGroupStringAMD"); + fips_dispatch_glGetPerfMonitorGroupStringAMD (group, bufSize, length, + groupString); } +PFNGLGETPERFMONITORGROUPSTRINGAMDPROC +fips_dispatch_glGetPerfMonitorGroupStringAMD = + stub_glGetPerfMonitorGroupStringAMD; + static void -stub_glBeginQuery (GLenum target, GLuint id) +stub_glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, + GLsizei bufSize, GLsizei *length, + GLchar *counterString) { check_initialized (); - resolve_glBeginQuery (); - fips_dispatch_glBeginQuery (target, id); + resolve (fips_dispatch_glGetPerfMonitorCounterStringAMD, + "glGetPerfMonitorCounterStringAMD"); + fips_dispatch_glGetPerfMonitorCounterStringAMD (group, counter, + bufSize, length, + counterString); } -PFNGLBEGINQUERYPROC fips_dispatch_glBeginQuery = stub_glBeginQuery; +PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC +fips_dispatch_glGetPerfMonitorCounterStringAMD = + stub_glGetPerfMonitorCounterStringAMD; static void -resolve_glEndQuery (void) +stub_glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data) { - fips_dispatch_glEndQuery = fips_dispatch_lookup ("glEndQuery"); + check_initialized (); + resolve (fips_dispatch_glGetPerfMonitorCounterInfoAMD, + "glGetPerfMonitorCounterInfoAMD"); + fips_dispatch_glGetPerfMonitorCounterInfoAMD (group, counter, + pname, data); +} - if (! fips_dispatch_glEndQuery) - fips_dispatch_glEndQuery = fips_dispatch_lookup ("glEndQueryARB"); +PFNGLGETPERFMONITORCOUNTERINFOAMDPROC +fips_dispatch_glGetPerfMonitorCounterInfoAMD = + stub_glGetPerfMonitorCounterInfoAMD; - if (! fips_dispatch_glEndQuery) - unsupported ("EndQuery"); +static void +stub_glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors) +{ + check_initialized (); + resolve (fips_dispatch_glGenPerfMonitorsAMD, "glGenPerfMonitorsAMD"); + fips_dispatch_glGenPerfMonitorsAMD (n, monitors); } +PFNGLGENPERFMONITORSAMDPROC fips_dispatch_glGenPerfMonitorsAMD = + stub_glGenPerfMonitorsAMD; + static void -stub_glEndQuery (GLenum target) +stub_glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors) { check_initialized (); - resolve_glEndQuery (); - fips_dispatch_glEndQuery (target); + resolve (fips_dispatch_glDeletePerfMonitorsAMD, + "glDeletePerfMonitorsAMD"); + fips_dispatch_glDeletePerfMonitorsAMD (n, monitors); } -PFNGLENDQUERYPROC fips_dispatch_glEndQuery = stub_glEndQuery; +PFNGLDELETEPERFMONITORSAMDPROC fips_dispatch_glDeletePerfMonitorsAMD = + stub_glDeletePerfMonitorsAMD; + +static void +stub_glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, + GLuint group, GLint numCounters, + GLuint *counterList) +{ + check_initialized (); + resolve (fips_dispatch_glSelectPerfMonitorCountersAMD, + "glSelectPerfMonitorCountersAMD"); + fips_dispatch_glSelectPerfMonitorCountersAMD (monitor, enable, group, + numCounters, counterList); +} + +PFNGLSELECTPERFMONITORCOUNTERSAMDPROC +fips_dispatch_glSelectPerfMonitorCountersAMD = + stub_glSelectPerfMonitorCountersAMD; static void -resolve_glGetQueryObjectuiv (void) +stub_glBeginPerfMonitorAMD (GLuint monitor) { - fips_dispatch_glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC) fips_dispatch_lookup ("glGetQueryObjectuivARB"); + check_initialized (); + resolve (fips_dispatch_glBeginPerfMonitorAMD, "glBeginPerfMonitorAMD"); + fips_dispatch_glBeginPerfMonitorAMD (monitor); +} + +PFNGLBEGINPERFMONITORAMDPROC fips_dispatch_glBeginPerfMonitorAMD = + stub_glBeginPerfMonitorAMD; - if (! fips_dispatch_glGetQueryObjectuiv) - unsupported ("GetQueryObjectuiv"); +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_glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint * params) +stub_glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten) { check_initialized (); - resolve_glGetQueryObjectuiv (); - fips_dispatch_glGetQueryObjectuiv (id, pname, params); + 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;