mesa/tests: Add tests for the generated shared-glapi dispatch table
These are largely based on the src/mapi/glapi/tests. However, shared-glapi provides less external visibility into the dispatch table, so there is less to test. Also, shared-glapi does not implement _glapi_get_proc_name, so that test was removed. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
parent
d9f899bb93
commit
45d3d0ad21
|
@ -26,6 +26,7 @@ doxygen:
|
|||
|
||||
check-local:
|
||||
$(MAKE) -C src/mapi/glapi/tests check
|
||||
$(MAKE) -C src/mapi/shared-glapi/tests check
|
||||
$(MAKE) -C src/mesa/main/tests check
|
||||
$(MAKE) -C src/glsl/tests check
|
||||
$(MAKE) -C src/glx/tests check
|
||||
|
|
|
@ -2153,6 +2153,7 @@ AC_CONFIG_FILES([configs/current
|
|||
src/mapi/glapi/gen/Makefile
|
||||
src/mapi/shared-glapi/Makefile
|
||||
src/mapi/glapi/tests/Makefile
|
||||
src/mapi/shared-glapi/tests/Makefile
|
||||
src/gtest/Makefile
|
||||
src/mesa/Makefile
|
||||
src/mesa/libdricore/Makefile
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
/Makefile
|
||||
/glapi-test
|
|
@ -0,0 +1,17 @@
|
|||
if HAVE_SHARED_GLAPI
|
||||
AM_CPPFLAGS = \
|
||||
-I$(top_builddir)/src/gtest/include \
|
||||
-I$(top_builddir)/src/mapi \
|
||||
-I$(top_builddir)/include
|
||||
|
||||
TESTS = shared-glapi-test
|
||||
check_PROGRAMS = shared-glapi-test
|
||||
|
||||
shared_glapi_test_SOURCES = \
|
||||
check_table.cpp
|
||||
|
||||
shared_glapi_test_LDADD = \
|
||||
$(top_builddir)/src/mapi/shared-glapi/libglapi.la \
|
||||
$(top_builddir)/src/gtest/libgtest.la \
|
||||
-lpthread
|
||||
endif
|
|
@ -0,0 +1,471 @@
|
|||
/*
|
||||
* Copyright © 2012 Intel Corporation
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the next
|
||||
* paragraph) shall be included in all copies or substantial portions of the
|
||||
* Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
#include <GL/gl.h>
|
||||
|
||||
extern "C" {
|
||||
#include "glapi/glapi.h"
|
||||
#include "glapi/glapitable.h"
|
||||
}
|
||||
|
||||
struct name_offset {
|
||||
const char *name;
|
||||
int offset;
|
||||
};
|
||||
|
||||
extern const struct name_offset linux_gl_abi[];
|
||||
|
||||
TEST(GetProcAddress, ABIOffsetByName)
|
||||
{
|
||||
/* 408 functions have had their locations in the dispatch table set since
|
||||
* the dawn of time. Verify that all of these functions are at the correct
|
||||
* locations.
|
||||
*/
|
||||
for (unsigned i = 0; linux_gl_abi[i].name != NULL; i++) {
|
||||
EXPECT_EQ(linux_gl_abi[i].offset,
|
||||
_glapi_get_proc_offset(linux_gl_abi[i].name))
|
||||
<< "function name: " << linux_gl_abi[i].name;
|
||||
}
|
||||
}
|
||||
|
||||
TEST(GetProcAddress, TableBigEnoughForABI)
|
||||
{
|
||||
/* FINISHME: This should check that the dispatch table is large enough to
|
||||
* FINISHME: hold all of the unique functions for OpenGL 1.2, OpenGL ES
|
||||
* FINISHME: 1.1, and OpenGL ES 2.0.
|
||||
*/
|
||||
EXPECT_LT(408u, _glapi_get_dispatch_table_size());
|
||||
}
|
||||
|
||||
const struct name_offset linux_gl_abi[] = {
|
||||
{ "glNewList", 0 },
|
||||
{ "glEndList", 1 },
|
||||
{ "glCallList", 2 },
|
||||
{ "glCallLists", 3 },
|
||||
{ "glDeleteLists", 4 },
|
||||
{ "glGenLists", 5 },
|
||||
{ "glListBase", 6 },
|
||||
{ "glBegin", 7 },
|
||||
{ "glBitmap", 8 },
|
||||
{ "glColor3b", 9 },
|
||||
{ "glColor3bv", 10 },
|
||||
{ "glColor3d", 11 },
|
||||
{ "glColor3dv", 12 },
|
||||
{ "glColor3f", 13 },
|
||||
{ "glColor3fv", 14 },
|
||||
{ "glColor3i", 15 },
|
||||
{ "glColor3iv", 16 },
|
||||
{ "glColor3s", 17 },
|
||||
{ "glColor3sv", 18 },
|
||||
{ "glColor3ub", 19 },
|
||||
{ "glColor3ubv", 20 },
|
||||
{ "glColor3ui", 21 },
|
||||
{ "glColor3uiv", 22 },
|
||||
{ "glColor3us", 23 },
|
||||
{ "glColor3usv", 24 },
|
||||
{ "glColor4b", 25 },
|
||||
{ "glColor4bv", 26 },
|
||||
{ "glColor4d", 27 },
|
||||
{ "glColor4dv", 28 },
|
||||
{ "glColor4f", 29 },
|
||||
{ "glColor4fv", 30 },
|
||||
{ "glColor4i", 31 },
|
||||
{ "glColor4iv", 32 },
|
||||
{ "glColor4s", 33 },
|
||||
{ "glColor4sv", 34 },
|
||||
{ "glColor4ub", 35 },
|
||||
{ "glColor4ubv", 36 },
|
||||
{ "glColor4ui", 37 },
|
||||
{ "glColor4uiv", 38 },
|
||||
{ "glColor4us", 39 },
|
||||
{ "glColor4usv", 40 },
|
||||
{ "glEdgeFlag", 41 },
|
||||
{ "glEdgeFlagv", 42 },
|
||||
{ "glEnd", 43 },
|
||||
{ "glIndexd", 44 },
|
||||
{ "glIndexdv", 45 },
|
||||
{ "glIndexf", 46 },
|
||||
{ "glIndexfv", 47 },
|
||||
{ "glIndexi", 48 },
|
||||
{ "glIndexiv", 49 },
|
||||
{ "glIndexs", 50 },
|
||||
{ "glIndexsv", 51 },
|
||||
{ "glNormal3b", 52 },
|
||||
{ "glNormal3bv", 53 },
|
||||
{ "glNormal3d", 54 },
|
||||
{ "glNormal3dv", 55 },
|
||||
{ "glNormal3f", 56 },
|
||||
{ "glNormal3fv", 57 },
|
||||
{ "glNormal3i", 58 },
|
||||
{ "glNormal3iv", 59 },
|
||||
{ "glNormal3s", 60 },
|
||||
{ "glNormal3sv", 61 },
|
||||
{ "glRasterPos2d", 62 },
|
||||
{ "glRasterPos2dv", 63 },
|
||||
{ "glRasterPos2f", 64 },
|
||||
{ "glRasterPos2fv", 65 },
|
||||
{ "glRasterPos2i", 66 },
|
||||
{ "glRasterPos2iv", 67 },
|
||||
{ "glRasterPos2s", 68 },
|
||||
{ "glRasterPos2sv", 69 },
|
||||
{ "glRasterPos3d", 70 },
|
||||
{ "glRasterPos3dv", 71 },
|
||||
{ "glRasterPos3f", 72 },
|
||||
{ "glRasterPos3fv", 73 },
|
||||
{ "glRasterPos3i", 74 },
|
||||
{ "glRasterPos3iv", 75 },
|
||||
{ "glRasterPos3s", 76 },
|
||||
{ "glRasterPos3sv", 77 },
|
||||
{ "glRasterPos4d", 78 },
|
||||
{ "glRasterPos4dv", 79 },
|
||||
{ "glRasterPos4f", 80 },
|
||||
{ "glRasterPos4fv", 81 },
|
||||
{ "glRasterPos4i", 82 },
|
||||
{ "glRasterPos4iv", 83 },
|
||||
{ "glRasterPos4s", 84 },
|
||||
{ "glRasterPos4sv", 85 },
|
||||
{ "glRectd", 86 },
|
||||
{ "glRectdv", 87 },
|
||||
{ "glRectf", 88 },
|
||||
{ "glRectfv", 89 },
|
||||
{ "glRecti", 90 },
|
||||
{ "glRectiv", 91 },
|
||||
{ "glRects", 92 },
|
||||
{ "glRectsv", 93 },
|
||||
{ "glTexCoord1d", 94 },
|
||||
{ "glTexCoord1dv", 95 },
|
||||
{ "glTexCoord1f", 96 },
|
||||
{ "glTexCoord1fv", 97 },
|
||||
{ "glTexCoord1i", 98 },
|
||||
{ "glTexCoord1iv", 99 },
|
||||
{ "glTexCoord1s", 100 },
|
||||
{ "glTexCoord1sv", 101 },
|
||||
{ "glTexCoord2d", 102 },
|
||||
{ "glTexCoord2dv", 103 },
|
||||
{ "glTexCoord2f", 104 },
|
||||
{ "glTexCoord2fv", 105 },
|
||||
{ "glTexCoord2i", 106 },
|
||||
{ "glTexCoord2iv", 107 },
|
||||
{ "glTexCoord2s", 108 },
|
||||
{ "glTexCoord2sv", 109 },
|
||||
{ "glTexCoord3d", 110 },
|
||||
{ "glTexCoord3dv", 111 },
|
||||
{ "glTexCoord3f", 112 },
|
||||
{ "glTexCoord3fv", 113 },
|
||||
{ "glTexCoord3i", 114 },
|
||||
{ "glTexCoord3iv", 115 },
|
||||
{ "glTexCoord3s", 116 },
|
||||
{ "glTexCoord3sv", 117 },
|
||||
{ "glTexCoord4d", 118 },
|
||||
{ "glTexCoord4dv", 119 },
|
||||
{ "glTexCoord4f", 120 },
|
||||
{ "glTexCoord4fv", 121 },
|
||||
{ "glTexCoord4i", 122 },
|
||||
{ "glTexCoord4iv", 123 },
|
||||
{ "glTexCoord4s", 124 },
|
||||
{ "glTexCoord4sv", 125 },
|
||||
{ "glVertex2d", 126 },
|
||||
{ "glVertex2dv", 127 },
|
||||
{ "glVertex2f", 128 },
|
||||
{ "glVertex2fv", 129 },
|
||||
{ "glVertex2i", 130 },
|
||||
{ "glVertex2iv", 131 },
|
||||
{ "glVertex2s", 132 },
|
||||
{ "glVertex2sv", 133 },
|
||||
{ "glVertex3d", 134 },
|
||||
{ "glVertex3dv", 135 },
|
||||
{ "glVertex3f", 136 },
|
||||
{ "glVertex3fv", 137 },
|
||||
{ "glVertex3i", 138 },
|
||||
{ "glVertex3iv", 139 },
|
||||
{ "glVertex3s", 140 },
|
||||
{ "glVertex3sv", 141 },
|
||||
{ "glVertex4d", 142 },
|
||||
{ "glVertex4dv", 143 },
|
||||
{ "glVertex4f", 144 },
|
||||
{ "glVertex4fv", 145 },
|
||||
{ "glVertex4i", 146 },
|
||||
{ "glVertex4iv", 147 },
|
||||
{ "glVertex4s", 148 },
|
||||
{ "glVertex4sv", 149 },
|
||||
{ "glClipPlane", 150 },
|
||||
{ "glColorMaterial", 151 },
|
||||
{ "glCullFace", 152 },
|
||||
{ "glFogf", 153 },
|
||||
{ "glFogfv", 154 },
|
||||
{ "glFogi", 155 },
|
||||
{ "glFogiv", 156 },
|
||||
{ "glFrontFace", 157 },
|
||||
{ "glHint", 158 },
|
||||
{ "glLightf", 159 },
|
||||
{ "glLightfv", 160 },
|
||||
{ "glLighti", 161 },
|
||||
{ "glLightiv", 162 },
|
||||
{ "glLightModelf", 163 },
|
||||
{ "glLightModelfv", 164 },
|
||||
{ "glLightModeli", 165 },
|
||||
{ "glLightModeliv", 166 },
|
||||
{ "glLineStipple", 167 },
|
||||
{ "glLineWidth", 168 },
|
||||
{ "glMaterialf", 169 },
|
||||
{ "glMaterialfv", 170 },
|
||||
{ "glMateriali", 171 },
|
||||
{ "glMaterialiv", 172 },
|
||||
{ "glPointSize", 173 },
|
||||
{ "glPolygonMode", 174 },
|
||||
{ "glPolygonStipple", 175 },
|
||||
{ "glScissor", 176 },
|
||||
{ "glShadeModel", 177 },
|
||||
{ "glTexParameterf", 178 },
|
||||
{ "glTexParameterfv", 179 },
|
||||
{ "glTexParameteri", 180 },
|
||||
{ "glTexParameteriv", 181 },
|
||||
{ "glTexImage1D", 182 },
|
||||
{ "glTexImage2D", 183 },
|
||||
{ "glTexEnvf", 184 },
|
||||
{ "glTexEnvfv", 185 },
|
||||
{ "glTexEnvi", 186 },
|
||||
{ "glTexEnviv", 187 },
|
||||
{ "glTexGend", 188 },
|
||||
{ "glTexGendv", 189 },
|
||||
{ "glTexGenf", 190 },
|
||||
{ "glTexGenfv", 191 },
|
||||
{ "glTexGeni", 192 },
|
||||
{ "glTexGeniv", 193 },
|
||||
{ "glFeedbackBuffer", 194 },
|
||||
{ "glSelectBuffer", 195 },
|
||||
{ "glRenderMode", 196 },
|
||||
{ "glInitNames", 197 },
|
||||
{ "glLoadName", 198 },
|
||||
{ "glPassThrough", 199 },
|
||||
{ "glPopName", 200 },
|
||||
{ "glPushName", 201 },
|
||||
{ "glDrawBuffer", 202 },
|
||||
{ "glClear", 203 },
|
||||
{ "glClearAccum", 204 },
|
||||
{ "glClearIndex", 205 },
|
||||
{ "glClearColor", 206 },
|
||||
{ "glClearStencil", 207 },
|
||||
{ "glClearDepth", 208 },
|
||||
{ "glStencilMask", 209 },
|
||||
{ "glColorMask", 210 },
|
||||
{ "glDepthMask", 211 },
|
||||
{ "glIndexMask", 212 },
|
||||
{ "glAccum", 213 },
|
||||
{ "glDisable", 214 },
|
||||
{ "glEnable", 215 },
|
||||
{ "glFinish", 216 },
|
||||
{ "glFlush", 217 },
|
||||
{ "glPopAttrib", 218 },
|
||||
{ "glPushAttrib", 219 },
|
||||
{ "glMap1d", 220 },
|
||||
{ "glMap1f", 221 },
|
||||
{ "glMap2d", 222 },
|
||||
{ "glMap2f", 223 },
|
||||
{ "glMapGrid1d", 224 },
|
||||
{ "glMapGrid1f", 225 },
|
||||
{ "glMapGrid2d", 226 },
|
||||
{ "glMapGrid2f", 227 },
|
||||
{ "glEvalCoord1d", 228 },
|
||||
{ "glEvalCoord1dv", 229 },
|
||||
{ "glEvalCoord1f", 230 },
|
||||
{ "glEvalCoord1fv", 231 },
|
||||
{ "glEvalCoord2d", 232 },
|
||||
{ "glEvalCoord2dv", 233 },
|
||||
{ "glEvalCoord2f", 234 },
|
||||
{ "glEvalCoord2fv", 235 },
|
||||
{ "glEvalMesh1", 236 },
|
||||
{ "glEvalPoint1", 237 },
|
||||
{ "glEvalMesh2", 238 },
|
||||
{ "glEvalPoint2", 239 },
|
||||
{ "glAlphaFunc", 240 },
|
||||
{ "glBlendFunc", 241 },
|
||||
{ "glLogicOp", 242 },
|
||||
{ "glStencilFunc", 243 },
|
||||
{ "glStencilOp", 244 },
|
||||
{ "glDepthFunc", 245 },
|
||||
{ "glPixelZoom", 246 },
|
||||
{ "glPixelTransferf", 247 },
|
||||
{ "glPixelTransferi", 248 },
|
||||
{ "glPixelStoref", 249 },
|
||||
{ "glPixelStorei", 250 },
|
||||
{ "glPixelMapfv", 251 },
|
||||
{ "glPixelMapuiv", 252 },
|
||||
{ "glPixelMapusv", 253 },
|
||||
{ "glReadBuffer", 254 },
|
||||
{ "glCopyPixels", 255 },
|
||||
{ "glReadPixels", 256 },
|
||||
{ "glDrawPixels", 257 },
|
||||
{ "glGetBooleanv", 258 },
|
||||
{ "glGetClipPlane", 259 },
|
||||
{ "glGetDoublev", 260 },
|
||||
{ "glGetError", 261 },
|
||||
{ "glGetFloatv", 262 },
|
||||
{ "glGetIntegerv", 263 },
|
||||
{ "glGetLightfv", 264 },
|
||||
{ "glGetLightiv", 265 },
|
||||
{ "glGetMapdv", 266 },
|
||||
{ "glGetMapfv", 267 },
|
||||
{ "glGetMapiv", 268 },
|
||||
{ "glGetMaterialfv", 269 },
|
||||
{ "glGetMaterialiv", 270 },
|
||||
{ "glGetPixelMapfv", 271 },
|
||||
{ "glGetPixelMapuiv", 272 },
|
||||
{ "glGetPixelMapusv", 273 },
|
||||
{ "glGetPolygonStipple", 274 },
|
||||
{ "glGetString", 275 },
|
||||
{ "glGetTexEnvfv", 276 },
|
||||
{ "glGetTexEnviv", 277 },
|
||||
{ "glGetTexGendv", 278 },
|
||||
{ "glGetTexGenfv", 279 },
|
||||
{ "glGetTexGeniv", 280 },
|
||||
{ "glGetTexImage", 281 },
|
||||
{ "glGetTexParameterfv", 282 },
|
||||
{ "glGetTexParameteriv", 283 },
|
||||
{ "glGetTexLevelParameterfv", 284 },
|
||||
{ "glGetTexLevelParameteriv", 285 },
|
||||
{ "glIsEnabled", 286 },
|
||||
{ "glIsList", 287 },
|
||||
{ "glDepthRange", 288 },
|
||||
{ "glFrustum", 289 },
|
||||
{ "glLoadIdentity", 290 },
|
||||
{ "glLoadMatrixf", 291 },
|
||||
{ "glLoadMatrixd", 292 },
|
||||
{ "glMatrixMode", 293 },
|
||||
{ "glMultMatrixf", 294 },
|
||||
{ "glMultMatrixd", 295 },
|
||||
{ "glOrtho", 296 },
|
||||
{ "glPopMatrix", 297 },
|
||||
{ "glPushMatrix", 298 },
|
||||
{ "glRotated", 299 },
|
||||
{ "glRotatef", 300 },
|
||||
{ "glScaled", 301 },
|
||||
{ "glScalef", 302 },
|
||||
{ "glTranslated", 303 },
|
||||
{ "glTranslatef", 304 },
|
||||
{ "glViewport", 305 },
|
||||
{ "glArrayElement", 306 },
|
||||
{ "glColorPointer", 308 },
|
||||
{ "glDisableClientState", 309 },
|
||||
{ "glDrawArrays", 310 },
|
||||
{ "glDrawElements", 311 },
|
||||
{ "glEdgeFlagPointer", 312 },
|
||||
{ "glEnableClientState", 313 },
|
||||
{ "glGetPointerv", 329 },
|
||||
{ "glIndexPointer", 314 },
|
||||
{ "glInterleavedArrays", 317 },
|
||||
{ "glNormalPointer", 318 },
|
||||
{ "glTexCoordPointer", 320 },
|
||||
{ "glVertexPointer", 321 },
|
||||
{ "glPolygonOffset", 319 },
|
||||
{ "glCopyTexImage1D", 323 },
|
||||
{ "glCopyTexImage2D", 324 },
|
||||
{ "glCopyTexSubImage1D", 325 },
|
||||
{ "glCopyTexSubImage2D", 326 },
|
||||
{ "glTexSubImage1D", 332 },
|
||||
{ "glTexSubImage2D", 333 },
|
||||
{ "glAreTexturesResident", 322 },
|
||||
{ "glBindTexture", 307 },
|
||||
{ "glDeleteTextures", 327 },
|
||||
{ "glGenTextures", 328 },
|
||||
{ "glIsTexture", 330 },
|
||||
{ "glPrioritizeTextures", 331 },
|
||||
{ "glIndexub", 315 },
|
||||
{ "glIndexubv", 316 },
|
||||
{ "glPopClientAttrib", 334 },
|
||||
{ "glPushClientAttrib", 335 },
|
||||
{ "glBlendColor", 336 },
|
||||
{ "glBlendEquation", 337 },
|
||||
{ "glDrawRangeElements", 338 },
|
||||
{ "glColorTable", 339 },
|
||||
{ "glColorTableParameterfv", 340 },
|
||||
{ "glColorTableParameteriv", 341 },
|
||||
{ "glCopyColorTable", 342 },
|
||||
{ "glGetColorTable", 343 },
|
||||
{ "glGetColorTableParameterfv", 344 },
|
||||
{ "glGetColorTableParameteriv", 345 },
|
||||
{ "glColorSubTable", 346 },
|
||||
{ "glCopyColorSubTable", 347 },
|
||||
{ "glConvolutionFilter1D", 348 },
|
||||
{ "glConvolutionFilter2D", 349 },
|
||||
{ "glConvolutionParameterf", 350 },
|
||||
{ "glConvolutionParameterfv", 351 },
|
||||
{ "glConvolutionParameteri", 352 },
|
||||
{ "glConvolutionParameteriv", 353 },
|
||||
{ "glCopyConvolutionFilter1D", 354 },
|
||||
{ "glCopyConvolutionFilter2D", 355 },
|
||||
{ "glGetConvolutionFilter", 356 },
|
||||
{ "glGetConvolutionParameterfv", 357 },
|
||||
{ "glGetConvolutionParameteriv", 358 },
|
||||
{ "glGetSeparableFilter", 359 },
|
||||
{ "glSeparableFilter2D", 360 },
|
||||
{ "glGetHistogram", 361 },
|
||||
{ "glGetHistogramParameterfv", 362 },
|
||||
{ "glGetHistogramParameteriv", 363 },
|
||||
{ "glGetMinmax", 364 },
|
||||
{ "glGetMinmaxParameterfv", 365 },
|
||||
{ "glGetMinmaxParameteriv", 366 },
|
||||
{ "glHistogram", 367 },
|
||||
{ "glMinmax", 368 },
|
||||
{ "glResetHistogram", 369 },
|
||||
{ "glResetMinmax", 370 },
|
||||
{ "glTexImage3D", 371 },
|
||||
{ "glTexSubImage3D", 372 },
|
||||
{ "glCopyTexSubImage3D", 373 },
|
||||
{ "glActiveTextureARB", 374 },
|
||||
{ "glClientActiveTextureARB", 375 },
|
||||
{ "glMultiTexCoord1dARB", 376 },
|
||||
{ "glMultiTexCoord1dvARB", 377 },
|
||||
{ "glMultiTexCoord1fARB", 378 },
|
||||
{ "glMultiTexCoord1fvARB", 379 },
|
||||
{ "glMultiTexCoord1iARB", 380 },
|
||||
{ "glMultiTexCoord1ivARB", 381 },
|
||||
{ "glMultiTexCoord1sARB", 382 },
|
||||
{ "glMultiTexCoord1svARB", 383 },
|
||||
{ "glMultiTexCoord2dARB", 384 },
|
||||
{ "glMultiTexCoord2dvARB", 385 },
|
||||
{ "glMultiTexCoord2fARB", 386 },
|
||||
{ "glMultiTexCoord2fvARB", 387 },
|
||||
{ "glMultiTexCoord2iARB", 388 },
|
||||
{ "glMultiTexCoord2ivARB", 389 },
|
||||
{ "glMultiTexCoord2sARB", 390 },
|
||||
{ "glMultiTexCoord2svARB", 391 },
|
||||
{ "glMultiTexCoord3dARB", 392 },
|
||||
{ "glMultiTexCoord3dvARB", 393 },
|
||||
{ "glMultiTexCoord3fARB", 394 },
|
||||
{ "glMultiTexCoord3fvARB", 395 },
|
||||
{ "glMultiTexCoord3iARB", 396 },
|
||||
{ "glMultiTexCoord3ivARB", 397 },
|
||||
{ "glMultiTexCoord3sARB", 398 },
|
||||
{ "glMultiTexCoord3svARB", 399 },
|
||||
{ "glMultiTexCoord4dARB", 400 },
|
||||
{ "glMultiTexCoord4dvARB", 401 },
|
||||
{ "glMultiTexCoord4fARB", 402 },
|
||||
{ "glMultiTexCoord4fvARB", 403 },
|
||||
{ "glMultiTexCoord4iARB", 404 },
|
||||
{ "glMultiTexCoord4ivARB", 405 },
|
||||
{ "glMultiTexCoord4sARB", 406 },
|
||||
{ "glMultiTexCoord4svARB", 407 },
|
||||
{ NULL, 0 }
|
||||
};
|
Loading…
Reference in New Issue