1
/**************************************************************************
3
* Copyright 2015 VMware, Inc.
6
* Permission is hereby granted, free of charge, to any person obtaining a
7
* copy of this software and associated documentation files (the
8
* "Software"), to deal in the Software without restriction, including
9
* without limitation the rights to use, copy, modify, merge, publish,
10
* distribute, sub license, and/or sell copies of the Software, and to
11
* permit persons to whom the Software is furnished to do so, subject to
12
* the following conditions:
14
* The above copyright notice and this permission notice (including the
15
* next paragraph) shall be included in all copies or substantial portions
18
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
21
* IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
22
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26
**************************************************************************/
29
* No-op GL API functions.
31
* Some OpenGL apps (like Viewperf12) call wglGetProcAddress() to get
32
* a pointer to an extension function, get a NULL pointer, but don't bother
33
* to check for NULL before jumping through the pointer. This causes a
36
* As a work-around we provide some no-op functions here to avoid those
41
#include "stw_nopfuncs.h"
42
#include "util/u_debug.h"
46
warning(const char *name)
48
/* use name+4 to skip "nop_" prefix */
49
_debug_printf("Application calling unsupported %s function\n", name+4);
53
nop_glBindMultiTextureEXT(GLenum texunit, GLenum target, GLuint texture)
59
nop_glColor3hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue)
65
nop_glColor3hvNV(const GLhalfNV *v)
71
nop_glColor4hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha)
77
nop_glColor4hvNV(const GLhalfNV *v)
83
nop_glDisableClientStateIndexedEXT(GLenum array, GLuint index)
89
nop_glEnableClientStateIndexedEXT(GLenum array, GLuint index)
95
nop_glFogCoordhNV(GLhalfNV fog)
101
nop_glFogCoordhvNV(const GLhalfNV *fog)
107
nop_glGetNamedBufferParameterivEXT(GLuint buffer, GLenum pname, GLint *params)
113
nop_glGetNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, GLsizeiptr size, void *data)
118
static void *APIENTRY
119
nop_glMapNamedBufferEXT(GLuint buffer, GLenum access)
126
nop_glMatrixLoadfEXT(GLenum mode, const GLfloat *m)
132
nop_glMatrixLoadIdentityEXT(GLenum mode)
138
nop_glMultiTexCoord1hNV(GLenum target, GLhalfNV s)
144
nop_glMultiTexCoord1hvNV(GLenum target, const GLhalfNV *v)
150
nop_glMultiTexCoord2hNV(GLenum target, GLhalfNV s, GLhalfNV t)
156
nop_glMultiTexCoord2hvNV(GLenum target, const GLhalfNV *v)
162
nop_glMultiTexCoord3hNV(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r)
168
nop_glMultiTexCoord3hvNV(GLenum target, const GLhalfNV *v)
174
nop_glMultiTexCoord4hNV(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q)
180
nop_glMultiTexCoord4hvNV(GLenum target, const GLhalfNV *v)
186
nop_glMultiTexCoordPointerEXT(GLenum texunit, GLint size, GLenum type, GLsizei stride, const void *pointer)
192
nop_glMultiTexEnvfEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat param)
198
nop_glMultiTexEnvfvEXT(GLenum texunit, GLenum target, GLenum pname, const GLfloat *params)
204
nop_glMultiTexEnviEXT(GLenum texunit, GLenum target, GLenum pname, GLint param)
210
nop_glMultiTexGenfvEXT(GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params)
216
nop_glMultiTexGeniEXT(GLenum texunit, GLenum coord, GLenum pname, GLint param)
222
nop_glNamedBufferDataEXT(GLuint buffer, GLsizeiptr size, const void *data, GLenum usage)
228
nop_glNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data)
234
nop_glNamedProgramLocalParameter4fvEXT(GLuint program, GLenum target, GLuint index, const GLfloat *params)
240
nop_glNamedProgramLocalParameters4fvEXT(GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params)
246
nop_glNormal3hNV(GLhalfNV nx, GLhalfNV ny, GLhalfNV nz)
252
nop_glNormal3hvNV(const GLhalfNV *v)
258
nop_glPatchParameterfv(GLenum pname, const GLfloat *values)
264
nop_glPatchParameteri(GLenum pname, GLint value)
270
nop_glSecondaryColor3hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue)
276
nop_glSecondaryColor3hvNV(const GLhalfNV *v)
282
nop_glTexCoord1hNV(GLhalfNV s)
288
nop_glTexCoord1hvNV(const GLhalfNV *v)
294
nop_glTexCoord2hNV(GLhalfNV s, GLhalfNV t)
300
nop_glTexCoord2hvNV(const GLhalfNV *v)
306
nop_glTexCoord3hNV(GLhalfNV s, GLhalfNV t, GLhalfNV r)
312
nop_glTexCoord3hvNV(const GLhalfNV *v)
318
nop_glTexCoord4hNV(GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q)
324
nop_glTexCoord4hvNV(const GLhalfNV *v)
330
nop_glTextureParameterfEXT(GLuint texture, GLenum target, GLenum pname, GLfloat param)
336
nop_glTextureParameterfvEXT(GLuint texture, GLenum target, GLenum pname, const GLfloat *params)
342
nop_glTextureParameteriEXT(GLuint texture, GLenum target, GLenum pname, GLint param)
347
static GLboolean APIENTRY
348
nop_glUnmapNamedBufferEXT(GLuint buffer)
355
nop_glVertex2hNV(GLhalfNV x, GLhalfNV y)
361
nop_glVertex2hvNV(const GLhalfNV *v)
367
nop_glVertex3hNV(GLhalfNV x, GLhalfNV y, GLhalfNV z)
373
nop_glVertex3hvNV(const GLhalfNV *v)
379
nop_glVertex4hNV(GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w)
385
nop_glVertex4hvNV(const GLhalfNV *v)
392
stw_get_nop_function(const char *name)
398
{ "glBindMultiTextureEXT", (PROC) nop_glBindMultiTextureEXT },
399
{ "glColor3hNV", (PROC) nop_glColor3hNV },
400
{ "glColor3hvNV", (PROC) nop_glColor3hvNV },
401
{ "glColor4hNV", (PROC) nop_glColor4hNV },
402
{ "glColor4hvNV", (PROC) nop_glColor4hvNV },
403
{ "glDisableClientStateIndexedEXT", (PROC) nop_glDisableClientStateIndexedEXT },
404
{ "glEnableClientStateIndexedEXT", (PROC) nop_glEnableClientStateIndexedEXT },
405
{ "glFogCoordhNV", (PROC) nop_glFogCoordhNV },
406
{ "glFogCoordhvNV", (PROC) nop_glFogCoordhvNV },
407
{ "glGetNamedBufferParameterivEXT", (PROC) nop_glGetNamedBufferParameterivEXT },
408
{ "glGetNamedBufferSubDataEXT", (PROC) nop_glGetNamedBufferSubDataEXT },
409
{ "glMapNamedBufferEXT", (PROC) nop_glMapNamedBufferEXT },
410
{ "glMatrixLoadfEXT", (PROC) nop_glMatrixLoadfEXT },
411
{ "glMatrixLoadIdentityEXT", (PROC) nop_glMatrixLoadIdentityEXT },
412
{ "glMultiTexCoord1hNV", (PROC) nop_glMultiTexCoord1hNV },
413
{ "glMultiTexCoord1hvNV", (PROC) nop_glMultiTexCoord1hvNV },
414
{ "glMultiTexCoord2hNV", (PROC) nop_glMultiTexCoord2hNV },
415
{ "glMultiTexCoord2hvNV", (PROC) nop_glMultiTexCoord2hvNV },
416
{ "glMultiTexCoord3hNV", (PROC) nop_glMultiTexCoord3hNV },
417
{ "glMultiTexCoord3hvNV", (PROC) nop_glMultiTexCoord3hvNV },
418
{ "glMultiTexCoord4hNV", (PROC) nop_glMultiTexCoord4hNV },
419
{ "glMultiTexCoord4hvNV", (PROC) nop_glMultiTexCoord4hvNV },
420
{ "glMultiTexCoordPointerEXT", (PROC) nop_glMultiTexCoordPointerEXT },
421
{ "glMultiTexEnvfEXT", (PROC) nop_glMultiTexEnvfEXT },
422
{ "glMultiTexEnvfvEXT", (PROC) nop_glMultiTexEnvfvEXT },
423
{ "glMultiTexEnviEXT", (PROC) nop_glMultiTexEnviEXT },
424
{ "glMultiTexGenfvEXT", (PROC) nop_glMultiTexGenfvEXT },
425
{ "glMultiTexGeniEXT", (PROC) nop_glMultiTexGeniEXT },
426
{ "glNamedBufferDataEXT", (PROC) nop_glNamedBufferDataEXT },
427
{ "glNamedBufferSubDataEXT", (PROC) nop_glNamedBufferSubDataEXT },
428
{ "glNamedProgramLocalParameter4fvEXT", (PROC) nop_glNamedProgramLocalParameter4fvEXT },
429
{ "glNamedProgramLocalParameters4fvEXT", (PROC) nop_glNamedProgramLocalParameters4fvEXT },
430
{ "glNormal3hNV", (PROC) nop_glNormal3hNV },
431
{ "glNormal3hvNV", (PROC) nop_glNormal3hvNV },
432
{ "glPatchParameterfv", (PROC) nop_glPatchParameterfv },
433
{ "glPatchParameteri", (PROC) nop_glPatchParameteri },
434
{ "glSecondaryColor3hNV", (PROC) nop_glSecondaryColor3hNV },
435
{ "glSecondaryColor3hvNV", (PROC) nop_glSecondaryColor3hvNV },
436
{ "glTexCoord1hNV", (PROC) nop_glTexCoord1hNV },
437
{ "glTexCoord1hvNV", (PROC) nop_glTexCoord1hvNV },
438
{ "glTexCoord2hNV", (PROC) nop_glTexCoord2hNV },
439
{ "glTexCoord2hvNV", (PROC) nop_glTexCoord2hvNV },
440
{ "glTexCoord3hNV", (PROC) nop_glTexCoord3hNV },
441
{ "glTexCoord3hvNV", (PROC) nop_glTexCoord3hvNV },
442
{ "glTexCoord4hNV", (PROC) nop_glTexCoord4hNV },
443
{ "glTexCoord4hvNV", (PROC) nop_glTexCoord4hvNV },
444
{ "glTextureParameterfEXT", (PROC) nop_glTextureParameterfEXT },
445
{ "glTextureParameterfvEXT", (PROC) nop_glTextureParameterfvEXT },
446
{ "glTextureParameteriEXT", (PROC) nop_glTextureParameteriEXT },
447
{ "glUnmapNamedBufferEXT", (PROC) nop_glUnmapNamedBufferEXT },
448
{ "glVertex2hNV", (PROC) nop_glVertex2hNV },
449
{ "glVertex2hvNV", (PROC) nop_glVertex2hvNV },
450
{ "glVertex3hNV", (PROC) nop_glVertex3hNV },
451
{ "glVertex3hvNV", (PROC) nop_glVertex3hvNV },
452
{ "glVertex4hNV", (PROC) nop_glVertex4hNV },
453
{ "glVertex4hvNV", (PROC) nop_glVertex4hvNV },
459
for (i = 0; table[i].name; i++) {
460
if (strcmp(table[i].name, name) == 0)