gl.h revision f7190d4b1f63ce94526d526c4c6c326c6833bf2b
1305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot/* $Id: gl.h,v 1.17 1999/11/05 18:20:31 tjump Exp $ */ 2305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot 3305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot/* 4305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot * Mesa 3-D graphics library 5305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot * Version: 3.1 6305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot * 7305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot * Copyright (C) 1999 Brian Paul All Rights Reserved. 8305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot * 9305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot * Permission is hereby granted, free of charge, to any person obtaining a 10305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot * copy of this software and associated documentation files (the "Software"), 11305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot * to deal in the Software without restriction, including without limitation 12305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot * the rights to use, copy, modify, merge, publish, distribute, sublicense, 13305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot * and/or sell copies of the Software, and to permit persons to whom the 14305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot * Software is furnished to do so, subject to the following conditions: 15305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot * 16305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot * The above copyright notice and this permission notice shall be included 17305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot * in all copies or substantial portions of the Software. 18305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot * 19305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 20305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 22305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 23305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 24305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot */ 26305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot 27305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot 28305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot 29305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot 30305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot#ifndef GL_H 31305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot#define GL_H 32305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot 33305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot#if defined(USE_MGL_NAMESPACE) 34305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot#include "gl_mangle.h" 35305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot#endif 36305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot 37305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot 38305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot#if defined(__BEOS__) 39305258da757bc1dff447a27b1c7e510cb65191bbBrett Chabot#include <stdlib.h> /* to get some BeOS-isms */ 40#endif 41 42 43#if !defined(OPENSTEP) && (defined(NeXT) || defined(NeXT_PDO)) 44#define OPENSTEP 45#endif 46 47 48#if defined(_WIN32) && !defined(__WIN32__) 49# define __WIN32__ 50#endif 51 52#if !defined(OPENSTEP) && (defined(__WIN32__) || defined(__CYGWIN32__)) 53# pragma warning( disable : 4068 ) /* unknown pragma */ 54# pragma warning( disable : 4710 ) /* function 'foo' not inlined */ 55# pragma warning( disable : 4711 ) /* function 'foo' selected for automatic inline expansion */ 56# pragma warning( disable : 4127 ) /* conditional expression is constant */ 57# if defined(MESA_MINWARN) 58# pragma warning( disable : 4244 ) /* '=' : conversion from 'const double ' to 'float ', possible loss of data */ 59# pragma warning( disable : 4018 ) /* '<' : signed/unsigned mismatch */ 60# pragma warning( disable : 4305 ) /* '=' : truncation from 'const double ' to 'float ' */ 61# pragma warning( disable : 4550 ) /* 'function' undefined; assuming extern returning int */ 62# pragma warning( disable : 4761 ) /* integral size mismatch in argument; conversion supplied */ 63# endif 64# if defined(_MSC_VER) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */ 65# define GLAPI __declspec(dllexport) 66# define WGLAPI __declspec(dllexport) 67# elif defined(_MSC_VER) && defined(_DLL) /* tag specifying we're building for DLL runtime support */ 68# define GLAPI __declspec(dllimport) 69# define WGLAPI __declspec(dllimport) 70# else /* for use with static link lib build of Win32 edition only */ 71# define GLAPI extern 72# define WGLAPI __declspec(dllimport) 73# endif /* _STATIC_MESA support */ 74# define GLAPIENTRY __stdcall 75# define GLCALLBACK __stdcall 76# define GLWINAPI __stdcall 77# define GLWINAPIV __cdecl 78#else 79/* non-Windows compilation */ 80# define GLAPI extern 81# define GLAPIENTRY 82# define GLCALLBACK 83# define GLWINAPI 84# define GLWINAPIV 85#endif /* WIN32 / CYGWIN32 bracket */ 86 87/* compatability guard so we don't need to change client code */ 88 89#if defined(_WIN32) && !defined(_WINDEF_) && !defined(OPENSTEP) 90# define CALLBACK GLCALLBACK 91typedef int (GLAPIENTRY *PROC)(); 92typedef void *HGLRC; 93typedef void *HDC; 94typedef unsigned long COLORREF; 95#endif 96 97#if defined(_WIN32) && !defined(_WINGDI_) && !defined(OPENSTEP) 98# define WGL_FONT_LINES 0 99# define WGL_FONT_POLYGONS 1 100# ifdef UNICODE 101# define wglUseFontBitmaps wglUseFontBitmapsW 102# define wglUseFontOutlines wglUseFontOutlinesW 103# else 104# define wglUseFontBitmaps wglUseFontBitmapsA 105# define wglUseFontOutlines wglUseFontOutlinesA 106# endif /* !UNICODE */ 107typedef struct tagLAYERPLANEDESCRIPTOR LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR; 108typedef struct _GLYPHMETRICSFLOAT GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT; 109typedef struct tagPIXELFORMATDESCRIPTOR PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR; 110#include <gl/mesa_wgl.h> 111#endif 112 113#ifdef __cplusplus 114extern "C" { 115#endif 116 117 118#ifdef macintosh 119 #pragma enumsalwaysint on 120 #if PRAGMA_IMPORT_SUPPORTED 121 #pragma import on 122 #endif 123#endif 124 125 126 127/* 128 * Apps can test for this symbol to do conditional compilation if needed. 129 */ 130#define MESA 131 132#define MESA_MAJOR_VERSION 3 133#define MESA_MINOR_VERSION 1 134 135 136#define GL_VERSION_1_1 1 137#define GL_VERSION_1_2 1 138 139 140/* 141 * 142 * Enumerations 143 * 144 */ 145 146typedef enum { 147 /* Boolean values */ 148 GL_FALSE = 0, 149 GL_TRUE = 1, 150 151 /* Data types */ 152 GL_BYTE = 0x1400, 153 GL_UNSIGNED_BYTE = 0x1401, 154 GL_SHORT = 0x1402, 155 GL_UNSIGNED_SHORT = 0x1403, 156 GL_INT = 0x1404, 157 GL_UNSIGNED_INT = 0x1405, 158 GL_FLOAT = 0x1406, 159 GL_DOUBLE = 0x140A, 160 GL_2_BYTES = 0x1407, 161 GL_3_BYTES = 0x1408, 162 GL_4_BYTES = 0x1409, 163 164 /* Primitives */ 165 GL_POINTS = 0x0000, 166 GL_LINES = 0x0001, 167 GL_LINE_LOOP = 0x0002, 168 GL_LINE_STRIP = 0x0003, 169 GL_TRIANGLES = 0x0004, 170 GL_TRIANGLE_STRIP = 0x0005, 171 GL_TRIANGLE_FAN = 0x0006, 172 GL_QUADS = 0x0007, 173 GL_QUAD_STRIP = 0x0008, 174 GL_POLYGON = 0x0009, 175 176 /* Vertex Arrays */ 177 GL_VERTEX_ARRAY = 0x8074, 178 GL_NORMAL_ARRAY = 0x8075, 179 GL_COLOR_ARRAY = 0x8076, 180 GL_INDEX_ARRAY = 0x8077, 181 GL_TEXTURE_COORD_ARRAY = 0x8078, 182 GL_EDGE_FLAG_ARRAY = 0x8079, 183 GL_VERTEX_ARRAY_SIZE = 0x807A, 184 GL_VERTEX_ARRAY_TYPE = 0x807B, 185 GL_VERTEX_ARRAY_STRIDE = 0x807C, 186 GL_NORMAL_ARRAY_TYPE = 0x807E, 187 GL_NORMAL_ARRAY_STRIDE = 0x807F, 188 GL_COLOR_ARRAY_SIZE = 0x8081, 189 GL_COLOR_ARRAY_TYPE = 0x8082, 190 GL_COLOR_ARRAY_STRIDE = 0x8083, 191 GL_INDEX_ARRAY_TYPE = 0x8085, 192 GL_INDEX_ARRAY_STRIDE = 0x8086, 193 GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088, 194 GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089, 195 GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808A, 196 GL_EDGE_FLAG_ARRAY_STRIDE = 0x808C, 197 GL_VERTEX_ARRAY_POINTER = 0x808E, 198 GL_NORMAL_ARRAY_POINTER = 0x808F, 199 GL_COLOR_ARRAY_POINTER = 0x8090, 200 GL_INDEX_ARRAY_POINTER = 0x8091, 201 GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092, 202 GL_EDGE_FLAG_ARRAY_POINTER = 0x8093, 203 GL_V2F = 0x2A20, 204 GL_V3F = 0x2A21, 205 GL_C4UB_V2F = 0x2A22, 206 GL_C4UB_V3F = 0x2A23, 207 GL_C3F_V3F = 0x2A24, 208 GL_N3F_V3F = 0x2A25, 209 GL_C4F_N3F_V3F = 0x2A26, 210 GL_T2F_V3F = 0x2A27, 211 GL_T4F_V4F = 0x2A28, 212 GL_T2F_C4UB_V3F = 0x2A29, 213 GL_T2F_C3F_V3F = 0x2A2A, 214 GL_T2F_N3F_V3F = 0x2A2B, 215 GL_T2F_C4F_N3F_V3F = 0x2A2C, 216 GL_T4F_C4F_N3F_V4F = 0x2A2D, 217 218 /* Matrix Mode */ 219 GL_MATRIX_MODE = 0x0BA0, 220 GL_MODELVIEW = 0x1700, 221 GL_PROJECTION = 0x1701, 222 GL_TEXTURE = 0x1702, 223 224 /* Points */ 225 GL_POINT_SMOOTH = 0x0B10, 226 GL_POINT_SIZE = 0x0B11, 227 GL_POINT_SIZE_GRANULARITY = 0x0B13, 228 GL_POINT_SIZE_RANGE = 0x0B12, 229 230 /* Lines */ 231 GL_LINE_SMOOTH = 0x0B20, 232 GL_LINE_STIPPLE = 0x0B24, 233 GL_LINE_STIPPLE_PATTERN = 0x0B25, 234 GL_LINE_STIPPLE_REPEAT = 0x0B26, 235 GL_LINE_WIDTH = 0x0B21, 236 GL_LINE_WIDTH_GRANULARITY = 0x0B23, 237 GL_LINE_WIDTH_RANGE = 0x0B22, 238 239 /* Polygons */ 240 GL_POINT = 0x1B00, 241 GL_LINE = 0x1B01, 242 GL_FILL = 0x1B02, 243 GL_CW = 0x0900, 244 GL_CCW = 0x0901, 245 GL_FRONT = 0x0404, 246 GL_BACK = 0x0405, 247 GL_POLYGON_MODE = 0x0B40, 248 GL_POLYGON_SMOOTH = 0x0B41, 249 GL_POLYGON_STIPPLE = 0x0B42, 250 GL_EDGE_FLAG = 0x0B43, 251 GL_CULL_FACE = 0x0B44, 252 GL_CULL_FACE_MODE = 0x0B45, 253 GL_FRONT_FACE = 0x0B46, 254 GL_POLYGON_OFFSET_FACTOR = 0x8038, 255 GL_POLYGON_OFFSET_UNITS = 0x2A00, 256 GL_POLYGON_OFFSET_POINT = 0x2A01, 257 GL_POLYGON_OFFSET_LINE = 0x2A02, 258 GL_POLYGON_OFFSET_FILL = 0x8037, 259 260 /* Display Lists */ 261 GL_COMPILE = 0x1300, 262 GL_COMPILE_AND_EXECUTE = 0x1301, 263 GL_LIST_BASE = 0x0B32, 264 GL_LIST_INDEX = 0x0B33, 265 GL_LIST_MODE = 0x0B30, 266 267 /* Depth buffer */ 268 GL_NEVER = 0x0200, 269 GL_LESS = 0x0201, 270 GL_GEQUAL = 0x0206, 271 GL_LEQUAL = 0x0203, 272 GL_GREATER = 0x0204, 273 GL_NOTEQUAL = 0x0205, 274 GL_EQUAL = 0x0202, 275 GL_ALWAYS = 0x0207, 276 GL_DEPTH_TEST = 0x0B71, 277 GL_DEPTH_BITS = 0x0D56, 278 GL_DEPTH_CLEAR_VALUE = 0x0B73, 279 GL_DEPTH_FUNC = 0x0B74, 280 GL_DEPTH_RANGE = 0x0B70, 281 GL_DEPTH_WRITEMASK = 0x0B72, 282 GL_DEPTH_COMPONENT = 0x1902, 283 284 /* Lighting */ 285 GL_LIGHTING = 0x0B50, 286 GL_LIGHT0 = 0x4000, 287 GL_LIGHT1 = 0x4001, 288 GL_LIGHT2 = 0x4002, 289 GL_LIGHT3 = 0x4003, 290 GL_LIGHT4 = 0x4004, 291 GL_LIGHT5 = 0x4005, 292 GL_LIGHT6 = 0x4006, 293 GL_LIGHT7 = 0x4007, 294 GL_SPOT_EXPONENT = 0x1205, 295 GL_SPOT_CUTOFF = 0x1206, 296 GL_CONSTANT_ATTENUATION = 0x1207, 297 GL_LINEAR_ATTENUATION = 0x1208, 298 GL_QUADRATIC_ATTENUATION = 0x1209, 299 GL_AMBIENT = 0x1200, 300 GL_DIFFUSE = 0x1201, 301 GL_SPECULAR = 0x1202, 302 GL_SHININESS = 0x1601, 303 GL_EMISSION = 0x1600, 304 GL_POSITION = 0x1203, 305 GL_SPOT_DIRECTION = 0x1204, 306 GL_AMBIENT_AND_DIFFUSE = 0x1602, 307 GL_COLOR_INDEXES = 0x1603, 308 GL_LIGHT_MODEL_TWO_SIDE = 0x0B52, 309 GL_LIGHT_MODEL_LOCAL_VIEWER = 0x0B51, 310 GL_LIGHT_MODEL_AMBIENT = 0x0B53, 311 GL_FRONT_AND_BACK = 0x0408, 312 GL_SHADE_MODEL = 0x0B54, 313 GL_FLAT = 0x1D00, 314 GL_SMOOTH = 0x1D01, 315 GL_COLOR_MATERIAL = 0x0B57, 316 GL_COLOR_MATERIAL_FACE = 0x0B55, 317 GL_COLOR_MATERIAL_PARAMETER = 0x0B56, 318 GL_NORMALIZE = 0x0BA1, 319 320 /* User clipping planes */ 321 GL_CLIP_PLANE0 = 0x3000, 322 GL_CLIP_PLANE1 = 0x3001, 323 GL_CLIP_PLANE2 = 0x3002, 324 GL_CLIP_PLANE3 = 0x3003, 325 GL_CLIP_PLANE4 = 0x3004, 326 GL_CLIP_PLANE5 = 0x3005, 327 328 /* Accumulation buffer */ 329 GL_ACCUM_RED_BITS = 0x0D58, 330 GL_ACCUM_GREEN_BITS = 0x0D59, 331 GL_ACCUM_BLUE_BITS = 0x0D5A, 332 GL_ACCUM_ALPHA_BITS = 0x0D5B, 333 GL_ACCUM_CLEAR_VALUE = 0x0B80, 334 GL_ACCUM = 0x0100, 335 GL_ADD = 0x0104, 336 GL_LOAD = 0x0101, 337 GL_MULT = 0x0103, 338 GL_RETURN = 0x0102, 339 340 /* Alpha testing */ 341 GL_ALPHA_TEST = 0x0BC0, 342 GL_ALPHA_TEST_REF = 0x0BC2, 343 GL_ALPHA_TEST_FUNC = 0x0BC1, 344 345 /* Blending */ 346 GL_BLEND = 0x0BE2, 347 GL_BLEND_SRC = 0x0BE1, 348 GL_BLEND_DST = 0x0BE0, 349 GL_ZERO = 0, 350 GL_ONE = 1, 351 GL_SRC_COLOR = 0x0300, 352 GL_ONE_MINUS_SRC_COLOR = 0x0301, 353 GL_DST_COLOR = 0x0306, 354 GL_ONE_MINUS_DST_COLOR = 0x0307, 355 GL_SRC_ALPHA = 0x0302, 356 GL_ONE_MINUS_SRC_ALPHA = 0x0303, 357 GL_DST_ALPHA = 0x0304, 358 GL_ONE_MINUS_DST_ALPHA = 0x0305, 359 GL_SRC_ALPHA_SATURATE = 0x0308, 360 GL_CONSTANT_COLOR = 0x8001, 361 GL_ONE_MINUS_CONSTANT_COLOR = 0x8002, 362 GL_CONSTANT_ALPHA = 0x8003, 363 GL_ONE_MINUS_CONSTANT_ALPHA = 0x8004, 364 365 /* Render Mode */ 366 GL_FEEDBACK = 0x1C01, 367 GL_RENDER = 0x1C00, 368 GL_SELECT = 0x1C02, 369 370 /* Feedback */ 371 GL_2D = 0x0600, 372 GL_3D = 0x0601, 373 GL_3D_COLOR = 0x0602, 374 GL_3D_COLOR_TEXTURE = 0x0603, 375 GL_4D_COLOR_TEXTURE = 0x0604, 376 GL_POINT_TOKEN = 0x0701, 377 GL_LINE_TOKEN = 0x0702, 378 GL_LINE_RESET_TOKEN = 0x0707, 379 GL_POLYGON_TOKEN = 0x0703, 380 GL_BITMAP_TOKEN = 0x0704, 381 GL_DRAW_PIXEL_TOKEN = 0x0705, 382 GL_COPY_PIXEL_TOKEN = 0x0706, 383 GL_PASS_THROUGH_TOKEN = 0x0700, 384 GL_FEEDBACK_BUFFER_POINTER = 0x0DF0, 385 GL_FEEDBACK_BUFFER_SIZE = 0x0DF1, 386 GL_FEEDBACK_BUFFER_TYPE = 0x0DF2, 387 388 /* Selection */ 389 GL_SELECTION_BUFFER_POINTER = 0x0DF3, 390 GL_SELECTION_BUFFER_SIZE = 0x0DF4, 391 392 /* Fog */ 393 GL_FOG = 0x0B60, 394 GL_FOG_MODE = 0x0B65, 395 GL_FOG_DENSITY = 0x0B62, 396 GL_FOG_COLOR = 0x0B66, 397 GL_FOG_INDEX = 0x0B61, 398 GL_FOG_START = 0x0B63, 399 GL_FOG_END = 0x0B64, 400 GL_LINEAR = 0x2601, 401 GL_EXP = 0x0800, 402 GL_EXP2 = 0x0801, 403 404 /* Logic Ops */ 405 GL_LOGIC_OP = 0x0BF1, 406 GL_INDEX_LOGIC_OP = 0x0BF1, 407 GL_COLOR_LOGIC_OP = 0x0BF2, 408 GL_LOGIC_OP_MODE = 0x0BF0, 409 GL_CLEAR = 0x1500, 410 GL_SET = 0x150F, 411 GL_COPY = 0x1503, 412 GL_COPY_INVERTED = 0x150C, 413 GL_NOOP = 0x1505, 414 GL_INVERT = 0x150A, 415 GL_AND = 0x1501, 416 GL_NAND = 0x150E, 417 GL_OR = 0x1507, 418 GL_NOR = 0x1508, 419 GL_XOR = 0x1506, 420 GL_EQUIV = 0x1509, 421 GL_AND_REVERSE = 0x1502, 422 GL_AND_INVERTED = 0x1504, 423 GL_OR_REVERSE = 0x150B, 424 GL_OR_INVERTED = 0x150D, 425 426 /* Stencil */ 427 GL_STENCIL_TEST = 0x0B90, 428 GL_STENCIL_WRITEMASK = 0x0B98, 429 GL_STENCIL_BITS = 0x0D57, 430 GL_STENCIL_FUNC = 0x0B92, 431 GL_STENCIL_VALUE_MASK = 0x0B93, 432 GL_STENCIL_REF = 0x0B97, 433 GL_STENCIL_FAIL = 0x0B94, 434 GL_STENCIL_PASS_DEPTH_PASS = 0x0B96, 435 GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95, 436 GL_STENCIL_CLEAR_VALUE = 0x0B91, 437 GL_STENCIL_INDEX = 0x1901, 438 GL_KEEP = 0x1E00, 439 GL_REPLACE = 0x1E01, 440 GL_INCR = 0x1E02, 441 GL_DECR = 0x1E03, 442 443 /* Buffers, Pixel Drawing/Reading */ 444 GL_NONE = 0, 445 GL_LEFT = 0x0406, 446 GL_RIGHT = 0x0407, 447 /*GL_FRONT = 0x0404, */ 448 /*GL_BACK = 0x0405, */ 449 /*GL_FRONT_AND_BACK = 0x0408, */ 450 GL_FRONT_LEFT = 0x0400, 451 GL_FRONT_RIGHT = 0x0401, 452 GL_BACK_LEFT = 0x0402, 453 GL_BACK_RIGHT = 0x0403, 454 GL_AUX0 = 0x0409, 455 GL_AUX1 = 0x040A, 456 GL_AUX2 = 0x040B, 457 GL_AUX3 = 0x040C, 458 GL_COLOR_INDEX = 0x1900, 459 GL_RED = 0x1903, 460 GL_GREEN = 0x1904, 461 GL_BLUE = 0x1905, 462 GL_ALPHA = 0x1906, 463 GL_LUMINANCE = 0x1909, 464 GL_LUMINANCE_ALPHA = 0x190A, 465 GL_ALPHA_BITS = 0x0D55, 466 GL_RED_BITS = 0x0D52, 467 GL_GREEN_BITS = 0x0D53, 468 GL_BLUE_BITS = 0x0D54, 469 GL_INDEX_BITS = 0x0D51, 470 GL_SUBPIXEL_BITS = 0x0D50, 471 GL_AUX_BUFFERS = 0x0C00, 472 GL_READ_BUFFER = 0x0C02, 473 GL_DRAW_BUFFER = 0x0C01, 474 GL_DOUBLEBUFFER = 0x0C32, 475 GL_STEREO = 0x0C33, 476 GL_BITMAP = 0x1A00, 477 GL_COLOR = 0x1800, 478 GL_DEPTH = 0x1801, 479 GL_STENCIL = 0x1802, 480 GL_DITHER = 0x0BD0, 481 GL_RGB = 0x1907, 482 GL_RGBA = 0x1908, 483 484 /* Implementation limits */ 485 GL_MAX_LIST_NESTING = 0x0B31, 486 GL_MAX_ATTRIB_STACK_DEPTH = 0x0D35, 487 GL_MAX_MODELVIEW_STACK_DEPTH = 0x0D36, 488 GL_MAX_NAME_STACK_DEPTH = 0x0D37, 489 GL_MAX_PROJECTION_STACK_DEPTH = 0x0D38, 490 GL_MAX_TEXTURE_STACK_DEPTH = 0x0D39, 491 GL_MAX_EVAL_ORDER = 0x0D30, 492 GL_MAX_LIGHTS = 0x0D31, 493 GL_MAX_CLIP_PLANES = 0x0D32, 494 GL_MAX_TEXTURE_SIZE = 0x0D33, 495 GL_MAX_PIXEL_MAP_TABLE = 0x0D34, 496 GL_MAX_VIEWPORT_DIMS = 0x0D3A, 497 GL_MAX_CLIENT_ATTRIB_STACK_DEPTH= 0x0D3B, 498 499 /* Gets */ 500 GL_ATTRIB_STACK_DEPTH = 0x0BB0, 501 GL_CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1, 502 GL_COLOR_CLEAR_VALUE = 0x0C22, 503 GL_COLOR_WRITEMASK = 0x0C23, 504 GL_CURRENT_INDEX = 0x0B01, 505 GL_CURRENT_COLOR = 0x0B00, 506 GL_CURRENT_NORMAL = 0x0B02, 507 GL_CURRENT_RASTER_COLOR = 0x0B04, 508 GL_CURRENT_RASTER_DISTANCE = 0x0B09, 509 GL_CURRENT_RASTER_INDEX = 0x0B05, 510 GL_CURRENT_RASTER_POSITION = 0x0B07, 511 GL_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06, 512 GL_CURRENT_RASTER_POSITION_VALID = 0x0B08, 513 GL_CURRENT_TEXTURE_COORDS = 0x0B03, 514 GL_INDEX_CLEAR_VALUE = 0x0C20, 515 GL_INDEX_MODE = 0x0C30, 516 GL_INDEX_WRITEMASK = 0x0C21, 517 GL_MODELVIEW_MATRIX = 0x0BA6, 518 GL_MODELVIEW_STACK_DEPTH = 0x0BA3, 519 GL_NAME_STACK_DEPTH = 0x0D70, 520 GL_PROJECTION_MATRIX = 0x0BA7, 521 GL_PROJECTION_STACK_DEPTH = 0x0BA4, 522 GL_RENDER_MODE = 0x0C40, 523 GL_RGBA_MODE = 0x0C31, 524 GL_TEXTURE_MATRIX = 0x0BA8, 525 GL_TEXTURE_STACK_DEPTH = 0x0BA5, 526 GL_VIEWPORT = 0x0BA2, 527 528 /* Evaluators */ 529 GL_AUTO_NORMAL = 0x0D80, 530 GL_MAP1_COLOR_4 = 0x0D90, 531 GL_MAP1_GRID_DOMAIN = 0x0DD0, 532 GL_MAP1_GRID_SEGMENTS = 0x0DD1, 533 GL_MAP1_INDEX = 0x0D91, 534 GL_MAP1_NORMAL = 0x0D92, 535 GL_MAP1_TEXTURE_COORD_1 = 0x0D93, 536 GL_MAP1_TEXTURE_COORD_2 = 0x0D94, 537 GL_MAP1_TEXTURE_COORD_3 = 0x0D95, 538 GL_MAP1_TEXTURE_COORD_4 = 0x0D96, 539 GL_MAP1_VERTEX_3 = 0x0D97, 540 GL_MAP1_VERTEX_4 = 0x0D98, 541 GL_MAP2_COLOR_4 = 0x0DB0, 542 GL_MAP2_GRID_DOMAIN = 0x0DD2, 543 GL_MAP2_GRID_SEGMENTS = 0x0DD3, 544 GL_MAP2_INDEX = 0x0DB1, 545 GL_MAP2_NORMAL = 0x0DB2, 546 GL_MAP2_TEXTURE_COORD_1 = 0x0DB3, 547 GL_MAP2_TEXTURE_COORD_2 = 0x0DB4, 548 GL_MAP2_TEXTURE_COORD_3 = 0x0DB5, 549 GL_MAP2_TEXTURE_COORD_4 = 0x0DB6, 550 GL_MAP2_VERTEX_3 = 0x0DB7, 551 GL_MAP2_VERTEX_4 = 0x0DB8, 552 GL_COEFF = 0x0A00, 553 GL_DOMAIN = 0x0A02, 554 GL_ORDER = 0x0A01, 555 556 /* Hints */ 557 GL_FOG_HINT = 0x0C54, 558 GL_LINE_SMOOTH_HINT = 0x0C52, 559 GL_PERSPECTIVE_CORRECTION_HINT = 0x0C50, 560 GL_POINT_SMOOTH_HINT = 0x0C51, 561 GL_POLYGON_SMOOTH_HINT = 0x0C53, 562 GL_DONT_CARE = 0x1100, 563 GL_FASTEST = 0x1101, 564 GL_NICEST = 0x1102, 565 566 /* Scissor box */ 567 GL_SCISSOR_TEST = 0x0C11, 568 GL_SCISSOR_BOX = 0x0C10, 569 570 /* Pixel Mode / Transfer */ 571 GL_MAP_COLOR = 0x0D10, 572 GL_MAP_STENCIL = 0x0D11, 573 GL_INDEX_SHIFT = 0x0D12, 574 GL_INDEX_OFFSET = 0x0D13, 575 GL_RED_SCALE = 0x0D14, 576 GL_RED_BIAS = 0x0D15, 577 GL_GREEN_SCALE = 0x0D18, 578 GL_GREEN_BIAS = 0x0D19, 579 GL_BLUE_SCALE = 0x0D1A, 580 GL_BLUE_BIAS = 0x0D1B, 581 GL_ALPHA_SCALE = 0x0D1C, 582 GL_ALPHA_BIAS = 0x0D1D, 583 GL_DEPTH_SCALE = 0x0D1E, 584 GL_DEPTH_BIAS = 0x0D1F, 585 GL_PIXEL_MAP_S_TO_S_SIZE = 0x0CB1, 586 GL_PIXEL_MAP_I_TO_I_SIZE = 0x0CB0, 587 GL_PIXEL_MAP_I_TO_R_SIZE = 0x0CB2, 588 GL_PIXEL_MAP_I_TO_G_SIZE = 0x0CB3, 589 GL_PIXEL_MAP_I_TO_B_SIZE = 0x0CB4, 590 GL_PIXEL_MAP_I_TO_A_SIZE = 0x0CB5, 591 GL_PIXEL_MAP_R_TO_R_SIZE = 0x0CB6, 592 GL_PIXEL_MAP_G_TO_G_SIZE = 0x0CB7, 593 GL_PIXEL_MAP_B_TO_B_SIZE = 0x0CB8, 594 GL_PIXEL_MAP_A_TO_A_SIZE = 0x0CB9, 595 GL_PIXEL_MAP_S_TO_S = 0x0C71, 596 GL_PIXEL_MAP_I_TO_I = 0x0C70, 597 GL_PIXEL_MAP_I_TO_R = 0x0C72, 598 GL_PIXEL_MAP_I_TO_G = 0x0C73, 599 GL_PIXEL_MAP_I_TO_B = 0x0C74, 600 GL_PIXEL_MAP_I_TO_A = 0x0C75, 601 GL_PIXEL_MAP_R_TO_R = 0x0C76, 602 GL_PIXEL_MAP_G_TO_G = 0x0C77, 603 GL_PIXEL_MAP_B_TO_B = 0x0C78, 604 GL_PIXEL_MAP_A_TO_A = 0x0C79, 605 GL_PACK_ALIGNMENT = 0x0D05, 606 GL_PACK_LSB_FIRST = 0x0D01, 607 GL_PACK_ROW_LENGTH = 0x0D02, 608 GL_PACK_SKIP_PIXELS = 0x0D04, 609 GL_PACK_SKIP_ROWS = 0x0D03, 610 GL_PACK_SWAP_BYTES = 0x0D00, 611 GL_UNPACK_ALIGNMENT = 0x0CF5, 612 GL_UNPACK_LSB_FIRST = 0x0CF1, 613 GL_UNPACK_ROW_LENGTH = 0x0CF2, 614 GL_UNPACK_SKIP_PIXELS = 0x0CF4, 615 GL_UNPACK_SKIP_ROWS = 0x0CF3, 616 GL_UNPACK_SWAP_BYTES = 0x0CF0, 617 GL_ZOOM_X = 0x0D16, 618 GL_ZOOM_Y = 0x0D17, 619 620 /* Texture mapping */ 621 GL_TEXTURE_ENV = 0x2300, 622 GL_TEXTURE_ENV_MODE = 0x2200, 623 GL_TEXTURE_1D = 0x0DE0, 624 GL_TEXTURE_2D = 0x0DE1, 625 GL_TEXTURE_WRAP_S = 0x2802, 626 GL_TEXTURE_WRAP_T = 0x2803, 627 GL_TEXTURE_MAG_FILTER = 0x2800, 628 GL_TEXTURE_MIN_FILTER = 0x2801, 629 GL_TEXTURE_ENV_COLOR = 0x2201, 630 GL_TEXTURE_GEN_S = 0x0C60, 631 GL_TEXTURE_GEN_T = 0x0C61, 632 GL_TEXTURE_GEN_MODE = 0x2500, 633 GL_TEXTURE_BORDER_COLOR = 0x1004, 634 GL_TEXTURE_WIDTH = 0x1000, 635 GL_TEXTURE_HEIGHT = 0x1001, 636 GL_TEXTURE_BORDER = 0x1005, 637 GL_TEXTURE_COMPONENTS = 0x1003, 638 GL_TEXTURE_RED_SIZE = 0x805C, 639 GL_TEXTURE_GREEN_SIZE = 0x805D, 640 GL_TEXTURE_BLUE_SIZE = 0x805E, 641 GL_TEXTURE_ALPHA_SIZE = 0x805F, 642 GL_TEXTURE_LUMINANCE_SIZE = 0x8060, 643 GL_TEXTURE_INTENSITY_SIZE = 0x8061, 644 GL_NEAREST_MIPMAP_NEAREST = 0x2700, 645 GL_NEAREST_MIPMAP_LINEAR = 0x2702, 646 GL_LINEAR_MIPMAP_NEAREST = 0x2701, 647 GL_LINEAR_MIPMAP_LINEAR = 0x2703, 648 GL_OBJECT_LINEAR = 0x2401, 649 GL_OBJECT_PLANE = 0x2501, 650 GL_EYE_LINEAR = 0x2400, 651 GL_EYE_PLANE = 0x2502, 652 GL_SPHERE_MAP = 0x2402, 653 GL_DECAL = 0x2101, 654 GL_MODULATE = 0x2100, 655 GL_NEAREST = 0x2600, 656 GL_REPEAT = 0x2901, 657 GL_CLAMP = 0x2900, 658 GL_S = 0x2000, 659 GL_T = 0x2001, 660 GL_R = 0x2002, 661 GL_Q = 0x2003, 662 GL_TEXTURE_GEN_R = 0x0C62, 663 GL_TEXTURE_GEN_Q = 0x0C63, 664 665 /* GL 1.1 texturing */ 666 GL_PROXY_TEXTURE_1D = 0x8063, 667 GL_PROXY_TEXTURE_2D = 0x8064, 668 GL_TEXTURE_PRIORITY = 0x8066, 669 GL_TEXTURE_RESIDENT = 0x8067, 670 GL_TEXTURE_BINDING_1D = 0x8068, 671 GL_TEXTURE_BINDING_2D = 0x8069, 672 GL_TEXTURE_INTERNAL_FORMAT = 0x1003, 673 674 /* GL 1.2 texturing */ 675 GL_PACK_SKIP_IMAGES = 0x806B, 676 GL_PACK_IMAGE_HEIGHT = 0x806C, 677 GL_UNPACK_SKIP_IMAGES = 0x806D, 678 GL_UNPACK_IMAGE_HEIGHT = 0x806E, 679 GL_TEXTURE_3D = 0x806F, 680 GL_PROXY_TEXTURE_3D = 0x8070, 681 GL_TEXTURE_DEPTH = 0x8071, 682 GL_TEXTURE_WRAP_R = 0x8072, 683 GL_MAX_3D_TEXTURE_SIZE = 0x8073, 684 GL_TEXTURE_BINDING_3D = 0x806A, 685 686 /* Internal texture formats (GL 1.1) */ 687 GL_ALPHA4 = 0x803B, 688 GL_ALPHA8 = 0x803C, 689 GL_ALPHA12 = 0x803D, 690 GL_ALPHA16 = 0x803E, 691 GL_LUMINANCE4 = 0x803F, 692 GL_LUMINANCE8 = 0x8040, 693 GL_LUMINANCE12 = 0x8041, 694 GL_LUMINANCE16 = 0x8042, 695 GL_LUMINANCE4_ALPHA4 = 0x8043, 696 GL_LUMINANCE6_ALPHA2 = 0x8044, 697 GL_LUMINANCE8_ALPHA8 = 0x8045, 698 GL_LUMINANCE12_ALPHA4 = 0x8046, 699 GL_LUMINANCE12_ALPHA12 = 0x8047, 700 GL_LUMINANCE16_ALPHA16 = 0x8048, 701 GL_INTENSITY = 0x8049, 702 GL_INTENSITY4 = 0x804A, 703 GL_INTENSITY8 = 0x804B, 704 GL_INTENSITY12 = 0x804C, 705 GL_INTENSITY16 = 0x804D, 706 GL_R3_G3_B2 = 0x2A10, 707 GL_RGB4 = 0x804F, 708 GL_RGB5 = 0x8050, 709 GL_RGB8 = 0x8051, 710 GL_RGB10 = 0x8052, 711 GL_RGB12 = 0x8053, 712 GL_RGB16 = 0x8054, 713 GL_RGBA2 = 0x8055, 714 GL_RGBA4 = 0x8056, 715 GL_RGB5_A1 = 0x8057, 716 GL_RGBA8 = 0x8058, 717 GL_RGB10_A2 = 0x8059, 718 GL_RGBA12 = 0x805A, 719 GL_RGBA16 = 0x805B, 720 721 /* Utility */ 722 GL_VENDOR = 0x1F00, 723 GL_RENDERER = 0x1F01, 724 GL_VERSION = 0x1F02, 725 GL_EXTENSIONS = 0x1F03, 726 727 /* Errors */ 728 GL_INVALID_VALUE = 0x0501, 729 GL_INVALID_ENUM = 0x0500, 730 GL_INVALID_OPERATION = 0x0502, 731 GL_STACK_OVERFLOW = 0x0503, 732 GL_STACK_UNDERFLOW = 0x0504, 733 GL_OUT_OF_MEMORY = 0x0505, 734 735 /* 736 * Extensions 737 */ 738 739 /* GL_EXT_blend_minmax and GL_EXT_blend_color */ 740 GL_CONSTANT_COLOR_EXT = 0x8001, 741 GL_ONE_MINUS_CONSTANT_COLOR_EXT = 0x8002, 742 GL_CONSTANT_ALPHA_EXT = 0x8003, 743 GL_ONE_MINUS_CONSTANT_ALPHA_EXT = 0x8004, 744 GL_BLEND_EQUATION_EXT = 0x8009, 745 GL_MIN_EXT = 0x8007, 746 GL_MAX_EXT = 0x8008, 747 GL_FUNC_ADD_EXT = 0x8006, 748 GL_FUNC_SUBTRACT_EXT = 0x800A, 749 GL_FUNC_REVERSE_SUBTRACT_EXT = 0x800B, 750 GL_BLEND_COLOR_EXT = 0x8005, 751 752 /* GL_EXT_polygon_offset */ 753 GL_POLYGON_OFFSET_EXT = 0x8037, 754 GL_POLYGON_OFFSET_FACTOR_EXT = 0x8038, 755 GL_POLYGON_OFFSET_BIAS_EXT = 0x8039, 756 757 /* GL_EXT_vertex_array */ 758 GL_VERTEX_ARRAY_EXT = 0x8074, 759 GL_NORMAL_ARRAY_EXT = 0x8075, 760 GL_COLOR_ARRAY_EXT = 0x8076, 761 GL_INDEX_ARRAY_EXT = 0x8077, 762 GL_TEXTURE_COORD_ARRAY_EXT = 0x8078, 763 GL_EDGE_FLAG_ARRAY_EXT = 0x8079, 764 GL_VERTEX_ARRAY_SIZE_EXT = 0x807A, 765 GL_VERTEX_ARRAY_TYPE_EXT = 0x807B, 766 GL_VERTEX_ARRAY_STRIDE_EXT = 0x807C, 767 GL_VERTEX_ARRAY_COUNT_EXT = 0x807D, 768 GL_NORMAL_ARRAY_TYPE_EXT = 0x807E, 769 GL_NORMAL_ARRAY_STRIDE_EXT = 0x807F, 770 GL_NORMAL_ARRAY_COUNT_EXT = 0x8080, 771 GL_COLOR_ARRAY_SIZE_EXT = 0x8081, 772 GL_COLOR_ARRAY_TYPE_EXT = 0x8082, 773 GL_COLOR_ARRAY_STRIDE_EXT = 0x8083, 774 GL_COLOR_ARRAY_COUNT_EXT = 0x8084, 775 GL_INDEX_ARRAY_TYPE_EXT = 0x8085, 776 GL_INDEX_ARRAY_STRIDE_EXT = 0x8086, 777 GL_INDEX_ARRAY_COUNT_EXT = 0x8087, 778 GL_TEXTURE_COORD_ARRAY_SIZE_EXT = 0x8088, 779 GL_TEXTURE_COORD_ARRAY_TYPE_EXT = 0x8089, 780 GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = 0x808A, 781 GL_TEXTURE_COORD_ARRAY_COUNT_EXT = 0x808B, 782 GL_EDGE_FLAG_ARRAY_STRIDE_EXT = 0x808C, 783 GL_EDGE_FLAG_ARRAY_COUNT_EXT = 0x808D, 784 GL_VERTEX_ARRAY_POINTER_EXT = 0x808E, 785 GL_NORMAL_ARRAY_POINTER_EXT = 0x808F, 786 GL_COLOR_ARRAY_POINTER_EXT = 0x8090, 787 GL_INDEX_ARRAY_POINTER_EXT = 0x8091, 788 GL_TEXTURE_COORD_ARRAY_POINTER_EXT = 0x8092, 789 GL_EDGE_FLAG_ARRAY_POINTER_EXT = 0x8093, 790 791 /* GL_EXT_texture_object */ 792 GL_TEXTURE_PRIORITY_EXT = 0x8066, 793 GL_TEXTURE_RESIDENT_EXT = 0x8067, 794 GL_TEXTURE_1D_BINDING_EXT = 0x8068, 795 GL_TEXTURE_2D_BINDING_EXT = 0x8069, 796 797 /* GL_EXT_texture3D */ 798 GL_PACK_SKIP_IMAGES_EXT = 0x806B, 799 GL_PACK_IMAGE_HEIGHT_EXT = 0x806C, 800 GL_UNPACK_SKIP_IMAGES_EXT = 0x806D, 801 GL_UNPACK_IMAGE_HEIGHT_EXT = 0x806E, 802 GL_TEXTURE_3D_EXT = 0x806F, 803 GL_PROXY_TEXTURE_3D_EXT = 0x8070, 804 GL_TEXTURE_DEPTH_EXT = 0x8071, 805 GL_TEXTURE_WRAP_R_EXT = 0x8072, 806 GL_MAX_3D_TEXTURE_SIZE_EXT = 0x8073, 807 GL_TEXTURE_3D_BINDING_EXT = 0x806A, 808 809 /* GL_EXT_paletted_texture */ 810 GL_TABLE_TOO_LARGE_EXT = 0x8031, 811 GL_COLOR_TABLE_FORMAT_EXT = 0x80D8, 812 GL_COLOR_TABLE_WIDTH_EXT = 0x80D9, 813 GL_COLOR_TABLE_RED_SIZE_EXT = 0x80DA, 814 GL_COLOR_TABLE_GREEN_SIZE_EXT = 0x80DB, 815 GL_COLOR_TABLE_BLUE_SIZE_EXT = 0x80DC, 816 GL_COLOR_TABLE_ALPHA_SIZE_EXT = 0x80DD, 817 GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = 0x80DE, 818 GL_COLOR_TABLE_INTENSITY_SIZE_EXT = 0x80DF, 819 GL_TEXTURE_INDEX_SIZE_EXT = 0x80ED, 820 GL_COLOR_INDEX1_EXT = 0x80E2, 821 GL_COLOR_INDEX2_EXT = 0x80E3, 822 GL_COLOR_INDEX4_EXT = 0x80E4, 823 GL_COLOR_INDEX8_EXT = 0x80E5, 824 GL_COLOR_INDEX12_EXT = 0x80E6, 825 GL_COLOR_INDEX16_EXT = 0x80E7, 826 827 /* GL_EXT_shared_texture_palette */ 828 GL_SHARED_TEXTURE_PALETTE_EXT = 0x81FB, 829 830 /* GL_EXT_point_parameters */ 831 GL_POINT_SIZE_MIN_EXT = 0x8126, 832 GL_POINT_SIZE_MAX_EXT = 0x8127, 833 GL_POINT_FADE_THRESHOLD_SIZE_EXT = 0x8128, 834 GL_DISTANCE_ATTENUATION_EXT = 0x8129, 835 836 /* GL_EXT_rescale_normal */ 837 GL_RESCALE_NORMAL_EXT = 0x803A, 838 839 /* GL_EXT_abgr */ 840 GL_ABGR_EXT = 0x8000, 841 842 /* GL_EXT_stencil_wrap */ 843 GL_INCR_WRAP_EXT = 0x8507, 844 GL_DECR_WRAP_EXT = 0x8508, 845 846 /* GL_SGIS_texture_edge_clamp */ 847 GL_CLAMP_TO_EDGE_SGIS = 0x812F, 848 849 /* GL_INGR_blend_func_separate */ 850 GL_BLEND_DST_RGB_INGR = 0x80C8, 851 GL_BLEND_SRC_RGB_INGR = 0x80C9, 852 GL_BLEND_DST_ALPHA_INGR = 0x80CA, 853 GL_BLEND_SRC_ALPHA_INGR = 0x80CB, 854 855 /* OpenGL 1.2 */ 856 GL_RESCALE_NORMAL = 0x803A, 857 GL_CLAMP_TO_EDGE = 0x812F, 858 GL_MAX_ELEMENTS_VERTICES = 0x80E8, 859 GL_MAX_ELEMENTS_INDICES = 0x80E9, 860 GL_BGR = 0x80E0, 861 GL_BGRA = 0x80E1, 862 GL_UNSIGNED_BYTE_3_3_2 = 0x8032, 863 GL_UNSIGNED_BYTE_2_3_3_REV = 0x8362, 864 GL_UNSIGNED_SHORT_5_6_5 = 0x8363, 865 GL_UNSIGNED_SHORT_5_6_5_REV = 0x8364, 866 GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033, 867 GL_UNSIGNED_SHORT_4_4_4_4_REV = 0x8365, 868 GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034, 869 GL_UNSIGNED_SHORT_1_5_5_5_REV = 0x8366, 870 GL_UNSIGNED_INT_8_8_8_8 = 0x8035, 871 GL_UNSIGNED_INT_8_8_8_8_REV = 0x8367, 872 GL_UNSIGNED_INT_10_10_10_2 = 0x8036, 873 GL_UNSIGNED_INT_2_10_10_10_REV = 0x8368, 874 GL_LIGHT_MODEL_COLOR_CONTROL = 0x81F8, 875 GL_SINGLE_COLOR = 0x81F9, 876 GL_SEPARATE_SPECULAR_COLOR = 0x81FA, 877 GL_TEXTURE_MIN_LOD = 0x813A, 878 GL_TEXTURE_MAX_LOD = 0x813B, 879 GL_TEXTURE_BASE_LEVEL = 0x813C, 880 GL_TEXTURE_MAX_LEVEL = 0x813D, 881 882 /* GL_ARB_multitexture */ 883 GL_TEXTURE0_ARB = 0x84C0, 884 GL_TEXTURE1_ARB = 0x84C1, 885 GL_TEXTURE2_ARB = 0x84C2, 886 GL_TEXTURE3_ARB = 0x84C3, 887 GL_TEXTURE4_ARB = 0x84C4, 888 GL_TEXTURE5_ARB = 0x84C5, 889 GL_TEXTURE6_ARB = 0x84C6, 890 GL_TEXTURE7_ARB = 0x84C7, 891 GL_TEXTURE8_ARB = 0x84C8, 892 GL_TEXTURE9_ARB = 0x84C9, 893 GL_TEXTURE10_ARB = 0x84CA, 894 GL_TEXTURE11_ARB = 0x84CB, 895 GL_TEXTURE12_ARB = 0x84CC, 896 GL_TEXTURE13_ARB = 0x84CD, 897 GL_TEXTURE14_ARB = 0x84CE, 898 GL_TEXTURE15_ARB = 0x84CF, 899 GL_TEXTURE16_ARB = 0x84D0, 900 GL_TEXTURE17_ARB = 0x84D1, 901 GL_TEXTURE18_ARB = 0x84D2, 902 GL_TEXTURE19_ARB = 0x84D3, 903 GL_TEXTURE20_ARB = 0x84D4, 904 GL_TEXTURE21_ARB = 0x84D5, 905 GL_TEXTURE22_ARB = 0x84D6, 906 GL_TEXTURE23_ARB = 0x84D7, 907 GL_TEXTURE24_ARB = 0x84D8, 908 GL_TEXTURE25_ARB = 0x84D9, 909 GL_TEXTURE26_ARB = 0x84DA, 910 GL_TEXTURE27_ARB = 0x84DB, 911 GL_TEXTURE28_ARB = 0x84DC, 912 GL_TEXTURE29_ARB = 0x84DD, 913 GL_TEXTURE30_ARB = 0x84DE, 914 GL_TEXTURE31_ARB = 0x84DF, 915 GL_ACTIVE_TEXTURE_ARB = 0x84E0, 916 GL_CLIENT_ACTIVE_TEXTURE_ARB = 0x84E1, 917 GL_MAX_TEXTURE_UNITS_ARB = 0x84E2, 918 919 /* 920 * OpenGL 1.2 imaging subset (NOT IMPLEMENTED BY MESA) 921 */ 922 /* GL_EXT_color_table */ 923 GL_COLOR_TABLE = 0x80D0, 924 GL_POST_CONVOLUTION_COLOR_TABLE = 0x80D1, 925 GL_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D2, 926 GL_PROXY_COLOR_TABLE = 0x80D3, 927 GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = 0x80D4, 928 GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D5, 929 GL_COLOR_TABLE_SCALE = 0x80D6, 930 GL_COLOR_TABLE_BIAS = 0x80D7, 931 GL_COLOR_TABLE_FORMAT = 0x80D8, 932 GL_COLOR_TABLE_WIDTH = 0x80D9, 933 GL_COLOR_TABLE_RED_SIZE = 0x80DA, 934 GL_COLOR_TABLE_GREEN_SIZE = 0x80DB, 935 GL_COLOR_TABLE_BLUE_SIZE = 0x80DC, 936 GL_COLOR_TABLE_ALPHA_SIZE = 0x80DD, 937 GL_COLOR_TABLE_LUMINANCE_SIZE = 0x80DE, 938 GL_COLOR_TABLE_INTENSITY_SIZE = 0x80DF, 939 /* GL_EXT_convolution and GL_HP_convolution_border_modes */ 940 GL_CONVOLUTION_1D = 0x8010, 941 GL_CONVOLUTION_2D = 0x8011, 942 GL_SEPARABLE_2D = 0x8012, 943 GL_CONVOLUTION_BORDER_MODE = 0x8013, 944 GL_CONVOLUTION_FILTER_SCALE = 0x8014, 945 GL_CONVOLUTION_FILTER_BIAS = 0x8015, 946 GL_REDUCE = 0x8016, 947 GL_CONVOLUTION_FORMAT = 0x8017, 948 GL_CONVOLUTION_WIDTH = 0x8018, 949 GL_CONVOLUTION_HEIGHT = 0x8019, 950 GL_MAX_CONVOLUTION_WIDTH = 0x801A, 951 GL_MAX_CONVOLUTION_HEIGHT = 0x801B, 952 GL_POST_CONVOLUTION_RED_SCALE = 0x801C, 953 GL_POST_CONVOLUTION_GREEN_SCALE = 0x801D, 954 GL_POST_CONVOLUTION_BLUE_SCALE = 0x801E, 955 GL_POST_CONVOLUTION_ALPHA_SCALE = 0x801F, 956 GL_POST_CONVOLUTION_RED_BIAS = 0x8020, 957 GL_POST_CONVOLUTION_GREEN_BIAS = 0x8021, 958 GL_POST_CONVOLUTION_BLUE_BIAS = 0x8022, 959 GL_POST_CONVOLUTION_ALPHA_BIAS = 0x8023, 960 GL_CONSTANT_BORDER = 0x8151, 961 GL_REPLICATE_BORDER = 0x8153, 962 GL_CONVOLUTION_BORDER_COLOR = 0x8154, 963 /* GL_SGI_color_matrix */ 964 GL_COLOR_MATRIX = 0x80B1, 965 GL_COLOR_MATRIX_STACK_DEPTH = 0x80B2, 966 GL_MAX_COLOR_MATRIX_STACK_DEPTH = 0x80B3, 967 GL_POST_COLOR_MATRIX_RED_SCALE = 0x80B4, 968 GL_POST_COLOR_MATRIX_GREEN_SCALE = 0x80B5, 969 GL_POST_COLOR_MATRIX_BLUE_SCALE = 0x80B6, 970 GL_POST_COLOR_MATRIX_ALPHA_SCALE = 0x80B7, 971 GL_POST_COLOR_MATRIX_RED_BIAS = 0x80B8, 972 GL_POST_COLOR_MATRIX_GREEN_BIAS = 0x80B9, 973 GL_POST_COLOR_MATRIX_BLUE_BIAS = 0x80BA, 974 GL_POST_COLOR_MATRIX_ALPHA_BIAS = 0x80BB, 975 /* GL_EXT_histogram */ 976 GL_HISTOGRAM = 0x8024, 977 GL_PROXY_HISTOGRAM = 0x8025, 978 GL_HISTOGRAM_WIDTH = 0x8026, 979 GL_HISTOGRAM_FORMAT = 0x8027, 980 GL_HISTOGRAM_RED_SIZE = 0x8028, 981 GL_HISTOGRAM_GREEN_SIZE = 0x8029, 982 GL_HISTOGRAM_BLUE_SIZE = 0x802A, 983 GL_HISTOGRAM_ALPHA_SIZE = 0x802B, 984 GL_HISTOGRAM_LUMINANCE_SIZE = 0x802C, 985 GL_HISTOGRAM_SINK = 0x802D, 986 GL_MINMAX = 0x802E, 987 GL_MINMAX_FORMAT = 0x802F, 988 GL_MINMAX_SINK = 0x8030, 989 GL_TABLE_TOO_LARGE = 0x8031, 990 /* GL_EXT_blend_color, GL_EXT_blend_minmax */ 991 GL_BLEND_EQUATION = 0x8009, 992 GL_MIN = 0x8007, 993 GL_MAX = 0x8008, 994 GL_FUNC_ADD = 0x8006, 995 GL_FUNC_SUBTRACT = 0x800A, 996 GL_FUNC_REVERSE_SUBTRACT = 0x800B, 997 GL_BLEND_COLOR = 0x8005, 998 999 /* GL_NV_texgen_reflection (nVidia) */ 1000 GL_NORMAL_MAP_NV = 0x8511, 1001 GL_REFLECTION_MAP_NV = 0x8512, 1002 1003 /* GL_PGI_misc_hints */ 1004 GL_PREFER_DOUBLEBUFFER_HINT_PGI = 107000, 1005 GL_STRICT_DEPTHFUNC_HINT_PGI = 107030, 1006 GL_STRICT_LIGHTING_HINT_PGI = 107031, 1007 GL_STRICT_SCISSOR_HINT_PGI = 107032, 1008 GL_FULL_STIPPLE_HINT_PGI = 107033, 1009 GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI = 107011, 1010 GL_NATIVE_GRAPHICS_END_HINT_PGI = 107012, 1011 GL_CONSERVE_MEMORY_HINT_PGI = 107005, 1012 GL_RECLAIM_MEMORY_HINT_PGI = 107006, 1013 GL_ALWAYS_FAST_HINT_PGI = 107020, 1014 GL_ALWAYS_SOFT_HINT_PGI = 107021, 1015 GL_ALLOW_DRAW_OBJ_HINT_PGI = 107022, 1016 GL_ALLOW_DRAW_WIN_HINT_PGI = 107023, 1017 GL_ALLOW_DRAW_FRG_HINT_PGI = 107024, 1018 GL_ALLOW_DRAW_SPN_HINT_PGI = 107024, 1019 GL_ALLOW_DRAW_MEM_HINT_PGI = 107025, 1020 GL_CLIP_NEAR_HINT_PGI = 107040, 1021 GL_CLIP_FAR_HINT_PGI = 107041, 1022 GL_WIDE_LINE_HINT_PGI = 107042, 1023 GL_BACK_NORMALS_HINT_PGI = 107043, 1024 GL_NATIVE_GRAPHICS_HANDLE_PGI = 107010, 1025 1026 /* GL_EXT_compiled_vertex_array */ 1027 GL_ARRAY_ELEMENT_LOCK_FIRST_SGI = 0x81A8, 1028 GL_ARRAY_ELEMENT_LOCK_COUNT_SGI = 0x81A9, 1029 1030 /* GL_EXT_clip_volume_hint */ 1031 GL_CLIP_VOLUME_CLIPPING_HINT_EXT = 0x80F0 1032 1033 1034/* When you add new enums, please make sure you update the strings 1035 * in enums.c as well... 1036 */ 1037 1038} 1039#ifdef CENTERLINE_CLPP 1040 /* CenterLine C++ workaround: */ 1041 gl_enum; 1042 typedef int GLenum; 1043#else 1044 /* all other compilers */ 1045 GLenum; 1046#endif 1047 1048 1049/* GL_NO_ERROR must be zero */ 1050#define GL_NO_ERROR 0 1051 1052 1053 1054enum { 1055 GL_CURRENT_BIT = 0x00000001, 1056 GL_POINT_BIT = 0x00000002, 1057 GL_LINE_BIT = 0x00000004, 1058 GL_POLYGON_BIT = 0x00000008, 1059 GL_POLYGON_STIPPLE_BIT = 0x00000010, 1060 GL_PIXEL_MODE_BIT = 0x00000020, 1061 GL_LIGHTING_BIT = 0x00000040, 1062 GL_FOG_BIT = 0x00000080, 1063 GL_DEPTH_BUFFER_BIT = 0x00000100, 1064 GL_ACCUM_BUFFER_BIT = 0x00000200, 1065 GL_STENCIL_BUFFER_BIT = 0x00000400, 1066 GL_VIEWPORT_BIT = 0x00000800, 1067 GL_TRANSFORM_BIT = 0x00001000, 1068 GL_ENABLE_BIT = 0x00002000, 1069 GL_COLOR_BUFFER_BIT = 0x00004000, 1070 GL_HINT_BIT = 0x00008000, 1071 GL_EVAL_BIT = 0x00010000, 1072 GL_LIST_BIT = 0x00020000, 1073 GL_TEXTURE_BIT = 0x00040000, 1074 GL_SCISSOR_BIT = 0x00080000, 1075 GL_ALL_ATTRIB_BITS = 0x000FFFFF 1076}; 1077 1078 1079enum { 1080 GL_CLIENT_PIXEL_STORE_BIT = 0x00000001, 1081 GL_CLIENT_VERTEX_ARRAY_BIT = 0x00000002 1082}; 1083#define GL_CLIENT_ALL_ATTRIB_BITS 0xFFFFFFFF 1084 1085 1086typedef unsigned int GLbitfield; 1087 1088 1089#ifdef CENTERLINE_CLPP 1090#define signed 1091#endif 1092 1093 1094/* 1095 * 1096 * Data types (may be architecture dependent in some cases) 1097 * 1098 */ 1099 1100/* C type GL type storage */ 1101/*-------------------------------------------------------------------------*/ 1102typedef void GLvoid; 1103typedef unsigned char GLboolean; 1104typedef signed char GLbyte; /* 1-byte signed */ 1105typedef short GLshort; /* 2-byte signed */ 1106typedef int GLint; /* 4-byte signed */ 1107typedef unsigned char GLubyte; /* 1-byte unsigned */ 1108typedef unsigned short GLushort; /* 2-byte unsigned */ 1109typedef unsigned int GLuint; /* 4-byte unsigned */ 1110typedef int GLsizei; /* 4-byte signed */ 1111typedef float GLfloat; /* single precision float */ 1112typedef float GLclampf; /* single precision float in [0,1] */ 1113typedef double GLdouble; /* double precision float */ 1114typedef double GLclampd; /* double precision float in [0,1] */ 1115 1116 1117 1118#if defined(__BEOS__) || defined(__QUICKDRAW__) 1119#pragma export on 1120#endif 1121 1122 1123/* 1124 * Miscellaneous 1125 */ 1126 1127GLAPI void GLAPIENTRY glClearIndex( GLfloat c ); 1128 1129GLAPI void GLAPIENTRY glClearColor( GLclampf red, 1130 GLclampf green, 1131 GLclampf blue, 1132 GLclampf alpha ); 1133 1134GLAPI void GLAPIENTRY glClear( GLbitfield mask ); 1135 1136GLAPI void GLAPIENTRY glIndexMask( GLuint mask ); 1137 1138GLAPI void GLAPIENTRY glColorMask( GLboolean red, GLboolean green, 1139 GLboolean blue, GLboolean alpha ); 1140 1141GLAPI void GLAPIENTRY glAlphaFunc( GLenum func, GLclampf ref ); 1142 1143GLAPI void GLAPIENTRY glBlendFunc( GLenum sfactor, GLenum dfactor ); 1144 1145GLAPI void GLAPIENTRY glLogicOp( GLenum opcode ); 1146 1147GLAPI void GLAPIENTRY glCullFace( GLenum mode ); 1148 1149GLAPI void GLAPIENTRY glFrontFace( GLenum mode ); 1150 1151GLAPI void GLAPIENTRY glPointSize( GLfloat size ); 1152 1153GLAPI void GLAPIENTRY glLineWidth( GLfloat width ); 1154 1155GLAPI void GLAPIENTRY glLineStipple( GLint factor, GLushort pattern ); 1156 1157GLAPI void GLAPIENTRY glPolygonMode( GLenum face, GLenum mode ); 1158 1159GLAPI void GLAPIENTRY glPolygonOffset( GLfloat factor, GLfloat units ); 1160 1161GLAPI void GLAPIENTRY glPolygonStipple( const GLubyte *mask ); 1162 1163GLAPI void GLAPIENTRY glGetPolygonStipple( GLubyte *mask ); 1164 1165GLAPI void GLAPIENTRY glEdgeFlag( GLboolean flag ); 1166 1167GLAPI void GLAPIENTRY glEdgeFlagv( const GLboolean *flag ); 1168 1169GLAPI void GLAPIENTRY glScissor( GLint x, GLint y, 1170 GLsizei width, GLsizei height); 1171 1172GLAPI void GLAPIENTRY glClipPlane( GLenum plane, const GLdouble *equation ); 1173 1174GLAPI void GLAPIENTRY glGetClipPlane( GLenum plane, GLdouble *equation ); 1175 1176GLAPI void GLAPIENTRY glDrawBuffer( GLenum mode ); 1177 1178GLAPI void GLAPIENTRY glReadBuffer( GLenum mode ); 1179 1180GLAPI void GLAPIENTRY glEnable( GLenum cap ); 1181 1182GLAPI void GLAPIENTRY glDisable( GLenum cap ); 1183 1184GLAPI GLboolean GLAPIENTRY glIsEnabled( GLenum cap ); 1185 1186 1187GLAPI void GLAPIENTRY glEnableClientState( GLenum cap ); /* 1.1 */ 1188 1189GLAPI void GLAPIENTRY glDisableClientState( GLenum cap ); /* 1.1 */ 1190 1191 1192GLAPI void GLAPIENTRY glGetBooleanv( GLenum pname, GLboolean *params ); 1193 1194GLAPI void GLAPIENTRY glGetDoublev( GLenum pname, GLdouble *params ); 1195 1196GLAPI void GLAPIENTRY glGetFloatv( GLenum pname, GLfloat *params ); 1197 1198GLAPI void GLAPIENTRY glGetIntegerv( GLenum pname, GLint *params ); 1199 1200 1201GLAPI void GLAPIENTRY glPushAttrib( GLbitfield mask ); 1202 1203GLAPI void GLAPIENTRY glPopAttrib( void ); 1204 1205 1206GLAPI void GLAPIENTRY glPushClientAttrib( GLbitfield mask ); /* 1.1 */ 1207 1208GLAPI void GLAPIENTRY glPopClientAttrib( void ); /* 1.1 */ 1209 1210 1211GLAPI GLint GLAPIENTRY glRenderMode( GLenum mode ); 1212 1213GLAPI GLenum GLAPIENTRY glGetError( void ); 1214 1215GLAPI const GLubyte* GLAPIENTRY glGetString( GLenum name ); 1216 1217GLAPI void GLAPIENTRY glFinish( void ); 1218 1219GLAPI void GLAPIENTRY glFlush( void ); 1220 1221GLAPI void GLAPIENTRY glHint( GLenum target, GLenum mode ); 1222 1223 1224 1225/* 1226 * Depth Buffer 1227 */ 1228 1229GLAPI void GLAPIENTRY glClearDepth( GLclampd depth ); 1230 1231GLAPI void GLAPIENTRY glDepthFunc( GLenum func ); 1232 1233GLAPI void GLAPIENTRY glDepthMask( GLboolean flag ); 1234 1235GLAPI void GLAPIENTRY glDepthRange( GLclampd near_val, GLclampd far_val ); 1236 1237 1238/* 1239 * Accumulation Buffer 1240 */ 1241 1242GLAPI void GLAPIENTRY glClearAccum( GLfloat red, GLfloat green, 1243 GLfloat blue, GLfloat alpha ); 1244 1245GLAPI void GLAPIENTRY glAccum( GLenum op, GLfloat value ); 1246 1247 1248 1249/* 1250 * Transformation 1251 */ 1252 1253GLAPI void GLAPIENTRY glMatrixMode( GLenum mode ); 1254 1255GLAPI void GLAPIENTRY glOrtho( GLdouble left, GLdouble right, 1256 GLdouble bottom, GLdouble top, 1257 GLdouble near_val, GLdouble far_val ); 1258 1259GLAPI void GLAPIENTRY glFrustum( GLdouble left, GLdouble right, 1260 GLdouble bottom, GLdouble top, 1261 GLdouble near_val, GLdouble far_val ); 1262 1263GLAPI void GLAPIENTRY glViewport( GLint x, GLint y, 1264 GLsizei width, GLsizei height ); 1265 1266GLAPI void GLAPIENTRY glPushMatrix( void ); 1267 1268GLAPI void GLAPIENTRY glPopMatrix( void ); 1269 1270GLAPI void GLAPIENTRY glLoadIdentity( void ); 1271 1272GLAPI void GLAPIENTRY glLoadMatrixd( const GLdouble *m ); 1273GLAPI void GLAPIENTRY glLoadMatrixf( const GLfloat *m ); 1274 1275GLAPI void GLAPIENTRY glMultMatrixd( const GLdouble *m ); 1276GLAPI void GLAPIENTRY glMultMatrixf( const GLfloat *m ); 1277 1278GLAPI void GLAPIENTRY glRotated( GLdouble angle, 1279 GLdouble x, GLdouble y, GLdouble z ); 1280GLAPI void GLAPIENTRY glRotatef( GLfloat angle, 1281 GLfloat x, GLfloat y, GLfloat z ); 1282 1283GLAPI void GLAPIENTRY glScaled( GLdouble x, GLdouble y, GLdouble z ); 1284GLAPI void GLAPIENTRY glScalef( GLfloat x, GLfloat y, GLfloat z ); 1285 1286GLAPI void GLAPIENTRY glTranslated( GLdouble x, GLdouble y, GLdouble z ); 1287GLAPI void GLAPIENTRY glTranslatef( GLfloat x, GLfloat y, GLfloat z ); 1288 1289 1290 1291/* 1292 * Display Lists 1293 */ 1294 1295GLAPI GLboolean GLAPIENTRY glIsList( GLuint list ); 1296 1297GLAPI void GLAPIENTRY glDeleteLists( GLuint list, GLsizei range ); 1298 1299GLAPI GLuint GLAPIENTRY glGenLists( GLsizei range ); 1300 1301GLAPI void GLAPIENTRY glNewList( GLuint list, GLenum mode ); 1302 1303GLAPI void GLAPIENTRY glEndList( void ); 1304 1305GLAPI void GLAPIENTRY glCallList( GLuint list ); 1306 1307GLAPI void GLAPIENTRY glCallLists( GLsizei n, GLenum type, 1308 const GLvoid *lists ); 1309 1310GLAPI void GLAPIENTRY glListBase( GLuint base ); 1311 1312 1313 1314/* 1315 * Drawing Functions 1316 */ 1317 1318GLAPI void GLAPIENTRY glBegin( GLenum mode ); 1319 1320GLAPI void GLAPIENTRY glEnd( void ); 1321 1322 1323GLAPI void GLAPIENTRY glVertex2d( GLdouble x, GLdouble y ); 1324GLAPI void GLAPIENTRY glVertex2f( GLfloat x, GLfloat y ); 1325GLAPI void GLAPIENTRY glVertex2i( GLint x, GLint y ); 1326GLAPI void GLAPIENTRY glVertex2s( GLshort x, GLshort y ); 1327 1328GLAPI void GLAPIENTRY glVertex3d( GLdouble x, GLdouble y, GLdouble z ); 1329GLAPI void GLAPIENTRY glVertex3f( GLfloat x, GLfloat y, GLfloat z ); 1330GLAPI void GLAPIENTRY glVertex3i( GLint x, GLint y, GLint z ); 1331GLAPI void GLAPIENTRY glVertex3s( GLshort x, GLshort y, GLshort z ); 1332 1333GLAPI void GLAPIENTRY glVertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); 1334GLAPI void GLAPIENTRY glVertex4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); 1335GLAPI void GLAPIENTRY glVertex4i( GLint x, GLint y, GLint z, GLint w ); 1336GLAPI void GLAPIENTRY glVertex4s( GLshort x, GLshort y, GLshort z, GLshort w ); 1337 1338GLAPI void GLAPIENTRY glVertex2dv( const GLdouble *v ); 1339GLAPI void GLAPIENTRY glVertex2fv( const GLfloat *v ); 1340GLAPI void GLAPIENTRY glVertex2iv( const GLint *v ); 1341GLAPI void GLAPIENTRY glVertex2sv( const GLshort *v ); 1342 1343GLAPI void GLAPIENTRY glVertex3dv( const GLdouble *v ); 1344GLAPI void GLAPIENTRY glVertex3fv( const GLfloat *v ); 1345GLAPI void GLAPIENTRY glVertex3iv( const GLint *v ); 1346GLAPI void GLAPIENTRY glVertex3sv( const GLshort *v ); 1347 1348GLAPI void GLAPIENTRY glVertex4dv( const GLdouble *v ); 1349GLAPI void GLAPIENTRY glVertex4fv( const GLfloat *v ); 1350GLAPI void GLAPIENTRY glVertex4iv( const GLint *v ); 1351GLAPI void GLAPIENTRY glVertex4sv( const GLshort *v ); 1352 1353 1354GLAPI void GLAPIENTRY glNormal3b( GLbyte nx, GLbyte ny, GLbyte nz ); 1355GLAPI void GLAPIENTRY glNormal3d( GLdouble nx, GLdouble ny, GLdouble nz ); 1356GLAPI void GLAPIENTRY glNormal3f( GLfloat nx, GLfloat ny, GLfloat nz ); 1357GLAPI void GLAPIENTRY glNormal3i( GLint nx, GLint ny, GLint nz ); 1358GLAPI void GLAPIENTRY glNormal3s( GLshort nx, GLshort ny, GLshort nz ); 1359 1360GLAPI void GLAPIENTRY glNormal3bv( const GLbyte *v ); 1361GLAPI void GLAPIENTRY glNormal3dv( const GLdouble *v ); 1362GLAPI void GLAPIENTRY glNormal3fv( const GLfloat *v ); 1363GLAPI void GLAPIENTRY glNormal3iv( const GLint *v ); 1364GLAPI void GLAPIENTRY glNormal3sv( const GLshort *v ); 1365 1366 1367GLAPI void GLAPIENTRY glIndexd( GLdouble c ); 1368GLAPI void GLAPIENTRY glIndexf( GLfloat c ); 1369GLAPI void GLAPIENTRY glIndexi( GLint c ); 1370GLAPI void GLAPIENTRY glIndexs( GLshort c ); 1371GLAPI void GLAPIENTRY glIndexub( GLubyte c ); /* 1.1 */ 1372 1373GLAPI void GLAPIENTRY glIndexdv( const GLdouble *c ); 1374GLAPI void GLAPIENTRY glIndexfv( const GLfloat *c ); 1375GLAPI void GLAPIENTRY glIndexiv( const GLint *c ); 1376GLAPI void GLAPIENTRY glIndexsv( const GLshort *c ); 1377GLAPI void GLAPIENTRY glIndexubv( const GLubyte *c ); /* 1.1 */ 1378 1379GLAPI void GLAPIENTRY glColor3b( GLbyte red, GLbyte green, GLbyte blue ); 1380GLAPI void GLAPIENTRY glColor3d( GLdouble red, GLdouble green, GLdouble blue ); 1381GLAPI void GLAPIENTRY glColor3f( GLfloat red, GLfloat green, GLfloat blue ); 1382GLAPI void GLAPIENTRY glColor3i( GLint red, GLint green, GLint blue ); 1383GLAPI void GLAPIENTRY glColor3s( GLshort red, GLshort green, GLshort blue ); 1384GLAPI void GLAPIENTRY glColor3ub( GLubyte red, GLubyte green, GLubyte blue ); 1385GLAPI void GLAPIENTRY glColor3ui( GLuint red, GLuint green, GLuint blue ); 1386GLAPI void GLAPIENTRY glColor3us( GLushort red, GLushort green, GLushort blue ); 1387 1388GLAPI void GLAPIENTRY glColor4b( GLbyte red, GLbyte green, 1389 GLbyte blue, GLbyte alpha ); 1390GLAPI void GLAPIENTRY glColor4d( GLdouble red, GLdouble green, 1391 GLdouble blue, GLdouble alpha ); 1392GLAPI void GLAPIENTRY glColor4f( GLfloat red, GLfloat green, 1393 GLfloat blue, GLfloat alpha ); 1394GLAPI void GLAPIENTRY glColor4i( GLint red, GLint green, 1395 GLint blue, GLint alpha ); 1396GLAPI void GLAPIENTRY glColor4s( GLshort red, GLshort green, 1397 GLshort blue, GLshort alpha ); 1398GLAPI void GLAPIENTRY glColor4ub( GLubyte red, GLubyte green, 1399 GLubyte blue, GLubyte alpha ); 1400GLAPI void GLAPIENTRY glColor4ui( GLuint red, GLuint green, 1401 GLuint blue, GLuint alpha ); 1402GLAPI void GLAPIENTRY glColor4us( GLushort red, GLushort green, 1403 GLushort blue, GLushort alpha ); 1404 1405 1406GLAPI void GLAPIENTRY glColor3bv( const GLbyte *v ); 1407GLAPI void GLAPIENTRY glColor3dv( const GLdouble *v ); 1408GLAPI void GLAPIENTRY glColor3fv( const GLfloat *v ); 1409GLAPI void GLAPIENTRY glColor3iv( const GLint *v ); 1410GLAPI void GLAPIENTRY glColor3sv( const GLshort *v ); 1411GLAPI void GLAPIENTRY glColor3ubv( const GLubyte *v ); 1412GLAPI void GLAPIENTRY glColor3uiv( const GLuint *v ); 1413GLAPI void GLAPIENTRY glColor3usv( const GLushort *v ); 1414 1415GLAPI void GLAPIENTRY glColor4bv( const GLbyte *v ); 1416GLAPI void GLAPIENTRY glColor4dv( const GLdouble *v ); 1417GLAPI void GLAPIENTRY glColor4fv( const GLfloat *v ); 1418GLAPI void GLAPIENTRY glColor4iv( const GLint *v ); 1419GLAPI void GLAPIENTRY glColor4sv( const GLshort *v ); 1420GLAPI void GLAPIENTRY glColor4ubv( const GLubyte *v ); 1421GLAPI void GLAPIENTRY glColor4uiv( const GLuint *v ); 1422GLAPI void GLAPIENTRY glColor4usv( const GLushort *v ); 1423 1424 1425GLAPI void GLAPIENTRY glTexCoord1d( GLdouble s ); 1426GLAPI void GLAPIENTRY glTexCoord1f( GLfloat s ); 1427GLAPI void GLAPIENTRY glTexCoord1i( GLint s ); 1428GLAPI void GLAPIENTRY glTexCoord1s( GLshort s ); 1429 1430GLAPI void GLAPIENTRY glTexCoord2d( GLdouble s, GLdouble t ); 1431GLAPI void GLAPIENTRY glTexCoord2f( GLfloat s, GLfloat t ); 1432GLAPI void GLAPIENTRY glTexCoord2i( GLint s, GLint t ); 1433GLAPI void GLAPIENTRY glTexCoord2s( GLshort s, GLshort t ); 1434 1435GLAPI void GLAPIENTRY glTexCoord3d( GLdouble s, GLdouble t, GLdouble r ); 1436GLAPI void GLAPIENTRY glTexCoord3f( GLfloat s, GLfloat t, GLfloat r ); 1437GLAPI void GLAPIENTRY glTexCoord3i( GLint s, GLint t, GLint r ); 1438GLAPI void GLAPIENTRY glTexCoord3s( GLshort s, GLshort t, GLshort r ); 1439 1440GLAPI void GLAPIENTRY glTexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q ); 1441GLAPI void GLAPIENTRY glTexCoord4f( GLfloat s, GLfloat t, GLfloat r, GLfloat q ); 1442GLAPI void GLAPIENTRY glTexCoord4i( GLint s, GLint t, GLint r, GLint q ); 1443GLAPI void GLAPIENTRY glTexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q ); 1444 1445GLAPI void GLAPIENTRY glTexCoord1dv( const GLdouble *v ); 1446GLAPI void GLAPIENTRY glTexCoord1fv( const GLfloat *v ); 1447GLAPI void GLAPIENTRY glTexCoord1iv( const GLint *v ); 1448GLAPI void GLAPIENTRY glTexCoord1sv( const GLshort *v ); 1449 1450GLAPI void GLAPIENTRY glTexCoord2dv( const GLdouble *v ); 1451GLAPI void GLAPIENTRY glTexCoord2fv( const GLfloat *v ); 1452GLAPI void GLAPIENTRY glTexCoord2iv( const GLint *v ); 1453GLAPI void GLAPIENTRY glTexCoord2sv( const GLshort *v ); 1454 1455GLAPI void GLAPIENTRY glTexCoord3dv( const GLdouble *v ); 1456GLAPI void GLAPIENTRY glTexCoord3fv( const GLfloat *v ); 1457GLAPI void GLAPIENTRY glTexCoord3iv( const GLint *v ); 1458GLAPI void GLAPIENTRY glTexCoord3sv( const GLshort *v ); 1459 1460GLAPI void GLAPIENTRY glTexCoord4dv( const GLdouble *v ); 1461GLAPI void GLAPIENTRY glTexCoord4fv( const GLfloat *v ); 1462GLAPI void GLAPIENTRY glTexCoord4iv( const GLint *v ); 1463GLAPI void GLAPIENTRY glTexCoord4sv( const GLshort *v ); 1464 1465 1466GLAPI void GLAPIENTRY glRasterPos2d( GLdouble x, GLdouble y ); 1467GLAPI void GLAPIENTRY glRasterPos2f( GLfloat x, GLfloat y ); 1468GLAPI void GLAPIENTRY glRasterPos2i( GLint x, GLint y ); 1469GLAPI void GLAPIENTRY glRasterPos2s( GLshort x, GLshort y ); 1470 1471GLAPI void GLAPIENTRY glRasterPos3d( GLdouble x, GLdouble y, GLdouble z ); 1472GLAPI void GLAPIENTRY glRasterPos3f( GLfloat x, GLfloat y, GLfloat z ); 1473GLAPI void GLAPIENTRY glRasterPos3i( GLint x, GLint y, GLint z ); 1474GLAPI void GLAPIENTRY glRasterPos3s( GLshort x, GLshort y, GLshort z ); 1475 1476GLAPI void GLAPIENTRY glRasterPos4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); 1477GLAPI void GLAPIENTRY glRasterPos4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); 1478GLAPI void GLAPIENTRY glRasterPos4i( GLint x, GLint y, GLint z, GLint w ); 1479GLAPI void GLAPIENTRY glRasterPos4s( GLshort x, GLshort y, GLshort z, GLshort w ); 1480 1481GLAPI void GLAPIENTRY glRasterPos2dv( const GLdouble *v ); 1482GLAPI void GLAPIENTRY glRasterPos2fv( const GLfloat *v ); 1483GLAPI void GLAPIENTRY glRasterPos2iv( const GLint *v ); 1484GLAPI void GLAPIENTRY glRasterPos2sv( const GLshort *v ); 1485 1486GLAPI void GLAPIENTRY glRasterPos3dv( const GLdouble *v ); 1487GLAPI void GLAPIENTRY glRasterPos3fv( const GLfloat *v ); 1488GLAPI void GLAPIENTRY glRasterPos3iv( const GLint *v ); 1489GLAPI void GLAPIENTRY glRasterPos3sv( const GLshort *v ); 1490 1491GLAPI void GLAPIENTRY glRasterPos4dv( const GLdouble *v ); 1492GLAPI void GLAPIENTRY glRasterPos4fv( const GLfloat *v ); 1493GLAPI void GLAPIENTRY glRasterPos4iv( const GLint *v ); 1494GLAPI void GLAPIENTRY glRasterPos4sv( const GLshort *v ); 1495 1496 1497GLAPI void GLAPIENTRY glRectd( GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2 ); 1498GLAPI void GLAPIENTRY glRectf( GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 ); 1499GLAPI void GLAPIENTRY glRecti( GLint x1, GLint y1, GLint x2, GLint y2 ); 1500GLAPI void GLAPIENTRY glRects( GLshort x1, GLshort y1, GLshort x2, GLshort y2 ); 1501 1502 1503GLAPI void GLAPIENTRY glRectdv( const GLdouble *v1, const GLdouble *v2 ); 1504GLAPI void GLAPIENTRY glRectfv( const GLfloat *v1, const GLfloat *v2 ); 1505GLAPI void GLAPIENTRY glRectiv( const GLint *v1, const GLint *v2 ); 1506GLAPI void GLAPIENTRY glRectsv( const GLshort *v1, const GLshort *v2 ); 1507 1508 1509 1510/* 1511 * Vertex Arrays (1.1) 1512 */ 1513 1514GLAPI void GLAPIENTRY glVertexPointer( GLint size, GLenum type, 1515 GLsizei stride, const GLvoid *ptr ); 1516 1517GLAPI void GLAPIENTRY glNormalPointer( GLenum type, GLsizei stride, 1518 const GLvoid *ptr ); 1519 1520GLAPI void GLAPIENTRY glColorPointer( GLint size, GLenum type, 1521 GLsizei stride, const GLvoid *ptr ); 1522 1523GLAPI void GLAPIENTRY glIndexPointer( GLenum type, GLsizei stride, 1524 const GLvoid *ptr ); 1525 1526GLAPI void GLAPIENTRY glTexCoordPointer( GLint size, GLenum type, 1527 GLsizei stride, const GLvoid *ptr ); 1528 1529GLAPI void GLAPIENTRY glEdgeFlagPointer( GLsizei stride, const GLvoid *ptr ); 1530 1531GLAPI void GLAPIENTRY glGetPointerv( GLenum pname, void **params ); 1532 1533GLAPI void GLAPIENTRY glArrayElement( GLint i ); 1534 1535GLAPI void GLAPIENTRY glDrawArrays( GLenum mode, GLint first, GLsizei count ); 1536 1537GLAPI void GLAPIENTRY glDrawElements( GLenum mode, GLsizei count, 1538 GLenum type, const GLvoid *indices ); 1539 1540GLAPI void GLAPIENTRY glInterleavedArrays( GLenum format, GLsizei stride, 1541 const GLvoid *pointer ); 1542 1543 1544/* 1545 * Lighting 1546 */ 1547 1548GLAPI void GLAPIENTRY glShadeModel( GLenum mode ); 1549 1550GLAPI void GLAPIENTRY glLightf( GLenum light, GLenum pname, GLfloat param ); 1551GLAPI void GLAPIENTRY glLighti( GLenum light, GLenum pname, GLint param ); 1552GLAPI void GLAPIENTRY glLightfv( GLenum light, GLenum pname, 1553 const GLfloat *params ); 1554GLAPI void GLAPIENTRY glLightiv( GLenum light, GLenum pname, 1555 const GLint *params ); 1556 1557GLAPI void GLAPIENTRY glGetLightfv( GLenum light, GLenum pname, 1558 GLfloat *params ); 1559GLAPI void GLAPIENTRY glGetLightiv( GLenum light, GLenum pname, 1560 GLint *params ); 1561 1562GLAPI void GLAPIENTRY glLightModelf( GLenum pname, GLfloat param ); 1563GLAPI void GLAPIENTRY glLightModeli( GLenum pname, GLint param ); 1564GLAPI void GLAPIENTRY glLightModelfv( GLenum pname, const GLfloat *params ); 1565GLAPI void GLAPIENTRY glLightModeliv( GLenum pname, const GLint *params ); 1566 1567GLAPI void GLAPIENTRY glMaterialf( GLenum face, GLenum pname, GLfloat param ); 1568GLAPI void GLAPIENTRY glMateriali( GLenum face, GLenum pname, GLint param ); 1569GLAPI void GLAPIENTRY glMaterialfv( GLenum face, GLenum pname, const GLfloat *params ); 1570GLAPI void GLAPIENTRY glMaterialiv( GLenum face, GLenum pname, const GLint *params ); 1571 1572GLAPI void GLAPIENTRY glGetMaterialfv( GLenum face, GLenum pname, GLfloat *params ); 1573GLAPI void GLAPIENTRY glGetMaterialiv( GLenum face, GLenum pname, GLint *params ); 1574 1575GLAPI void GLAPIENTRY glColorMaterial( GLenum face, GLenum mode ); 1576 1577 1578 1579 1580/* 1581 * Raster functions 1582 */ 1583 1584GLAPI void GLAPIENTRY glPixelZoom( GLfloat xfactor, GLfloat yfactor ); 1585 1586GLAPI void GLAPIENTRY glPixelStoref( GLenum pname, GLfloat param ); 1587GLAPI void GLAPIENTRY glPixelStorei( GLenum pname, GLint param ); 1588 1589GLAPI void GLAPIENTRY glPixelTransferf( GLenum pname, GLfloat param ); 1590GLAPI void GLAPIENTRY glPixelTransferi( GLenum pname, GLint param ); 1591 1592GLAPI void GLAPIENTRY glPixelMapfv( GLenum map, GLint mapsize, 1593 const GLfloat *values ); 1594GLAPI void GLAPIENTRY glPixelMapuiv( GLenum map, GLint mapsize, 1595 const GLuint *values ); 1596GLAPI void GLAPIENTRY glPixelMapusv( GLenum map, GLint mapsize, 1597 const GLushort *values ); 1598 1599GLAPI void GLAPIENTRY glGetPixelMapfv( GLenum map, GLfloat *values ); 1600GLAPI void GLAPIENTRY glGetPixelMapuiv( GLenum map, GLuint *values ); 1601GLAPI void GLAPIENTRY glGetPixelMapusv( GLenum map, GLushort *values ); 1602 1603GLAPI void GLAPIENTRY glBitmap( GLsizei width, GLsizei height, 1604 GLfloat xorig, GLfloat yorig, 1605 GLfloat xmove, GLfloat ymove, 1606 const GLubyte *bitmap ); 1607 1608GLAPI void GLAPIENTRY glReadPixels( GLint x, GLint y, 1609 GLsizei width, GLsizei height, 1610 GLenum format, GLenum type, 1611 GLvoid *pixels ); 1612 1613GLAPI void GLAPIENTRY glDrawPixels( GLsizei width, GLsizei height, 1614 GLenum format, GLenum type, 1615 const GLvoid *pixels ); 1616 1617GLAPI void GLAPIENTRY glCopyPixels( GLint x, GLint y, 1618 GLsizei width, GLsizei height, 1619 GLenum type ); 1620 1621 1622 1623/* 1624 * Stenciling 1625 */ 1626 1627GLAPI void GLAPIENTRY glStencilFunc( GLenum func, GLint ref, GLuint mask ); 1628 1629GLAPI void GLAPIENTRY glStencilMask( GLuint mask ); 1630 1631GLAPI void GLAPIENTRY glStencilOp( GLenum fail, GLenum zfail, GLenum zpass ); 1632 1633GLAPI void GLAPIENTRY glClearStencil( GLint s ); 1634 1635 1636 1637/* 1638 * Texture mapping 1639 */ 1640 1641GLAPI void GLAPIENTRY glTexGend( GLenum coord, GLenum pname, GLdouble param ); 1642GLAPI void GLAPIENTRY glTexGenf( GLenum coord, GLenum pname, GLfloat param ); 1643GLAPI void GLAPIENTRY glTexGeni( GLenum coord, GLenum pname, GLint param ); 1644 1645GLAPI void GLAPIENTRY glTexGendv( GLenum coord, GLenum pname, const GLdouble *params ); 1646GLAPI void GLAPIENTRY glTexGenfv( GLenum coord, GLenum pname, const GLfloat *params ); 1647GLAPI void GLAPIENTRY glTexGeniv( GLenum coord, GLenum pname, const GLint *params ); 1648 1649GLAPI void GLAPIENTRY glGetTexGendv( GLenum coord, GLenum pname, GLdouble *params ); 1650GLAPI void GLAPIENTRY glGetTexGenfv( GLenum coord, GLenum pname, GLfloat *params ); 1651GLAPI void GLAPIENTRY glGetTexGeniv( GLenum coord, GLenum pname, GLint *params ); 1652 1653 1654GLAPI void GLAPIENTRY glTexEnvf( GLenum target, GLenum pname, GLfloat param ); 1655GLAPI void GLAPIENTRY glTexEnvi( GLenum target, GLenum pname, GLint param ); 1656 1657GLAPI void GLAPIENTRY glTexEnvfv( GLenum target, GLenum pname, const GLfloat *params ); 1658GLAPI void GLAPIENTRY glTexEnviv( GLenum target, GLenum pname, const GLint *params ); 1659 1660GLAPI void GLAPIENTRY glGetTexEnvfv( GLenum target, GLenum pname, GLfloat *params ); 1661GLAPI void GLAPIENTRY glGetTexEnviv( GLenum target, GLenum pname, GLint *params ); 1662 1663 1664GLAPI void GLAPIENTRY glTexParameterf( GLenum target, GLenum pname, GLfloat param ); 1665GLAPI void GLAPIENTRY glTexParameteri( GLenum target, GLenum pname, GLint param ); 1666 1667GLAPI void GLAPIENTRY glTexParameterfv( GLenum target, GLenum pname, 1668 const GLfloat *params ); 1669GLAPI void GLAPIENTRY glTexParameteriv( GLenum target, GLenum pname, 1670 const GLint *params ); 1671 1672GLAPI void GLAPIENTRY glGetTexParameterfv( GLenum target, 1673 GLenum pname, GLfloat *params); 1674GLAPI void GLAPIENTRY glGetTexParameteriv( GLenum target, 1675 GLenum pname, GLint *params ); 1676 1677GLAPI void GLAPIENTRY glGetTexLevelParameterfv( GLenum target, GLint level, 1678 GLenum pname, GLfloat *params ); 1679GLAPI void GLAPIENTRY glGetTexLevelParameteriv( GLenum target, GLint level, 1680 GLenum pname, GLint *params ); 1681 1682 1683GLAPI void GLAPIENTRY glTexImage1D( GLenum target, GLint level, 1684 GLint internalFormat, 1685 GLsizei width, GLint border, 1686 GLenum format, GLenum type, 1687 const GLvoid *pixels ); 1688 1689GLAPI void GLAPIENTRY glTexImage2D( GLenum target, GLint level, 1690 GLint internalFormat, 1691 GLsizei width, GLsizei height, 1692 GLint border, GLenum format, GLenum type, 1693 const GLvoid *pixels ); 1694 1695GLAPI void GLAPIENTRY glGetTexImage( GLenum target, GLint level, 1696 GLenum format, GLenum type, 1697 GLvoid *pixels ); 1698 1699 1700 1701/* 1.1 functions */ 1702 1703GLAPI void GLAPIENTRY glGenTextures( GLsizei n, GLuint *textures ); 1704 1705GLAPI void GLAPIENTRY glDeleteTextures( GLsizei n, const GLuint *textures); 1706 1707GLAPI void GLAPIENTRY glBindTexture( GLenum target, GLuint texture ); 1708 1709GLAPI void GLAPIENTRY glPrioritizeTextures( GLsizei n, 1710 const GLuint *textures, 1711 const GLclampf *priorities ); 1712 1713GLAPI GLboolean GLAPIENTRY glAreTexturesResident( GLsizei n, 1714 const GLuint *textures, 1715 GLboolean *residences ); 1716 1717GLAPI GLboolean GLAPIENTRY glIsTexture( GLuint texture ); 1718 1719 1720GLAPI void GLAPIENTRY glTexSubImage1D( GLenum target, GLint level, 1721 GLint xoffset, 1722 GLsizei width, GLenum format, 1723 GLenum type, const GLvoid *pixels ); 1724 1725 1726GLAPI void GLAPIENTRY glTexSubImage2D( GLenum target, GLint level, 1727 GLint xoffset, GLint yoffset, 1728 GLsizei width, GLsizei height, 1729 GLenum format, GLenum type, 1730 const GLvoid *pixels ); 1731 1732 1733GLAPI void GLAPIENTRY glCopyTexImage1D( GLenum target, GLint level, 1734 GLenum internalformat, 1735 GLint x, GLint y, 1736 GLsizei width, GLint border ); 1737 1738 1739GLAPI void GLAPIENTRY glCopyTexImage2D( GLenum target, GLint level, 1740 GLenum internalformat, 1741 GLint x, GLint y, 1742 GLsizei width, GLsizei height, 1743 GLint border ); 1744 1745 1746GLAPI void GLAPIENTRY glCopyTexSubImage1D( GLenum target, GLint level, 1747 GLint xoffset, GLint x, GLint y, 1748 GLsizei width ); 1749 1750 1751GLAPI void GLAPIENTRY glCopyTexSubImage2D( GLenum target, GLint level, 1752 GLint xoffset, GLint yoffset, 1753 GLint x, GLint y, 1754 GLsizei width, GLsizei height ); 1755 1756 1757 1758 1759/* 1760 * Evaluators 1761 */ 1762 1763GLAPI void GLAPIENTRY glMap1d( GLenum target, GLdouble u1, GLdouble u2, 1764 GLint stride, 1765 GLint order, const GLdouble *points ); 1766GLAPI void GLAPIENTRY glMap1f( GLenum target, GLfloat u1, GLfloat u2, 1767 GLint stride, 1768 GLint order, const GLfloat *points ); 1769 1770GLAPI void GLAPIENTRY glMap2d( GLenum target, 1771 GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, 1772 GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, 1773 const GLdouble *points ); 1774GLAPI void GLAPIENTRY glMap2f( GLenum target, 1775 GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, 1776 GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, 1777 const GLfloat *points ); 1778 1779GLAPI void GLAPIENTRY glGetMapdv( GLenum target, GLenum query, GLdouble *v ); 1780GLAPI void GLAPIENTRY glGetMapfv( GLenum target, GLenum query, GLfloat *v ); 1781GLAPI void GLAPIENTRY glGetMapiv( GLenum target, GLenum query, GLint *v ); 1782 1783GLAPI void GLAPIENTRY glEvalCoord1d( GLdouble u ); 1784GLAPI void GLAPIENTRY glEvalCoord1f( GLfloat u ); 1785 1786GLAPI void GLAPIENTRY glEvalCoord1dv( const GLdouble *u ); 1787GLAPI void GLAPIENTRY glEvalCoord1fv( const GLfloat *u ); 1788 1789GLAPI void GLAPIENTRY glEvalCoord2d( GLdouble u, GLdouble v ); 1790GLAPI void GLAPIENTRY glEvalCoord2f( GLfloat u, GLfloat v ); 1791 1792GLAPI void GLAPIENTRY glEvalCoord2dv( const GLdouble *u ); 1793GLAPI void GLAPIENTRY glEvalCoord2fv( const GLfloat *u ); 1794 1795GLAPI void GLAPIENTRY glMapGrid1d( GLint un, GLdouble u1, GLdouble u2 ); 1796GLAPI void GLAPIENTRY glMapGrid1f( GLint un, GLfloat u1, GLfloat u2 ); 1797 1798GLAPI void GLAPIENTRY glMapGrid2d( GLint un, GLdouble u1, GLdouble u2, 1799 GLint vn, GLdouble v1, GLdouble v2 ); 1800GLAPI void GLAPIENTRY glMapGrid2f( GLint un, GLfloat u1, GLfloat u2, 1801 GLint vn, GLfloat v1, GLfloat v2 ); 1802 1803GLAPI void GLAPIENTRY glEvalPoint1( GLint i ); 1804 1805GLAPI void GLAPIENTRY glEvalPoint2( GLint i, GLint j ); 1806 1807GLAPI void GLAPIENTRY glEvalMesh1( GLenum mode, GLint i1, GLint i2 ); 1808 1809GLAPI void GLAPIENTRY glEvalMesh2( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 ); 1810 1811 1812 1813/* 1814 * Fog 1815 */ 1816 1817GLAPI void GLAPIENTRY glFogf( GLenum pname, GLfloat param ); 1818 1819GLAPI void GLAPIENTRY glFogi( GLenum pname, GLint param ); 1820 1821GLAPI void GLAPIENTRY glFogfv( GLenum pname, const GLfloat *params ); 1822 1823GLAPI void GLAPIENTRY glFogiv( GLenum pname, const GLint *params ); 1824 1825 1826 1827/* 1828 * Selection and Feedback 1829 */ 1830 1831GLAPI void GLAPIENTRY glFeedbackBuffer( GLsizei size, GLenum type, GLfloat *buffer ); 1832 1833GLAPI void GLAPIENTRY glPassThrough( GLfloat token ); 1834 1835GLAPI void GLAPIENTRY glSelectBuffer( GLsizei size, GLuint *buffer ); 1836 1837GLAPI void GLAPIENTRY glInitNames( void ); 1838 1839GLAPI void GLAPIENTRY glLoadName( GLuint name ); 1840 1841GLAPI void GLAPIENTRY glPushName( GLuint name ); 1842 1843GLAPI void GLAPIENTRY glPopName( void ); 1844 1845 1846 1847/* 1848 * Extensions 1849 */ 1850 1851/* GL_EXT_blend_minmax */ 1852GLAPI void GLAPIENTRY glBlendEquationEXT( GLenum mode ); 1853 1854 1855 1856/* GL_EXT_blend_color */ 1857GLAPI void GLAPIENTRY glBlendColorEXT( GLclampf red, GLclampf green, 1858 GLclampf blue, GLclampf alpha ); 1859 1860 1861 1862/* GL_EXT_polygon_offset */ 1863GLAPI void GLAPIENTRY glPolygonOffsetEXT( GLfloat factor, GLfloat bias ); 1864 1865 1866 1867/* GL_EXT_vertex_array */ 1868 1869GLAPI void GLAPIENTRY glVertexPointerEXT( GLint size, GLenum type, 1870 GLsizei stride, 1871 GLsizei count, const GLvoid *ptr ); 1872 1873GLAPI void GLAPIENTRY glNormalPointerEXT( GLenum type, GLsizei stride, 1874 GLsizei count, const GLvoid *ptr ); 1875 1876GLAPI void GLAPIENTRY glColorPointerEXT( GLint size, GLenum type, 1877 GLsizei stride, 1878 GLsizei count, const GLvoid *ptr ); 1879 1880GLAPI void GLAPIENTRY glIndexPointerEXT( GLenum type, GLsizei stride, 1881 GLsizei count, const GLvoid *ptr ); 1882 1883GLAPI void GLAPIENTRY glTexCoordPointerEXT( GLint size, GLenum type, 1884 GLsizei stride, GLsizei count, 1885 const GLvoid *ptr ); 1886 1887GLAPI void GLAPIENTRY glEdgeFlagPointerEXT( GLsizei stride, GLsizei count, 1888 const GLboolean *ptr ); 1889 1890GLAPI void GLAPIENTRY glGetPointervEXT( GLenum pname, void **params ); 1891 1892GLAPI void GLAPIENTRY glArrayElementEXT( GLint i ); 1893 1894GLAPI void GLAPIENTRY glDrawArraysEXT( GLenum mode, GLint first, 1895 GLsizei count ); 1896 1897 1898 1899/* GL_EXT_texture_object */ 1900 1901GLAPI void GLAPIENTRY glGenTexturesEXT( GLsizei n, GLuint *textures ); 1902 1903GLAPI void GLAPIENTRY glDeleteTexturesEXT( GLsizei n, const GLuint *textures); 1904 1905GLAPI void GLAPIENTRY glBindTextureEXT( GLenum target, GLuint texture ); 1906 1907GLAPI void GLAPIENTRY glPrioritizeTexturesEXT( GLsizei n, 1908 const GLuint *textures, 1909 const GLclampf *priorities ); 1910 1911GLAPI GLboolean GLAPIENTRY glAreTexturesResidentEXT( GLsizei n, 1912 const GLuint *textures, 1913 GLboolean *residences ); 1914 1915GLAPI GLboolean GLAPIENTRY glIsTextureEXT( GLuint texture ); 1916 1917 1918 1919/* GL_EXT_texture3D */ 1920 1921GLAPI void GLAPIENTRY glTexImage3DEXT( GLenum target, GLint level, 1922 GLenum internalFormat, 1923 GLsizei width, GLsizei height, 1924 GLsizei depth, GLint border, 1925 GLenum format, GLenum type, 1926 const GLvoid *pixels ); 1927 1928GLAPI void GLAPIENTRY glTexSubImage3DEXT( GLenum target, GLint level, 1929 GLint xoffset, GLint yoffset, 1930 GLint zoffset, GLsizei width, 1931 GLsizei height, GLsizei depth, 1932 GLenum format, 1933 GLenum type, const GLvoid *pixels); 1934 1935GLAPI void GLAPIENTRY glCopyTexSubImage3DEXT( GLenum target, GLint level, 1936 GLint xoffset, GLint yoffset, 1937 GLint zoffset, GLint x, 1938 GLint y, GLsizei width, 1939 GLsizei height ); 1940 1941 1942 1943/* GL_EXT_color_table */ 1944 1945GLAPI void GLAPIENTRY glColorTableEXT( GLenum target, GLenum internalformat, 1946 GLsizei width, GLenum format, 1947 GLenum type, const GLvoid *table ); 1948 1949GLAPI void GLAPIENTRY glColorSubTableEXT( GLenum target, 1950 GLsizei start, GLsizei count, 1951 GLenum format, GLenum type, 1952 const GLvoid *data ); 1953 1954GLAPI void GLAPIENTRY glGetColorTableEXT( GLenum target, GLenum format, 1955 GLenum type, GLvoid *table ); 1956 1957GLAPI void GLAPIENTRY glGetColorTableParameterfvEXT( GLenum target, 1958 GLenum pname, 1959 GLfloat *params ); 1960 1961GLAPI void GLAPIENTRY glGetColorTableParameterivEXT( GLenum target, 1962 GLenum pname, 1963 GLint *params ); 1964 1965 1966/* GL_ARB_multitexture */ 1967 1968GLAPI void GLAPIENTRY glActiveTextureARB(GLenum texture); 1969GLAPI void GLAPIENTRY glClientActiveTextureARB(GLenum texture); 1970GLAPI void GLAPIENTRY glMultiTexCoord1dARB(GLenum target, GLdouble s); 1971GLAPI void GLAPIENTRY glMultiTexCoord1dvARB(GLenum target, const GLdouble *v); 1972GLAPI void GLAPIENTRY glMultiTexCoord1fARB(GLenum target, GLfloat s); 1973GLAPI void GLAPIENTRY glMultiTexCoord1fvARB(GLenum target, const GLfloat *v); 1974GLAPI void GLAPIENTRY glMultiTexCoord1iARB(GLenum target, GLint s); 1975GLAPI void GLAPIENTRY glMultiTexCoord1ivARB(GLenum target, const GLint *v); 1976GLAPI void GLAPIENTRY glMultiTexCoord1sARB(GLenum target, GLshort s); 1977GLAPI void GLAPIENTRY glMultiTexCoord1svARB(GLenum target, const GLshort *v); 1978GLAPI void GLAPIENTRY glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t); 1979GLAPI void GLAPIENTRY glMultiTexCoord2dvARB(GLenum target, const GLdouble *v); 1980GLAPI void GLAPIENTRY glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t); 1981GLAPI void GLAPIENTRY glMultiTexCoord2fvARB(GLenum target, const GLfloat *v); 1982GLAPI void GLAPIENTRY glMultiTexCoord2iARB(GLenum target, GLint s, GLint t); 1983GLAPI void GLAPIENTRY glMultiTexCoord2ivARB(GLenum target, const GLint *v); 1984GLAPI void GLAPIENTRY glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t); 1985GLAPI void GLAPIENTRY glMultiTexCoord2svARB(GLenum target, const GLshort *v); 1986GLAPI void GLAPIENTRY glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r); 1987GLAPI void GLAPIENTRY glMultiTexCoord3dvARB(GLenum target, const GLdouble *v); 1988GLAPI void GLAPIENTRY glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r); 1989GLAPI void GLAPIENTRY glMultiTexCoord3fvARB(GLenum target, const GLfloat *v); 1990GLAPI void GLAPIENTRY glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r); 1991GLAPI void GLAPIENTRY glMultiTexCoord3ivARB(GLenum target, const GLint *v); 1992GLAPI void GLAPIENTRY glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r); 1993GLAPI void GLAPIENTRY glMultiTexCoord3svARB(GLenum target, const GLshort *v); 1994GLAPI void GLAPIENTRY glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); 1995GLAPI void GLAPIENTRY glMultiTexCoord4dvARB(GLenum target, const GLdouble *v); 1996GLAPI void GLAPIENTRY glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); 1997GLAPI void GLAPIENTRY glMultiTexCoord4fvARB(GLenum target, const GLfloat *v); 1998GLAPI void GLAPIENTRY glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q); 1999GLAPI void GLAPIENTRY glMultiTexCoord4ivARB(GLenum target, const GLint *v); 2000GLAPI void GLAPIENTRY glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); 2001GLAPI void GLAPIENTRY glMultiTexCoord4svARB(GLenum target, const GLshort *v); 2002 2003 2004 2005/* GL_EXT_point_parameters */ 2006GLAPI void GLAPIENTRY glPointParameterfEXT( GLenum pname, GLfloat param ); 2007GLAPI void GLAPIENTRY glPointParameterfvEXT( GLenum pname, 2008 const GLfloat *params ); 2009 2010 2011 2012/* GL_INGR_blend_func_separate */ 2013GLAPI void GLAPIENTRY glBlendFuncSeparateINGR( GLenum sfactorRGB, 2014 GLenum dfactorRGB, 2015 GLenum sfactorAlpha, 2016 GLenum dfactorAlpha ); 2017 2018 2019 2020/* GL_MESA_window_pos */ 2021 2022GLAPI void GLAPIENTRY glWindowPos2iMESA( GLint x, GLint y ); 2023GLAPI void GLAPIENTRY glWindowPos2sMESA( GLshort x, GLshort y ); 2024GLAPI void GLAPIENTRY glWindowPos2fMESA( GLfloat x, GLfloat y ); 2025GLAPI void GLAPIENTRY glWindowPos2dMESA( GLdouble x, GLdouble y ); 2026 2027GLAPI void GLAPIENTRY glWindowPos2ivMESA( const GLint *p ); 2028GLAPI void GLAPIENTRY glWindowPos2svMESA( const GLshort *p ); 2029GLAPI void GLAPIENTRY glWindowPos2fvMESA( const GLfloat *p ); 2030GLAPI void GLAPIENTRY glWindowPos2dvMESA( const GLdouble *p ); 2031 2032GLAPI void GLAPIENTRY glWindowPos3iMESA( GLint x, GLint y, GLint z ); 2033GLAPI void GLAPIENTRY glWindowPos3sMESA( GLshort x, GLshort y, GLshort z ); 2034GLAPI void GLAPIENTRY glWindowPos3fMESA( GLfloat x, GLfloat y, GLfloat z ); 2035GLAPI void GLAPIENTRY glWindowPos3dMESA( GLdouble x, GLdouble y, GLdouble z ); 2036 2037GLAPI void GLAPIENTRY glWindowPos3ivMESA( const GLint *p ); 2038GLAPI void GLAPIENTRY glWindowPos3svMESA( const GLshort *p ); 2039GLAPI void GLAPIENTRY glWindowPos3fvMESA( const GLfloat *p ); 2040GLAPI void GLAPIENTRY glWindowPos3dvMESA( const GLdouble *p ); 2041 2042GLAPI void GLAPIENTRY glWindowPos4iMESA( GLint x, GLint y, GLint z, GLint w ); 2043GLAPI void GLAPIENTRY glWindowPos4sMESA( GLshort x, GLshort y, GLshort z, GLshort w ); 2044GLAPI void GLAPIENTRY glWindowPos4fMESA( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); 2045GLAPI void GLAPIENTRY glWindowPos4dMESA( GLdouble x, GLdouble y, GLdouble z, GLdouble w); 2046 2047GLAPI void GLAPIENTRY glWindowPos4ivMESA( const GLint *p ); 2048GLAPI void GLAPIENTRY glWindowPos4svMESA( const GLshort *p ); 2049GLAPI void GLAPIENTRY glWindowPos4fvMESA( const GLfloat *p ); 2050GLAPI void GLAPIENTRY glWindowPos4dvMESA( const GLdouble *p ); 2051 2052 2053/* GL_MESA_resize_buffers */ 2054 2055GLAPI void GLAPIENTRY glResizeBuffersMESA( void ); 2056 2057 2058/* 1.2 functions */ 2059GLAPI void GLAPIENTRY glDrawRangeElements( GLenum mode, GLuint start, 2060 GLuint end, GLsizei count, GLenum type, const GLvoid *indices ); 2061 2062GLAPI void GLAPIENTRY glTexImage3D( GLenum target, GLint level, 2063 GLint internalFormat, 2064 GLsizei width, GLsizei height, 2065 GLsizei depth, GLint border, 2066 GLenum format, GLenum type, 2067 const GLvoid *pixels ); 2068 2069GLAPI void GLAPIENTRY glTexSubImage3D( GLenum target, GLint level, 2070 GLint xoffset, GLint yoffset, 2071 GLint zoffset, GLsizei width, 2072 GLsizei height, GLsizei depth, 2073 GLenum format, 2074 GLenum type, const GLvoid *pixels); 2075 2076GLAPI void GLAPIENTRY glCopyTexSubImage3D( GLenum target, GLint level, 2077 GLint xoffset, GLint yoffset, 2078 GLint zoffset, GLint x, 2079 GLint y, GLsizei width, 2080 GLsizei height ); 2081 2082 2083/* 1.2 imaging extension functions */ 2084 2085GLAPI void GLAPIENTRY glColorTable( GLenum target, GLenum internalformat, 2086 GLsizei width, GLenum format, 2087 GLenum type, const GLvoid *table ); 2088 2089GLAPI void GLAPIENTRY glColorSubTable( GLenum target, 2090 GLsizei start, GLsizei count, 2091 GLenum format, GLenum type, 2092 const GLvoid *data ); 2093 2094GLAPI void GLAPIENTRY glColorTableParameteriv(GLenum target, GLenum pname, 2095 const GLint *params); 2096 2097GLAPI void GLAPIENTRY glColorTableParameterfv(GLenum target, GLenum pname, 2098 const GLfloat *params); 2099 2100GLAPI void GLAPIENTRY glCopyColorSubTable( GLenum target, GLsizei start, 2101 GLint x, GLint y, GLsizei width ); 2102 2103GLAPI void GLAPIENTRY glCopyColorTable( GLenum target, GLenum internalformat, 2104 GLint x, GLint y, GLsizei width ); 2105 2106GLAPI void GLAPIENTRY glGetColorTable( GLenum target, GLenum format, 2107 GLenum type, GLvoid *table ); 2108 2109GLAPI void GLAPIENTRY glGetColorTableParameterfv( GLenum target, GLenum pname, 2110 GLfloat *params ); 2111 2112GLAPI void GLAPIENTRY glGetColorTableParameteriv( GLenum target, GLenum pname, 2113 GLint *params ); 2114 2115GLAPI void GLAPIENTRY glBlendEquation( GLenum mode ); 2116 2117GLAPI void GLAPIENTRY glBlendColor( GLclampf red, GLclampf green, 2118 GLclampf blue, GLclampf alpha ); 2119 2120GLAPI void GLAPIENTRY glHistogram( GLenum target, GLsizei width, 2121 GLenum internalformat, GLboolean sink ); 2122 2123GLAPI void GLAPIENTRY glResetHistogram( GLenum target ); 2124 2125GLAPI void GLAPIENTRY glGetHistogram( GLenum target, GLboolean reset, 2126 GLenum format, GLenum type, 2127 GLvoid *values ); 2128 2129GLAPI void GLAPIENTRY glGetHistogramParameterfv( GLenum target, GLenum pname, 2130 GLfloat *params ); 2131 2132GLAPI void GLAPIENTRY glGetHistogramParameteriv( GLenum target, GLenum pname, 2133 GLint *params ); 2134 2135GLAPI void GLAPIENTRY glMinmax( GLenum target, GLenum internalformat, 2136 GLboolean sink ); 2137 2138GLAPI void GLAPIENTRY glResetMinmax( GLenum target ); 2139 2140GLAPI void GLAPIENTRY glGetMinmax( GLenum target, GLboolean reset, 2141 GLenum format, GLenum types, 2142 GLvoid *values ); 2143 2144GLAPI void GLAPIENTRY glGetMinmaxParameterfv( GLenum target, GLenum pname, 2145 GLfloat *params ); 2146 2147GLAPI void GLAPIENTRY glGetMinmaxParameteriv( GLenum target, GLenum pname, 2148 GLint *params ); 2149 2150GLAPI void GLAPIENTRY glConvolutionFilter1D( GLenum target, 2151 GLenum internalformat, GLsizei width, GLenum format, GLenum type, 2152 const GLvoid *image ); 2153 2154GLAPI void GLAPIENTRY glConvolutionFilter2D( GLenum target, 2155 GLenum internalformat, GLsizei width, GLsizei height, GLenum format, 2156 GLenum type, const GLvoid *image ); 2157 2158GLAPI void GLAPIENTRY glConvolutionParameterf( GLenum target, GLenum pname, 2159 GLfloat params ); 2160 2161GLAPI void GLAPIENTRY glConvolutionParameterfv( GLenum target, GLenum pname, 2162 const GLfloat *params ); 2163 2164GLAPI void GLAPIENTRY glConvolutionParameteri( GLenum target, GLenum pname, 2165 GLint params ); 2166 2167GLAPI void GLAPIENTRY glConvolutionParameteriv( GLenum target, GLenum pname, 2168 const GLint *params ); 2169 2170GLAPI void GLAPIENTRY glCopyConvolutionFilter1D( GLenum target, 2171 GLenum internalformat, GLint x, GLint y, GLsizei width ); 2172 2173GLAPI void GLAPIENTRY glCopyConvolutionFilter2D( GLenum target, 2174 GLenum internalformat, GLint x, GLint y, GLsizei width, 2175 GLsizei height); 2176 2177GLAPI void GLAPIENTRY glGetConvolutionFilter( GLenum target, GLenum format, 2178 GLenum type, GLvoid *image ); 2179 2180GLAPI void GLAPIENTRY glGetConvolutionParameterfv( GLenum target, GLenum pname, 2181 GLfloat *params ); 2182 2183GLAPI void GLAPIENTRY glGetConvolutionParameteriv( GLenum target, GLenum pname, 2184 GLint *params ); 2185 2186GLAPI void GLAPIENTRY glSeparableFilter2D( GLenum target, 2187 GLenum internalformat, GLsizei width, GLsizei height, GLenum format, 2188 GLenum type, const GLvoid *row, const GLvoid *column ); 2189 2190GLAPI void GLAPIENTRY glGetSeparableFilter( GLenum target, GLenum format, 2191 GLenum type, GLvoid *row, GLvoid *column, GLvoid *span ); 2192 2193 2194 2195/* GL_EXT_compiled_vertex_array */ 2196GLAPI void GLAPIENTRY glLockArraysEXT( GLint first, GLsizei count ); 2197GLAPI void GLAPIENTRY glUnlockArraysEXT( void ); 2198 2199 2200 2201#if defined(__BEOS__) || defined(__QUICKDRAW__) 2202#pragma export off 2203#endif 2204 2205 2206/* 2207 * Compile-time tests for extensions: 2208 */ 2209#define GL_EXT_blend_color 1 2210#define GL_EXT_blend_logic_op 1 2211#define GL_EXT_blend_minmax 1 2212#define GL_EXT_blend_subtract 1 2213#define GL_EXT_polygon_offset 1 2214#define GL_EXT_vertex_array 1 2215#define GL_EXT_texture_object 1 2216#define GL_EXT_texture3D 1 2217#define GL_EXT_paletted_texture 1 2218#define GL_EXT_shared_texture_palette 1 2219#define GL_EXT_point_parameters 1 2220#define GL_EXT_rescale_normal 1 2221#define GL_EXT_abgr 1 2222#define GL_EXT_stencil_wrap 1 2223#define GL_MESA_window_pos 1 2224#define GL_MESA_resize_buffers 1 2225#define GL_SGIS_texture_edge_clamp 1 2226#define GL_INGR_blend_func_separate 1 2227#define GL_ARB_multitexture 1 2228#define GL_NV_texgen_reflection 1 2229#define GL_PGI_misc_hints 1 2230#define GL_EXT_compiled_vertex_array 1 2231#define GL_EXT_clip_volume_hint 1 2232 2233 2234#ifdef macintosh 2235 #pragma enumsalwaysint reset 2236 #if PRAGMA_IMPORT_SUPPORTED 2237 #pragma import off 2238 #endif 2239#endif 2240 2241 2242#ifdef __cplusplus 2243} 2244#endif 2245 2246#endif 2247