1 /* 2 * Copyright 2012 Intel Corporation 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a 5 * copy of this software and associated documentation files (the "Software"), 6 * to deal in the Software without restriction, including without limitation 7 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 * and/or sell copies of the Software, and to permit persons to whom the 9 * Software is furnished to do so, subject to the following conditions: 10 * 11 * The above copyright notice and this permission notice (including the next 12 * paragraph) shall be included in all copies or substantial portions of the 13 * Software. 14 * 15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 21 * DEALINGS IN THE SOFTWARE. 22 */ 23 24 /** 25 * \file enum_sizes.cpp 26 * Validate the generated code in indirect_size.c 27 * 28 * The functions in indirect_size.c determine how many data values are 29 * associated with each enumerant that can be passed to various OpenGL 30 * functions. Tests in this file probe each function in indirect_size.c with 31 * each of the possible valid enums and verify that the correct size is 32 * returned. Tests in this file also probe each function in indirect_size.c 33 * with a larger number of \b invalid enums and verify that zero is returned. 34 */ 35 36 #include <gtest/gtest.h> 37 #include <GL/gl.h> 38 extern "C" { 39 #include "../indirect_size.h" 40 } 41 42 TEST(ValidEnumSizes, CallLists) 43 { 44 EXPECT_EQ(1, __glCallLists_size(GL_BYTE)); 45 EXPECT_EQ(1, __glCallLists_size(GL_UNSIGNED_BYTE)); 46 EXPECT_EQ(2, __glCallLists_size(GL_SHORT)); 47 EXPECT_EQ(2, __glCallLists_size(GL_UNSIGNED_SHORT)); 48 EXPECT_EQ(2, __glCallLists_size(GL_2_BYTES)); 49 EXPECT_EQ(2, __glCallLists_size(GL_HALF_FLOAT)); 50 EXPECT_EQ(3, __glCallLists_size(GL_3_BYTES)); 51 EXPECT_EQ(4, __glCallLists_size(GL_INT)); 52 EXPECT_EQ(4, __glCallLists_size(GL_UNSIGNED_INT)); 53 EXPECT_EQ(4, __glCallLists_size(GL_FLOAT)); 54 EXPECT_EQ(4, __glCallLists_size(GL_4_BYTES)); 55 } 56 57 TEST(InvalidEnumSizes, CallLists) 58 { 59 for (unsigned i = 0; i < 0x10004; i++) { 60 switch (i) { 61 case GL_BYTE: 62 case GL_UNSIGNED_BYTE: 63 case GL_SHORT: 64 case GL_UNSIGNED_SHORT: 65 case GL_2_BYTES: 66 case GL_HALF_FLOAT: 67 case GL_3_BYTES: 68 case GL_INT: 69 case GL_UNSIGNED_INT: 70 case GL_FLOAT: 71 case GL_4_BYTES: 72 break; 73 default: 74 EXPECT_EQ(0, __glCallLists_size(i)) << "i = 0x" << 75 std::setw(4) << std::setfill('0') << std::hex << i; 76 } 77 } 78 } 79 80 TEST(ValidEnumSizes, Fogfv) 81 { 82 EXPECT_EQ(1, __glFogfv_size(GL_FOG_INDEX)); 83 EXPECT_EQ(1, __glFogfv_size(GL_FOG_DENSITY)); 84 EXPECT_EQ(1, __glFogfv_size(GL_FOG_START)); 85 EXPECT_EQ(1, __glFogfv_size(GL_FOG_END)); 86 EXPECT_EQ(1, __glFogfv_size(GL_FOG_MODE)); 87 EXPECT_EQ(1, __glFogfv_size(GL_FOG_OFFSET_VALUE_SGIX)); 88 EXPECT_EQ(1, __glFogfv_size(GL_FOG_DISTANCE_MODE_NV)); 89 EXPECT_EQ(4, __glFogfv_size(GL_FOG_COLOR)); 90 } 91 92 TEST(InvalidEnumSizes, Fogfv) 93 { 94 for (unsigned i = 0; i < 0x10004; i++) { 95 switch (i) { 96 case GL_FOG_INDEX: 97 case GL_FOG_DENSITY: 98 case GL_FOG_START: 99 case GL_FOG_END: 100 case GL_FOG_MODE: 101 case GL_FOG_OFFSET_VALUE_SGIX: 102 case GL_FOG_DISTANCE_MODE_NV: 103 case GL_FOG_COLOR: 104 break; 105 default: 106 EXPECT_EQ(0, __glFogfv_size(i)) << "i = 0x" << 107 std::setw(4) << std::setfill('0') << std::hex << i; 108 } 109 } 110 } 111 112 TEST(ValidEnumSizes, Lightfv) 113 { 114 EXPECT_EQ(1, __glLightfv_size(GL_SPOT_EXPONENT)); 115 EXPECT_EQ(1, __glLightfv_size(GL_SPOT_CUTOFF)); 116 EXPECT_EQ(1, __glLightfv_size(GL_CONSTANT_ATTENUATION)); 117 EXPECT_EQ(1, __glLightfv_size(GL_LINEAR_ATTENUATION)); 118 EXPECT_EQ(1, __glLightfv_size(GL_QUADRATIC_ATTENUATION)); 119 EXPECT_EQ(3, __glLightfv_size(GL_SPOT_DIRECTION)); 120 EXPECT_EQ(4, __glLightfv_size(GL_AMBIENT)); 121 EXPECT_EQ(4, __glLightfv_size(GL_DIFFUSE)); 122 EXPECT_EQ(4, __glLightfv_size(GL_SPECULAR)); 123 EXPECT_EQ(4, __glLightfv_size(GL_POSITION)); 124 } 125 126 TEST(InvalidEnumSizes, Lightfv) 127 { 128 for (unsigned i = 0; i < 0x10004; i++) { 129 switch (i) { 130 case GL_SPOT_EXPONENT: 131 case GL_SPOT_CUTOFF: 132 case GL_CONSTANT_ATTENUATION: 133 case GL_LINEAR_ATTENUATION: 134 case GL_QUADRATIC_ATTENUATION: 135 case GL_SPOT_DIRECTION: 136 case GL_AMBIENT: 137 case GL_DIFFUSE: 138 case GL_SPECULAR: 139 case GL_POSITION: 140 break; 141 default: 142 EXPECT_EQ(0, __glLightfv_size(i)) << "i = 0x" << 143 std::setw(4) << std::setfill('0') << std::hex << i; 144 } 145 } 146 } 147 148 TEST(ValidEnumSizes, LightModelfv) 149 { 150 EXPECT_EQ(1, __glLightModelfv_size(GL_LIGHT_MODEL_LOCAL_VIEWER)); 151 EXPECT_EQ(1, __glLightModelfv_size(GL_LIGHT_MODEL_TWO_SIDE)); 152 EXPECT_EQ(1, __glLightModelfv_size(GL_LIGHT_MODEL_COLOR_CONTROL)); 153 EXPECT_EQ(1, __glLightModelfv_size(GL_LIGHT_MODEL_COLOR_CONTROL_EXT)); 154 EXPECT_EQ(4, __glLightModelfv_size(GL_LIGHT_MODEL_AMBIENT)); 155 } 156 157 TEST(InvalidEnumSizes, LightModelfv) 158 { 159 for (unsigned i = 0; i < 0x10004; i++) { 160 switch (i) { 161 case GL_LIGHT_MODEL_LOCAL_VIEWER: 162 case GL_LIGHT_MODEL_TWO_SIDE: 163 case GL_LIGHT_MODEL_COLOR_CONTROL: 164 /* case GL_LIGHT_MODEL_COLOR_CONTROL_EXT:*/ 165 case GL_LIGHT_MODEL_AMBIENT: 166 break; 167 default: 168 EXPECT_EQ(0, __glLightModelfv_size(i)) << "i = 0x" << 169 std::setw(4) << std::setfill('0') << std::hex << i; 170 } 171 } 172 } 173 174 TEST(ValidEnumSizes, Materialfv) 175 { 176 EXPECT_EQ(1, __glMaterialfv_size(GL_SHININESS)); 177 EXPECT_EQ(3, __glMaterialfv_size(GL_COLOR_INDEXES)); 178 EXPECT_EQ(4, __glMaterialfv_size(GL_AMBIENT)); 179 EXPECT_EQ(4, __glMaterialfv_size(GL_DIFFUSE)); 180 EXPECT_EQ(4, __glMaterialfv_size(GL_SPECULAR)); 181 EXPECT_EQ(4, __glMaterialfv_size(GL_EMISSION)); 182 EXPECT_EQ(4, __glMaterialfv_size(GL_AMBIENT_AND_DIFFUSE)); 183 } 184 185 TEST(InvalidEnumSizes, Materialfv) 186 { 187 for (unsigned i = 0; i < 0x10004; i++) { 188 switch (i) { 189 case GL_SHININESS: 190 case GL_COLOR_INDEXES: 191 case GL_AMBIENT: 192 case GL_DIFFUSE: 193 case GL_SPECULAR: 194 case GL_EMISSION: 195 case GL_AMBIENT_AND_DIFFUSE: 196 break; 197 default: 198 EXPECT_EQ(0, __glMaterialfv_size(i)) << "i = 0x" << 199 std::setw(4) << std::setfill('0') << std::hex << i; 200 } 201 } 202 } 203 204 TEST(ValidEnumSizes, TexParameterfv) 205 { 206 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_MAG_FILTER)); 207 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_MIN_FILTER)); 208 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_WRAP_S)); 209 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_WRAP_T)); 210 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_PRIORITY)); 211 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_WRAP_R)); 212 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_COMPARE_FAIL_VALUE_ARB)); 213 EXPECT_EQ(1, __glTexParameterfv_size(GL_SHADOW_AMBIENT_SGIX)); 214 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_MIN_LOD)); 215 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_MAX_LOD)); 216 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_BASE_LEVEL)); 217 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_MAX_LEVEL)); 218 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_CLIPMAP_FRAME_SGIX)); 219 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_LOD_BIAS_S_SGIX)); 220 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_LOD_BIAS_T_SGIX)); 221 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_LOD_BIAS_R_SGIX)); 222 EXPECT_EQ(1, __glTexParameterfv_size(GL_GENERATE_MIPMAP)); 223 EXPECT_EQ(1, __glTexParameterfv_size(GL_GENERATE_MIPMAP_SGIS)); 224 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_COMPARE_SGIX)); 225 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_COMPARE_OPERATOR_SGIX)); 226 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_MAX_CLAMP_S_SGIX)); 227 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_MAX_CLAMP_T_SGIX)); 228 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_MAX_CLAMP_R_SGIX)); 229 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_MAX_ANISOTROPY_EXT)); 230 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_LOD_BIAS)); 231 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_LOD_BIAS_EXT)); 232 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_STORAGE_HINT_APPLE)); 233 EXPECT_EQ(1, __glTexParameterfv_size(GL_STORAGE_PRIVATE_APPLE)); 234 EXPECT_EQ(1, __glTexParameterfv_size(GL_STORAGE_CACHED_APPLE)); 235 EXPECT_EQ(1, __glTexParameterfv_size(GL_STORAGE_SHARED_APPLE)); 236 EXPECT_EQ(1, __glTexParameterfv_size(GL_DEPTH_TEXTURE_MODE)); 237 EXPECT_EQ(1, __glTexParameterfv_size(GL_DEPTH_TEXTURE_MODE_ARB)); 238 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_COMPARE_MODE)); 239 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_COMPARE_MODE_ARB)); 240 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_COMPARE_FUNC)); 241 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_COMPARE_FUNC_ARB)); 242 EXPECT_EQ(1, __glTexParameterfv_size(GL_TEXTURE_UNSIGNED_REMAP_MODE_NV)); 243 EXPECT_EQ(2, __glTexParameterfv_size(GL_TEXTURE_CLIPMAP_CENTER_SGIX)); 244 EXPECT_EQ(2, __glTexParameterfv_size(GL_TEXTURE_CLIPMAP_OFFSET_SGIX)); 245 EXPECT_EQ(3, __glTexParameterfv_size(GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX)); 246 EXPECT_EQ(4, __glTexParameterfv_size(GL_TEXTURE_BORDER_COLOR)); 247 EXPECT_EQ(4, __glTexParameterfv_size(GL_POST_TEXTURE_FILTER_BIAS_SGIX)); 248 EXPECT_EQ(4, __glTexParameterfv_size(GL_POST_TEXTURE_FILTER_SCALE_SGIX)); 249 } 250 251 TEST(InvalidEnumSizes, TexParameterfv) 252 { 253 for (unsigned i = 0; i < 0x10004; i++) { 254 switch (i) { 255 case GL_TEXTURE_MAG_FILTER: 256 case GL_TEXTURE_MIN_FILTER: 257 case GL_TEXTURE_WRAP_S: 258 case GL_TEXTURE_WRAP_T: 259 case GL_TEXTURE_PRIORITY: 260 case GL_TEXTURE_WRAP_R: 261 case GL_TEXTURE_COMPARE_FAIL_VALUE_ARB: 262 /* case GL_SHADOW_AMBIENT_SGIX:*/ 263 case GL_TEXTURE_MIN_LOD: 264 case GL_TEXTURE_MAX_LOD: 265 case GL_TEXTURE_BASE_LEVEL: 266 case GL_TEXTURE_MAX_LEVEL: 267 case GL_TEXTURE_CLIPMAP_FRAME_SGIX: 268 case GL_TEXTURE_LOD_BIAS_S_SGIX: 269 case GL_TEXTURE_LOD_BIAS_T_SGIX: 270 case GL_TEXTURE_LOD_BIAS_R_SGIX: 271 case GL_GENERATE_MIPMAP: 272 /* case GL_GENERATE_MIPMAP_SGIS:*/ 273 case GL_TEXTURE_COMPARE_SGIX: 274 case GL_TEXTURE_COMPARE_OPERATOR_SGIX: 275 case GL_TEXTURE_MAX_CLAMP_S_SGIX: 276 case GL_TEXTURE_MAX_CLAMP_T_SGIX: 277 case GL_TEXTURE_MAX_CLAMP_R_SGIX: 278 case GL_TEXTURE_MAX_ANISOTROPY_EXT: 279 case GL_TEXTURE_LOD_BIAS: 280 /* case GL_TEXTURE_LOD_BIAS_EXT:*/ 281 case GL_TEXTURE_STORAGE_HINT_APPLE: 282 case GL_STORAGE_PRIVATE_APPLE: 283 case GL_STORAGE_CACHED_APPLE: 284 case GL_STORAGE_SHARED_APPLE: 285 case GL_DEPTH_TEXTURE_MODE: 286 /* case GL_DEPTH_TEXTURE_MODE_ARB:*/ 287 case GL_TEXTURE_COMPARE_MODE: 288 /* case GL_TEXTURE_COMPARE_MODE_ARB:*/ 289 case GL_TEXTURE_COMPARE_FUNC: 290 /* case GL_TEXTURE_COMPARE_FUNC_ARB:*/ 291 case GL_TEXTURE_UNSIGNED_REMAP_MODE_NV: 292 case GL_TEXTURE_CLIPMAP_CENTER_SGIX: 293 case GL_TEXTURE_CLIPMAP_OFFSET_SGIX: 294 case GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX: 295 case GL_TEXTURE_BORDER_COLOR: 296 case GL_POST_TEXTURE_FILTER_BIAS_SGIX: 297 case GL_POST_TEXTURE_FILTER_SCALE_SGIX: 298 break; 299 default: 300 EXPECT_EQ(0, __glTexParameterfv_size(i)) << "i = 0x" << 301 std::setw(4) << std::setfill('0') << std::hex << i; 302 } 303 } 304 } 305 306 TEST(ValidEnumSizes, TexEnvfv) 307 { 308 EXPECT_EQ(1, __glTexEnvfv_size(GL_ALPHA_SCALE)); 309 EXPECT_EQ(1, __glTexEnvfv_size(GL_TEXTURE_ENV_MODE)); 310 EXPECT_EQ(1, __glTexEnvfv_size(GL_TEXTURE_LOD_BIAS)); 311 EXPECT_EQ(1, __glTexEnvfv_size(GL_COMBINE_RGB)); 312 EXPECT_EQ(1, __glTexEnvfv_size(GL_COMBINE_ALPHA)); 313 EXPECT_EQ(1, __glTexEnvfv_size(GL_RGB_SCALE)); 314 EXPECT_EQ(1, __glTexEnvfv_size(GL_SOURCE0_RGB)); 315 EXPECT_EQ(1, __glTexEnvfv_size(GL_SOURCE1_RGB)); 316 EXPECT_EQ(1, __glTexEnvfv_size(GL_SOURCE2_RGB)); 317 EXPECT_EQ(1, __glTexEnvfv_size(GL_SOURCE3_RGB_NV)); 318 EXPECT_EQ(1, __glTexEnvfv_size(GL_SOURCE0_ALPHA)); 319 EXPECT_EQ(1, __glTexEnvfv_size(GL_SOURCE1_ALPHA)); 320 EXPECT_EQ(1, __glTexEnvfv_size(GL_SOURCE2_ALPHA)); 321 EXPECT_EQ(1, __glTexEnvfv_size(GL_SOURCE3_ALPHA_NV)); 322 EXPECT_EQ(1, __glTexEnvfv_size(GL_OPERAND0_RGB)); 323 EXPECT_EQ(1, __glTexEnvfv_size(GL_OPERAND1_RGB)); 324 EXPECT_EQ(1, __glTexEnvfv_size(GL_OPERAND2_RGB)); 325 EXPECT_EQ(1, __glTexEnvfv_size(GL_OPERAND3_RGB_NV)); 326 EXPECT_EQ(1, __glTexEnvfv_size(GL_OPERAND0_ALPHA)); 327 EXPECT_EQ(1, __glTexEnvfv_size(GL_OPERAND1_ALPHA)); 328 EXPECT_EQ(1, __glTexEnvfv_size(GL_OPERAND2_ALPHA)); 329 EXPECT_EQ(1, __glTexEnvfv_size(GL_OPERAND3_ALPHA_NV)); 330 EXPECT_EQ(1, __glTexEnvfv_size(GL_BUMP_TARGET_ATI)); 331 EXPECT_EQ(1, __glTexEnvfv_size(GL_COORD_REPLACE_ARB)); 332 EXPECT_EQ(1, __glTexEnvfv_size(GL_COORD_REPLACE_NV)); 333 EXPECT_EQ(4, __glTexEnvfv_size(GL_TEXTURE_ENV_COLOR)); 334 } 335 336 TEST(InvalidEnumSizes, TexEnvfv) 337 { 338 for (unsigned i = 0; i < 0x10004; i++) { 339 switch (i) { 340 case GL_ALPHA_SCALE: 341 case GL_TEXTURE_ENV_MODE: 342 case GL_TEXTURE_LOD_BIAS: 343 case GL_COMBINE_RGB: 344 case GL_COMBINE_ALPHA: 345 case GL_RGB_SCALE: 346 case GL_SOURCE0_RGB: 347 case GL_SOURCE1_RGB: 348 case GL_SOURCE2_RGB: 349 case GL_SOURCE3_RGB_NV: 350 case GL_SOURCE0_ALPHA: 351 case GL_SOURCE1_ALPHA: 352 case GL_SOURCE2_ALPHA: 353 case GL_SOURCE3_ALPHA_NV: 354 case GL_OPERAND0_RGB: 355 case GL_OPERAND1_RGB: 356 case GL_OPERAND2_RGB: 357 case GL_OPERAND3_RGB_NV: 358 case GL_OPERAND0_ALPHA: 359 case GL_OPERAND1_ALPHA: 360 case GL_OPERAND2_ALPHA: 361 case GL_OPERAND3_ALPHA_NV: 362 case GL_BUMP_TARGET_ATI: 363 case GL_COORD_REPLACE_ARB: 364 /* case GL_COORD_REPLACE_NV:*/ 365 case GL_TEXTURE_ENV_COLOR: 366 break; 367 default: 368 EXPECT_EQ(0, __glTexEnvfv_size(i)) << "i = 0x" << 369 std::setw(4) << std::setfill('0') << std::hex << i; 370 } 371 } 372 } 373 374 TEST(ValidEnumSizes, TexGendv) 375 { 376 EXPECT_EQ(1, __glTexGendv_size(GL_TEXTURE_GEN_MODE)); 377 EXPECT_EQ(4, __glTexGendv_size(GL_OBJECT_PLANE)); 378 EXPECT_EQ(4, __glTexGendv_size(GL_EYE_PLANE)); 379 } 380 381 TEST(InvalidEnumSizes, TexGendv) 382 { 383 for (unsigned i = 0; i < 0x10004; i++) { 384 switch (i) { 385 case GL_TEXTURE_GEN_MODE: 386 case GL_OBJECT_PLANE: 387 case GL_EYE_PLANE: 388 break; 389 default: 390 EXPECT_EQ(0, __glTexGendv_size(i)) << "i = 0x" << 391 std::setw(4) << std::setfill('0') << std::hex << i; 392 } 393 } 394 } 395 396 TEST(ValidEnumSizes, Map1d) 397 { 398 EXPECT_EQ(1, __glMap1d_size(GL_MAP1_INDEX)); 399 EXPECT_EQ(1, __glMap1d_size(GL_MAP1_TEXTURE_COORD_1)); 400 EXPECT_EQ(2, __glMap1d_size(GL_MAP1_TEXTURE_COORD_2)); 401 EXPECT_EQ(3, __glMap1d_size(GL_MAP1_NORMAL)); 402 EXPECT_EQ(3, __glMap1d_size(GL_MAP1_TEXTURE_COORD_3)); 403 EXPECT_EQ(3, __glMap1d_size(GL_MAP1_VERTEX_3)); 404 EXPECT_EQ(4, __glMap1d_size(GL_MAP1_COLOR_4)); 405 EXPECT_EQ(4, __glMap1d_size(GL_MAP1_TEXTURE_COORD_4)); 406 EXPECT_EQ(4, __glMap1d_size(GL_MAP1_VERTEX_4)); 407 } 408 409 TEST(InvalidEnumSizes, Map1d) 410 { 411 for (unsigned i = 0; i < 0x10004; i++) { 412 switch (i) { 413 case GL_MAP1_INDEX: 414 case GL_MAP1_TEXTURE_COORD_1: 415 case GL_MAP1_TEXTURE_COORD_2: 416 case GL_MAP1_NORMAL: 417 case GL_MAP1_TEXTURE_COORD_3: 418 case GL_MAP1_VERTEX_3: 419 case GL_MAP1_COLOR_4: 420 case GL_MAP1_TEXTURE_COORD_4: 421 case GL_MAP1_VERTEX_4: 422 break; 423 default: 424 EXPECT_EQ(0, __glMap1d_size(i)) << "i = 0x" << 425 std::setw(4) << std::setfill('0') << std::hex << i; 426 } 427 } 428 } 429 430 TEST(ValidEnumSizes, Map2d) 431 { 432 EXPECT_EQ(1, __glMap2d_size(GL_MAP2_INDEX)); 433 EXPECT_EQ(1, __glMap2d_size(GL_MAP2_TEXTURE_COORD_1)); 434 EXPECT_EQ(2, __glMap2d_size(GL_MAP2_TEXTURE_COORD_2)); 435 EXPECT_EQ(3, __glMap2d_size(GL_MAP2_NORMAL)); 436 EXPECT_EQ(3, __glMap2d_size(GL_MAP2_TEXTURE_COORD_3)); 437 EXPECT_EQ(3, __glMap2d_size(GL_MAP2_VERTEX_3)); 438 EXPECT_EQ(4, __glMap2d_size(GL_MAP2_COLOR_4)); 439 EXPECT_EQ(4, __glMap2d_size(GL_MAP2_TEXTURE_COORD_4)); 440 EXPECT_EQ(4, __glMap2d_size(GL_MAP2_VERTEX_4)); 441 } 442 443 TEST(InvalidEnumSizes, Map2d) 444 { 445 for (unsigned i = 0; i < 0x10004; i++) { 446 switch (i) { 447 case GL_MAP2_INDEX: 448 case GL_MAP2_TEXTURE_COORD_1: 449 case GL_MAP2_TEXTURE_COORD_2: 450 case GL_MAP2_NORMAL: 451 case GL_MAP2_TEXTURE_COORD_3: 452 case GL_MAP2_VERTEX_3: 453 case GL_MAP2_COLOR_4: 454 case GL_MAP2_TEXTURE_COORD_4: 455 case GL_MAP2_VERTEX_4: 456 break; 457 default: 458 EXPECT_EQ(0, __glMap2d_size(i)) << "i = 0x" << 459 std::setw(4) << std::setfill('0') << std::hex << i; 460 } 461 } 462 } 463 464 TEST(ValidEnumSizes, ColorTableParameterfv) 465 { 466 EXPECT_EQ(4, __glColorTableParameterfv_size(GL_COLOR_TABLE_SCALE)); 467 EXPECT_EQ(4, __glColorTableParameterfv_size(GL_COLOR_TABLE_BIAS)); 468 } 469 470 TEST(InvalidEnumSizes, ColorTableParameterfv) 471 { 472 for (unsigned i = 0; i < 0x10004; i++) { 473 switch (i) { 474 case GL_COLOR_TABLE_SCALE: 475 case GL_COLOR_TABLE_BIAS: 476 break; 477 default: 478 EXPECT_EQ(0, __glColorTableParameterfv_size(i)) << "i = 0x" << 479 std::setw(4) << std::setfill('0') << std::hex << i; 480 } 481 } 482 } 483 484 TEST(ValidEnumSizes, ConvolutionParameterfv) 485 { 486 EXPECT_EQ(1, __glConvolutionParameterfv_size(GL_CONVOLUTION_BORDER_MODE)); 487 EXPECT_EQ(1, __glConvolutionParameterfv_size(GL_CONVOLUTION_BORDER_MODE_EXT)); 488 EXPECT_EQ(4, __glConvolutionParameterfv_size(GL_CONVOLUTION_FILTER_SCALE)); 489 EXPECT_EQ(4, __glConvolutionParameterfv_size(GL_CONVOLUTION_FILTER_SCALE_EXT)); 490 EXPECT_EQ(4, __glConvolutionParameterfv_size(GL_CONVOLUTION_FILTER_BIAS)); 491 EXPECT_EQ(4, __glConvolutionParameterfv_size(GL_CONVOLUTION_FILTER_BIAS_EXT)); 492 EXPECT_EQ(4, __glConvolutionParameterfv_size(GL_CONVOLUTION_BORDER_COLOR)); 493 EXPECT_EQ(4, __glConvolutionParameterfv_size(GL_CONVOLUTION_BORDER_COLOR_HP)); 494 } 495 496 TEST(InvalidEnumSizes, ConvolutionParameterfv) 497 { 498 for (unsigned i = 0; i < 0x10004; i++) { 499 switch (i) { 500 case GL_CONVOLUTION_BORDER_MODE: 501 /* case GL_CONVOLUTION_BORDER_MODE_EXT:*/ 502 case GL_CONVOLUTION_FILTER_SCALE: 503 /* case GL_CONVOLUTION_FILTER_SCALE_EXT:*/ 504 case GL_CONVOLUTION_FILTER_BIAS: 505 /* case GL_CONVOLUTION_FILTER_BIAS_EXT:*/ 506 case GL_CONVOLUTION_BORDER_COLOR: 507 /* case GL_CONVOLUTION_BORDER_COLOR_HP:*/ 508 break; 509 default: 510 EXPECT_EQ(0, __glConvolutionParameterfv_size(i)) << "i = 0x" << 511 std::setw(4) << std::setfill('0') << std::hex << i; 512 } 513 } 514 } 515 516 TEST(ValidEnumSizes, PointParameterfv) 517 { 518 EXPECT_EQ(1, __glPointParameterfvEXT_size(GL_POINT_SIZE_MIN)); 519 EXPECT_EQ(1, __glPointParameterfvEXT_size(GL_POINT_SIZE_MIN_ARB)); 520 EXPECT_EQ(1, __glPointParameterfvEXT_size(GL_POINT_SIZE_MIN_SGIS)); 521 EXPECT_EQ(1, __glPointParameterfvEXT_size(GL_POINT_SIZE_MAX)); 522 EXPECT_EQ(1, __glPointParameterfvEXT_size(GL_POINT_SIZE_MAX_ARB)); 523 EXPECT_EQ(1, __glPointParameterfvEXT_size(GL_POINT_SIZE_MAX_SGIS)); 524 EXPECT_EQ(1, __glPointParameterfvEXT_size(GL_POINT_FADE_THRESHOLD_SIZE)); 525 EXPECT_EQ(1, __glPointParameterfvEXT_size(GL_POINT_FADE_THRESHOLD_SIZE_ARB)); 526 EXPECT_EQ(1, __glPointParameterfvEXT_size(GL_POINT_FADE_THRESHOLD_SIZE_SGIS)); 527 EXPECT_EQ(1, __glPointParameterfvEXT_size(GL_POINT_SPRITE_R_MODE_NV)); 528 EXPECT_EQ(1, __glPointParameterfvEXT_size(GL_POINT_SPRITE_COORD_ORIGIN)); 529 EXPECT_EQ(3, __glPointParameterfvEXT_size(GL_POINT_DISTANCE_ATTENUATION)); 530 EXPECT_EQ(3, __glPointParameterfvEXT_size(GL_POINT_DISTANCE_ATTENUATION_ARB)); 531 } 532 533 TEST(InvalidEnumSizes, PointParameterfv) 534 { 535 for (unsigned i = 0; i < 0x10004; i++) { 536 switch (i) { 537 case GL_POINT_SIZE_MIN: 538 /* case GL_POINT_SIZE_MIN_ARB:*/ 539 /* case GL_POINT_SIZE_MIN_SGIS:*/ 540 case GL_POINT_SIZE_MAX: 541 /* case GL_POINT_SIZE_MAX_ARB:*/ 542 /* case GL_POINT_SIZE_MAX_SGIS:*/ 543 case GL_POINT_FADE_THRESHOLD_SIZE: 544 /* case GL_POINT_FADE_THRESHOLD_SIZE_ARB:*/ 545 /* case GL_POINT_FADE_THRESHOLD_SIZE_SGIS:*/ 546 case GL_POINT_SPRITE_R_MODE_NV: 547 case GL_POINT_SPRITE_COORD_ORIGIN: 548 case GL_POINT_DISTANCE_ATTENUATION: 549 /* case GL_POINT_DISTANCE_ATTENUATION_ARB:*/ 550 break; 551 default: 552 EXPECT_EQ(0, __glPointParameterfvEXT_size(i)) << "i = 0x" << 553 std::setw(4) << std::setfill('0') << std::hex << i; 554 } 555 } 556 } 557