2 * ***** BEGIN GPL LICENSE BLOCK *****
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version 2
7 * of the License, or (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software Foundation,
16 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
19 * All rights reserved.
21 * This is a new part of Blender.
23 * Contributor(s): Willian P. Germano, Campbell Barton
25 * ***** END GPL LICENSE BLOCK *****
28 /** \file blender/python/generic/bgl.c
31 * This file is the 'bgl' module which wraps OpenGL functions and constants,
32 * allowing script writers to make OpenGL calls in their Python scripts.
35 * This module is very similar to 'PyOpenGL' which could replace 'bgl' one day.
40 #include "bgl.h" /*This must come first */
42 #include "MEM_guardedalloc.h"
44 #include "BLI_utildefines.h"
46 static PyObject *Buffer_new(PyTypeObject *type, PyObject *args, PyObject *kwds);
48 /* Buffer sequence methods */
50 static int Buffer_len(Buffer *self);
51 static PyObject *Buffer_item(Buffer *self, int i);
52 static PyObject *Buffer_slice(Buffer *self, int begin, int end);
53 static int Buffer_ass_item(Buffer *self, int i, PyObject *v);
54 static int Buffer_ass_slice(Buffer *self, int begin, int end, PyObject *seq);
55 static PyObject *Buffer_subscript(Buffer *self, PyObject *item);
56 static int Buffer_ass_subscript(Buffer *self, PyObject *item, PyObject *value);
58 static PySequenceMethods Buffer_SeqMethods = {
59 (lenfunc) Buffer_len, /*sq_length */
60 (binaryfunc) NULL, /*sq_concat */
61 (ssizeargfunc) NULL, /*sq_repeat */
62 (ssizeargfunc) Buffer_item, /*sq_item */
63 (ssizessizeargfunc) NULL, /*sq_slice, deprecated, handled in Buffer_item */
64 (ssizeobjargproc) Buffer_ass_item, /*sq_ass_item */
65 (ssizessizeobjargproc) NULL, /*sq_ass_slice, deprecated handled in Buffer_ass_item */
66 (objobjproc) NULL, /* sq_contains */
67 (binaryfunc) NULL, /* sq_inplace_concat */
68 (ssizeargfunc) NULL, /* sq_inplace_repeat */
72 static PyMappingMethods Buffer_AsMapping = {
74 (binaryfunc)Buffer_subscript,
75 (objobjargproc)Buffer_ass_subscript
78 static void Buffer_dealloc(Buffer *self);
79 static PyObject *Buffer_repr(Buffer *self);
81 static PyObject *Buffer_to_list(Buffer *self)
83 int i, len= self->dimensions[0];
84 PyObject *list= PyList_New(len);
86 for (i=0; i<len; i++) {
87 PyList_SET_ITEM(list, i, Buffer_item(self, i));
93 static PyObject *Buffer_to_list_recursive(Buffer *self)
97 if (self->ndimensions > 1) {
98 int i, len= self->dimensions[0];
99 list= PyList_New(len);
101 for (i=0; i<len; i++) {
102 Buffer *sub= (Buffer *)Buffer_item(self, i);
103 PyList_SET_ITEM(list, i, Buffer_to_list_recursive(sub));
108 list= Buffer_to_list(self);
114 static PyObject *Buffer_dimensions(Buffer *self, void *UNUSED(arg))
116 PyObject *list= PyList_New(self->ndimensions);
119 for (i= 0; i<self->ndimensions; i++) {
120 PyList_SET_ITEM(list, i, PyLong_FromLong(self->dimensions[i]));
126 static PyMethodDef Buffer_methods[] = {
127 {"to_list", (PyCFunction)Buffer_to_list_recursive, METH_NOARGS,
128 "return the buffer as a list"},
129 {NULL, NULL, 0, NULL}
132 static PyGetSetDef Buffer_getseters[] = {
133 {(char *)"dimensions", (getter)Buffer_dimensions, NULL, NULL, NULL},
134 {NULL, NULL, NULL, NULL, NULL}
138 PyTypeObject BGL_bufferType = {
139 PyVarObject_HEAD_INIT(NULL, 0)
140 "bgl.Buffer", /*tp_name */
141 sizeof(Buffer), /*tp_basicsize */
143 (destructor)Buffer_dealloc, /*tp_dealloc */
144 (printfunc)NULL, /*tp_print */
145 NULL, /*tp_getattr */
146 NULL, /*tp_setattr */
147 NULL, /*tp_compare */
148 (reprfunc) Buffer_repr, /*tp_repr */
149 NULL, /*tp_as_number */
150 &Buffer_SeqMethods, /*tp_as_sequence */
151 &Buffer_AsMapping, /* PyMappingMethods *tp_as_mapping; */
153 /* More standard operations (here for binary compatibility) */
155 NULL, /* hashfunc tp_hash; */
156 NULL, /* ternaryfunc tp_call; */
157 NULL, /* reprfunc tp_str; */
158 NULL, /* getattrofunc tp_getattro; */
159 NULL, /* setattrofunc tp_setattro; */
161 /* Functions to access object as input/output buffer */
162 NULL, /* PyBufferProcs *tp_as_buffer; */
164 /*** Flags to define presence of optional/expanded features ***/
165 Py_TPFLAGS_DEFAULT, /* long tp_flags; */
167 NULL, /* char *tp_doc; Documentation string */
168 /*** Assigned meaning in release 2.0 ***/
169 /* call function for all accessible objects */
170 NULL, /* traverseproc tp_traverse; */
172 /* delete references to contained objects */
173 NULL, /* inquiry tp_clear; */
175 /*** Assigned meaning in release 2.1 ***/
176 /*** rich comparisons ***/
177 NULL, /* richcmpfunc tp_richcompare; */
179 /*** weak reference enabler ***/
180 0, /* long tp_weaklistoffset; */
182 /*** Added in release 2.2 ***/
184 NULL, /* getiterfunc tp_iter; */
185 NULL, /* iternextfunc tp_iternext; */
186 /*** Attribute descriptor and subclassing stuff ***/
187 Buffer_methods, /* struct PyMethodDef *tp_methods; */
188 NULL, /* struct PyMemberDef *tp_members; */
189 Buffer_getseters, /* struct PyGetSetDef *tp_getset; */
192 NULL, /*tp_descr_get*/
193 NULL, /*tp_descr_set*/
197 Buffer_new, /*tp_new*/
203 NULL, /*tp_subclasses*/
204 NULL, /*tp_weaklist*/
208 #define BGL_Wrap(nargs, funcname, ret, arg_list) \
209 static PyObject *Method_##funcname (PyObject *UNUSED(self), PyObject *args) \
211 arg_def##nargs arg_list; \
213 if (!PyArg_ParseTuple(args, \
214 arg_str##nargs arg_list, \
215 arg_ref##nargs arg_list)) \
219 ret_set_##ret gl##funcname (arg_var##nargs arg_list); \
223 #define BGLU_Wrap(nargs, funcname, ret, arg_list) \
224 static PyObject *Method_##funcname (PyObject *UNUSED(self), PyObject *args) \
226 arg_def##nargs arg_list; \
228 if (!PyArg_ParseTuple(args, \
229 arg_str##nargs arg_list, \
230 arg_ref##nargs arg_list)) \
234 ret_set_##ret glu##funcname (arg_var##nargs arg_list); \
239 int BGL_typeSize(int type)
245 return sizeof(short);
249 return sizeof(float);
251 return sizeof(double);
256 Buffer *BGL_MakeBuffer(int type, int ndimensions, int *dimensions, void *initbuffer)
263 for (i=0; i<ndimensions; i++)
264 length*= dimensions[i];
266 size= BGL_typeSize(type);
268 buf= MEM_mallocN(length*size, "Buffer buffer");
270 buffer= (Buffer *) PyObject_NEW(Buffer, &BGL_bufferType);
271 buffer->parent= NULL;
272 buffer->ndimensions= ndimensions;
273 buffer->dimensions= MEM_mallocN(ndimensions*sizeof(int), "Buffer dimensions");
274 memcpy(buffer->dimensions, dimensions, ndimensions*sizeof(int));
276 buffer->buf.asvoid= buf;
279 memcpy(buffer->buf.asvoid, initbuffer, length*size);
282 memset(buffer->buf.asvoid, 0, length*size);
288 #define MAX_DIMENSIONS 256
289 static PyObject *Buffer_new(PyTypeObject *UNUSED(type), PyObject *args, PyObject *kwds)
291 PyObject *length_ob= NULL, *init= NULL;
293 int dimensions[MAX_DIMENSIONS];
296 Py_ssize_t i, ndimensions = 0;
298 if (kwds && PyDict_Size(kwds)) {
299 PyErr_SetString(PyExc_TypeError,
300 "bgl.Buffer(): takes no keyword args");
304 if (!PyArg_ParseTuple(args, "iO|O: bgl.Buffer", &type, &length_ob, &init)) {
307 if (!ELEM5(type, GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT, GL_DOUBLE)) {
308 PyErr_SetString(PyExc_AttributeError,
309 "invalid first argument type, should be one of "
310 "GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT or GL_DOUBLE");
314 if (PyLong_Check(length_ob)) {
316 if (((dimensions[0]= PyLong_AsLong(length_ob)) < 1)) {
317 PyErr_SetString(PyExc_AttributeError,
318 "dimensions must be between 1 and "STRINGIFY(MAX_DIMENSIONS));
322 else if (PySequence_Check(length_ob)) {
323 ndimensions= PySequence_Size(length_ob);
324 if (ndimensions > MAX_DIMENSIONS) {
325 PyErr_SetString(PyExc_AttributeError,
326 "too many dimensions, max is "STRINGIFY(MAX_DIMENSIONS));
329 else if (ndimensions < 1) {
330 PyErr_SetString(PyExc_AttributeError,
331 "sequence must have at least one dimension");
334 for (i=0; i<ndimensions; i++) {
335 PyObject *ob= PySequence_GetItem(length_ob, i);
337 if (!PyLong_Check(ob)) dimensions[i]= 1;
338 else dimensions[i]= PyLong_AsLong(ob);
341 if (dimensions[i] < 1) {
342 PyErr_SetString(PyExc_AttributeError,
343 "dimensions must be between 1 and "STRINGIFY(MAX_DIMENSIONS));
349 PyErr_Format(PyExc_TypeError,
350 "invalid second argument argument expected a sequence "
351 "or an int, not a %.200s", Py_TYPE(length_ob)->tp_name);
355 buffer= BGL_MakeBuffer(type, ndimensions, dimensions, NULL);
356 if (init && ndimensions) {
357 if (Buffer_ass_slice(buffer, 0, dimensions[0], init)) {
363 return (PyObject *) buffer;
366 /*@ Buffer sequence methods */
368 static int Buffer_len(Buffer *self)
370 return self->dimensions[0];
373 static PyObject *Buffer_item(Buffer *self, int i)
375 if (i >= self->dimensions[0] || i < 0) {
376 PyErr_SetString(PyExc_IndexError, "array index out of range");
380 if (self->ndimensions==1) {
381 switch (self->type) {
382 case GL_BYTE: return Py_BuildValue("b", self->buf.asbyte[i]);
383 case GL_SHORT: return Py_BuildValue("h", self->buf.asshort[i]);
384 case GL_INT: return Py_BuildValue("i", self->buf.asint[i]);
385 case GL_FLOAT: return PyFloat_FromDouble(self->buf.asfloat[i]);
386 case GL_DOUBLE: return Py_BuildValue("d", self->buf.asdouble[i]);
394 for (j=1; j < self->ndimensions; j++) {
395 length *= self->dimensions[j];
397 size= BGL_typeSize(self->type);
399 newbuf= (Buffer *) PyObject_NEW(Buffer, &BGL_bufferType);
402 newbuf->parent= (PyObject *)self;
404 newbuf->ndimensions= self->ndimensions - 1;
405 newbuf->type= self->type;
406 newbuf->buf.asvoid= self->buf.asbyte + i*length*size;
407 newbuf->dimensions= MEM_mallocN(newbuf->ndimensions*sizeof(int),
408 "Buffer dimensions");
409 memcpy(newbuf->dimensions, self->dimensions+1,
410 newbuf->ndimensions*sizeof(int));
412 return (PyObject *) newbuf;
418 static PyObject *Buffer_slice(Buffer *self, int begin, int end)
423 if (begin < 0) begin= 0;
424 if (end > self->dimensions[0]) end= self->dimensions[0];
425 if (begin > end) begin= end;
427 list= PyList_New(end-begin);
429 for (count= begin; count<end; count++) {
430 PyList_SET_ITEM(list, count-begin, Buffer_item(self, count));
435 static int Buffer_ass_item(Buffer *self, int i, PyObject *v)
437 if (i >= self->dimensions[0] || i < 0) {
438 PyErr_SetString(PyExc_IndexError,
439 "array assignment index out of range");
443 if (self->ndimensions!=1) {
444 Buffer *row= (Buffer *)Buffer_item(self, i);
447 int ret= Buffer_ass_slice(row, 0, self->dimensions[1], v);
458 return PyArg_Parse(v, "b:Expected ints", &self->buf.asbyte[i]) ? 0:-1;
460 return PyArg_Parse(v, "h:Expected ints", &self->buf.asshort[i]) ? 0:-1;
462 return PyArg_Parse(v, "i:Expected ints", &self->buf.asint[i]) ? 0:-1;
464 return PyArg_Parse(v, "f:Expected floats", &self->buf.asfloat[i]) ? 0:-1;
466 return PyArg_Parse(v, "d:Expected floats", &self->buf.asdouble[i]) ? 0:-1;
468 return 0; /* should never happen */
472 static int Buffer_ass_slice(Buffer *self, int begin, int end, PyObject *seq)
477 if (begin < 0) begin= 0;
478 if (end > self->dimensions[0]) end= self->dimensions[0];
479 if (begin > end) begin= end;
481 if (!PySequence_Check(seq)) {
482 PyErr_Format(PyExc_TypeError,
483 "buffer[:] = value, invalid assignment. "
484 "Expected a sequence, not an %.200s type",
485 Py_TYPE(seq)->tp_name);
489 /* re-use count var */
490 if ((count= PySequence_Size(seq)) != (end - begin)) {
491 PyErr_Format(PyExc_TypeError,
492 "buffer[:] = value, size mismatch in assignment. "
493 "Expected: %d (given: %d)", count, end - begin);
497 for (count= begin; count < end; count++) {
498 item= PySequence_GetItem(seq, count - begin);
500 err= Buffer_ass_item(self, count, item);
511 static PyObject *Buffer_subscript(Buffer *self, PyObject *item)
513 if (PyIndex_Check(item)) {
515 i = PyNumber_AsSsize_t(item, PyExc_IndexError);
516 if (i == -1 && PyErr_Occurred())
519 i += self->dimensions[0];
520 return Buffer_item(self, i);
522 else if (PySlice_Check(item)) {
523 Py_ssize_t start, stop, step, slicelength;
525 if (PySlice_GetIndicesEx((void *)item, self->dimensions[0], &start, &stop, &step, &slicelength) < 0)
528 if (slicelength <= 0) {
529 return PyTuple_New(0);
531 else if (step == 1) {
532 return Buffer_slice(self, start, stop);
535 PyErr_SetString(PyExc_IndexError,
536 "slice steps not supported with vectors");
541 PyErr_Format(PyExc_TypeError,
542 "buffer indices must be integers, not %.200s",
543 Py_TYPE(item)->tp_name);
548 static int Buffer_ass_subscript(Buffer *self, PyObject *item, PyObject *value)
550 if (PyIndex_Check(item)) {
551 Py_ssize_t i = PyNumber_AsSsize_t(item, PyExc_IndexError);
552 if (i == -1 && PyErr_Occurred())
555 i += self->dimensions[0];
556 return Buffer_ass_item(self, i, value);
558 else if (PySlice_Check(item)) {
559 Py_ssize_t start, stop, step, slicelength;
561 if (PySlice_GetIndicesEx((void *)item, self->dimensions[0], &start, &stop, &step, &slicelength) < 0)
565 return Buffer_ass_slice(self, start, stop, value);
567 PyErr_SetString(PyExc_IndexError,
568 "slice steps not supported with vectors");
573 PyErr_Format(PyExc_TypeError,
574 "buffer indices must be integers, not %.200s",
575 Py_TYPE(item)->tp_name);
581 static void Buffer_dealloc(Buffer *self)
583 if (self->parent) Py_DECREF(self->parent);
584 else MEM_freeN (self->buf.asvoid);
586 MEM_freeN(self->dimensions);
592 static PyObject *Buffer_repr(Buffer *self)
594 PyObject *list= Buffer_to_list_recursive(self);
596 const char *typestr= "UNKNOWN";
599 case GL_BYTE: typestr= "GL_BYTE"; break;
600 case GL_SHORT: typestr= "GL_SHORT"; break;
601 case GL_INT: typestr= "GL_BYTE"; break;
602 case GL_FLOAT: typestr= "GL_FLOAT"; break;
603 case GL_DOUBLE: typestr= "GL_DOUBLE"; break;
606 repr= PyUnicode_FromFormat("Buffer(%s, %R)", typestr, list);
613 BGL_Wrap(2, Accum, void, (GLenum, GLfloat))
614 BGL_Wrap(2, AlphaFunc, void, (GLenum, GLclampf))
615 BGL_Wrap(3, AreTexturesResident, GLboolean, (GLsizei, GLuintP, GLbooleanP))
616 BGL_Wrap(1, Begin, void, (GLenum))
617 BGL_Wrap(2, BindTexture, void, (GLenum, GLuint))
618 BGL_Wrap(7, Bitmap, void, (GLsizei, GLsizei, GLfloat,
619 GLfloat, GLfloat, GLfloat, GLubyteP))
620 BGL_Wrap(2, BlendFunc, void, (GLenum, GLenum))
621 BGL_Wrap(1, CallList, void, (GLuint))
622 BGL_Wrap(3, CallLists, void, (GLsizei, GLenum, GLvoidP))
623 BGL_Wrap(1, Clear, void, (GLbitfield))
624 BGL_Wrap(4, ClearAccum, void, (GLfloat, GLfloat, GLfloat, GLfloat))
625 BGL_Wrap(4, ClearColor, void, (GLclampf, GLclampf, GLclampf, GLclampf))
626 BGL_Wrap(1, ClearDepth, void, (GLclampd))
627 BGL_Wrap(1, ClearIndex, void, (GLfloat))
628 BGL_Wrap(1, ClearStencil, void, (GLint))
629 BGL_Wrap(2, ClipPlane, void, (GLenum, GLdoubleP))
630 BGL_Wrap(3, Color3b, void, (GLbyte, GLbyte, GLbyte))
631 BGL_Wrap(1, Color3bv, void, (GLbyteP))
632 BGL_Wrap(3, Color3d, void, (GLdouble, GLdouble, GLdouble))
633 BGL_Wrap(1, Color3dv, void, (GLdoubleP))
634 BGL_Wrap(3, Color3f, void, (GLfloat, GLfloat, GLfloat))
635 BGL_Wrap(1, Color3fv, void, (GLfloatP))
636 BGL_Wrap(3, Color3i, void, (GLint, GLint, GLint))
637 BGL_Wrap(1, Color3iv, void, (GLintP))
638 BGL_Wrap(3, Color3s, void, (GLshort, GLshort, GLshort))
639 BGL_Wrap(1, Color3sv, void, (GLshortP))
640 BGL_Wrap(3, Color3ub, void, (GLubyte, GLubyte, GLubyte))
641 BGL_Wrap(1, Color3ubv, void, (GLubyteP))
642 BGL_Wrap(3, Color3ui, void, (GLuint, GLuint, GLuint))
643 BGL_Wrap(1, Color3uiv, void, (GLuintP))
644 BGL_Wrap(3, Color3us, void, (GLushort, GLushort, GLushort))
645 BGL_Wrap(1, Color3usv, void, (GLushortP))
646 BGL_Wrap(4, Color4b, void, (GLbyte, GLbyte, GLbyte, GLbyte))
647 BGL_Wrap(1, Color4bv, void, (GLbyteP))
648 BGL_Wrap(4, Color4d, void, (GLdouble, GLdouble, GLdouble, GLdouble))
649 BGL_Wrap(1, Color4dv, void, (GLdoubleP))
650 BGL_Wrap(4, Color4f, void, (GLfloat, GLfloat, GLfloat, GLfloat))
651 BGL_Wrap(1, Color4fv, void, (GLfloatP))
652 BGL_Wrap(4, Color4i, void, (GLint, GLint, GLint, GLint))
653 BGL_Wrap(1, Color4iv, void, (GLintP))
654 BGL_Wrap(4, Color4s, void, (GLshort, GLshort, GLshort, GLshort))
655 BGL_Wrap(1, Color4sv, void, (GLshortP))
656 BGL_Wrap(4, Color4ub, void, (GLubyte, GLubyte, GLubyte, GLubyte))
657 BGL_Wrap(1, Color4ubv, void, (GLubyteP))
658 BGL_Wrap(4, Color4ui, void, (GLuint, GLuint, GLuint, GLuint))
659 BGL_Wrap(1, Color4uiv, void, (GLuintP))
660 BGL_Wrap(4, Color4us, void, (GLushort, GLushort, GLushort, GLushort))
661 BGL_Wrap(1, Color4usv, void, (GLushortP))
662 BGL_Wrap(4, ColorMask, void, (GLboolean, GLboolean, GLboolean, GLboolean))
663 BGL_Wrap(2, ColorMaterial, void, (GLenum, GLenum))
664 BGL_Wrap(5, CopyPixels, void, (GLint, GLint, GLsizei, GLsizei, GLenum))
665 BGL_Wrap(8, CopyTexImage2D, void, (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint))
666 BGL_Wrap(1, CullFace, void, (GLenum))
667 BGL_Wrap(2, DeleteLists, void, (GLuint, GLsizei))
668 BGL_Wrap(2, DeleteTextures, void, (GLsizei, GLuintP))
669 BGL_Wrap(1, DepthFunc, void, (GLenum))
670 BGL_Wrap(1, DepthMask, void, (GLboolean))
671 BGL_Wrap(2, DepthRange, void, (GLclampd, GLclampd))
672 BGL_Wrap(1, Disable, void, (GLenum))
673 BGL_Wrap(1, DrawBuffer, void, (GLenum))
674 BGL_Wrap(5, DrawPixels, void, (GLsizei, GLsizei, GLenum, GLenum, GLvoidP))
675 BGL_Wrap(1, EdgeFlag, void, (GLboolean))
676 BGL_Wrap(1, EdgeFlagv, void, (GLbooleanP))
677 BGL_Wrap(1, Enable, void, (GLenum))
678 BGL_Wrap(1, End, void, (void))
679 BGL_Wrap(1, EndList, void, (void))
680 BGL_Wrap(1, EvalCoord1d, void, (GLdouble))
681 BGL_Wrap(1, EvalCoord1dv, void, (GLdoubleP))
682 BGL_Wrap(1, EvalCoord1f, void, (GLfloat))
683 BGL_Wrap(1, EvalCoord1fv, void, (GLfloatP))
684 BGL_Wrap(2, EvalCoord2d, void, (GLdouble, GLdouble))
685 BGL_Wrap(1, EvalCoord2dv, void, (GLdoubleP))
686 BGL_Wrap(2, EvalCoord2f, void, (GLfloat, GLfloat))
687 BGL_Wrap(1, EvalCoord2fv, void, (GLfloatP))
688 BGL_Wrap(3, EvalMesh1, void, (GLenum, GLint, GLint))
689 BGL_Wrap(5, EvalMesh2, void, (GLenum, GLint, GLint, GLint, GLint))
690 BGL_Wrap(1, EvalPoint1, void, (GLint))
691 BGL_Wrap(2, EvalPoint2, void, (GLint, GLint))
692 BGL_Wrap(3, FeedbackBuffer, void, (GLsizei, GLenum, GLfloatP))
693 BGL_Wrap(1, Finish, void, (void))
694 BGL_Wrap(1, Flush, void, (void))
695 BGL_Wrap(2, Fogf, void, (GLenum, GLfloat))
696 BGL_Wrap(2, Fogfv, void, (GLenum, GLfloatP))
697 BGL_Wrap(2, Fogi, void, (GLenum, GLint))
698 BGL_Wrap(2, Fogiv, void, (GLenum, GLintP))
699 BGL_Wrap(1, FrontFace, void, (GLenum))
700 BGL_Wrap(6, Frustum, void, (GLdouble, GLdouble,
701 GLdouble, GLdouble, GLdouble, GLdouble))
702 BGL_Wrap(1, GenLists, GLuint, (GLsizei))
703 BGL_Wrap(2, GenTextures, void, (GLsizei, GLuintP))
704 BGL_Wrap(2, GetBooleanv, void, (GLenum, GLbooleanP))
705 BGL_Wrap(2, GetClipPlane, void, (GLenum, GLdoubleP))
706 BGL_Wrap(2, GetDoublev, void, (GLenum, GLdoubleP))
707 BGL_Wrap(1, GetError, GLenum, (void))
708 BGL_Wrap(2, GetFloatv, void, (GLenum, GLfloatP))
709 BGL_Wrap(2, GetIntegerv, void, (GLenum, GLintP))
710 BGL_Wrap(3, GetLightfv, void, (GLenum, GLenum, GLfloatP))
711 BGL_Wrap(3, GetLightiv, void, (GLenum, GLenum, GLintP))
712 BGL_Wrap(3, GetMapdv, void, (GLenum, GLenum, GLdoubleP))
713 BGL_Wrap(3, GetMapfv, void, (GLenum, GLenum, GLfloatP))
714 BGL_Wrap(3, GetMapiv, void, (GLenum, GLenum, GLintP))
715 BGL_Wrap(3, GetMaterialfv, void, (GLenum, GLenum, GLfloatP))
716 BGL_Wrap(3, GetMaterialiv, void, (GLenum, GLenum, GLintP))
717 BGL_Wrap(2, GetPixelMapfv, void, (GLenum, GLfloatP))
718 BGL_Wrap(2, GetPixelMapuiv, void, (GLenum, GLuintP))
719 BGL_Wrap(2, GetPixelMapusv, void, (GLenum, GLushortP))
720 BGL_Wrap(1, GetPolygonStipple,void, (GLubyteP))
721 BGL_Wrap(1, GetString, GLstring, (GLenum))
722 BGL_Wrap(3, GetTexEnvfv, void, (GLenum, GLenum, GLfloatP))
723 BGL_Wrap(3, GetTexEnviv, void, (GLenum, GLenum, GLintP))
724 BGL_Wrap(3, GetTexGendv, void, (GLenum, GLenum, GLdoubleP))
725 BGL_Wrap(3, GetTexGenfv, void, (GLenum, GLenum, GLfloatP))
726 BGL_Wrap(3, GetTexGeniv, void, (GLenum, GLenum, GLintP))
727 BGL_Wrap(5, GetTexImage, void, (GLenum, GLint, GLenum, GLenum, GLvoidP))
728 BGL_Wrap(4, GetTexLevelParameterfv, void, (GLenum, GLint, GLenum, GLfloatP))
729 BGL_Wrap(4, GetTexLevelParameteriv, void, (GLenum, GLint, GLenum, GLintP))
730 BGL_Wrap(3, GetTexParameterfv, void, (GLenum, GLenum, GLfloatP))
731 BGL_Wrap(3, GetTexParameteriv, void, (GLenum, GLenum, GLintP))
732 BGL_Wrap(2, Hint, void, (GLenum, GLenum))
733 BGL_Wrap(1, IndexMask, void, (GLuint))
734 BGL_Wrap(1, Indexd, void, (GLdouble))
735 BGL_Wrap(1, Indexdv, void, (GLdoubleP))
736 BGL_Wrap(1, Indexf, void, (GLfloat))
737 BGL_Wrap(1, Indexfv, void, (GLfloatP))
738 BGL_Wrap(1, Indexi, void, (GLint))
739 BGL_Wrap(1, Indexiv, void, (GLintP))
740 BGL_Wrap(1, Indexs, void, (GLshort))
741 BGL_Wrap(1, Indexsv, void, (GLshortP))
742 BGL_Wrap(1, InitNames, void, (void))
743 BGL_Wrap(1, IsEnabled, GLboolean, (GLenum))
744 BGL_Wrap(1, IsList, GLboolean, (GLuint))
745 BGL_Wrap(1, IsTexture, GLboolean, (GLuint))
746 BGL_Wrap(2, LightModelf, void, (GLenum, GLfloat))
747 BGL_Wrap(2, LightModelfv, void, (GLenum, GLfloatP))
748 BGL_Wrap(2, LightModeli, void, (GLenum, GLint))
749 BGL_Wrap(2, LightModeliv, void, (GLenum, GLintP))
750 BGL_Wrap(3, Lightf, void, (GLenum, GLenum, GLfloat))
751 BGL_Wrap(3, Lightfv, void, (GLenum, GLenum, GLfloatP))
752 BGL_Wrap(3, Lighti, void, (GLenum, GLenum, GLint))
753 BGL_Wrap(3, Lightiv, void, (GLenum, GLenum, GLintP))
754 BGL_Wrap(2, LineStipple, void, (GLint, GLushort))
755 BGL_Wrap(1, LineWidth, void, (GLfloat))
756 BGL_Wrap(1, ListBase, void, (GLuint))
757 BGL_Wrap(1, LoadIdentity, void, (void))
758 BGL_Wrap(1, LoadMatrixd, void, (GLdoubleP))
759 BGL_Wrap(1, LoadMatrixf, void, (GLfloatP))
760 BGL_Wrap(1, LoadName, void, (GLuint))
761 BGL_Wrap(1, LogicOp, void, (GLenum))
762 BGL_Wrap(6, Map1d, void, (GLenum, GLdouble, GLdouble,
763 GLint, GLint, GLdoubleP))
764 BGL_Wrap(6, Map1f, void, (GLenum, GLfloat, GLfloat,
765 GLint, GLint, GLfloatP))
766 BGL_Wrap(10, Map2d, void, (GLenum, GLdouble, GLdouble,
767 GLint, GLint, GLdouble, GLdouble, GLint, GLint, GLdoubleP))
768 BGL_Wrap(10, Map2f, void, (GLenum, GLfloat, GLfloat,
769 GLint, GLint, GLfloat, GLfloat, GLint, GLint, GLfloatP))
770 BGL_Wrap(3, MapGrid1d, void, (GLint, GLdouble, GLdouble))
771 BGL_Wrap(3, MapGrid1f, void, (GLint, GLfloat, GLfloat))
772 BGL_Wrap(6, MapGrid2d, void, (GLint, GLdouble, GLdouble,
773 GLint, GLdouble, GLdouble))
774 BGL_Wrap(6, MapGrid2f, void, (GLint, GLfloat, GLfloat,
775 GLint, GLfloat, GLfloat))
776 BGL_Wrap(3, Materialf, void, (GLenum, GLenum, GLfloat))
777 BGL_Wrap(3, Materialfv, void, (GLenum, GLenum, GLfloatP))
778 BGL_Wrap(3, Materiali, void, (GLenum, GLenum, GLint))
779 BGL_Wrap(3, Materialiv, void, (GLenum, GLenum, GLintP))
780 BGL_Wrap(1, MatrixMode, void, (GLenum))
781 BGL_Wrap(1, MultMatrixd, void, (GLdoubleP))
782 BGL_Wrap(1, MultMatrixf, void, (GLfloatP))
783 BGL_Wrap(2, NewList, void, (GLuint, GLenum))
784 BGL_Wrap(3, Normal3b, void, (GLbyte, GLbyte, GLbyte))
785 BGL_Wrap(1, Normal3bv, void, (GLbyteP))
786 BGL_Wrap(3, Normal3d, void, (GLdouble, GLdouble, GLdouble))
787 BGL_Wrap(1, Normal3dv, void, (GLdoubleP))
788 BGL_Wrap(3, Normal3f, void, (GLfloat, GLfloat, GLfloat))
789 BGL_Wrap(1, Normal3fv, void, (GLfloatP))
790 BGL_Wrap(3, Normal3i, void, (GLint, GLint, GLint))
791 BGL_Wrap(1, Normal3iv, void, (GLintP))
792 BGL_Wrap(3, Normal3s, void, (GLshort, GLshort, GLshort))
793 BGL_Wrap(1, Normal3sv, void, (GLshortP))
794 BGL_Wrap(6, Ortho, void, (GLdouble, GLdouble,
795 GLdouble, GLdouble, GLdouble, GLdouble))
796 BGL_Wrap(1, PassThrough, void, (GLfloat))
797 BGL_Wrap(3, PixelMapfv, void, (GLenum, GLint, GLfloatP))
798 BGL_Wrap(3, PixelMapuiv, void, (GLenum, GLint, GLuintP))
799 BGL_Wrap(3, PixelMapusv, void, (GLenum, GLint, GLushortP))
800 BGL_Wrap(2, PixelStoref, void, (GLenum, GLfloat))
801 BGL_Wrap(2, PixelStorei, void, (GLenum, GLint))
802 BGL_Wrap(2, PixelTransferf, void, (GLenum, GLfloat))
803 BGL_Wrap(2, PixelTransferi, void, (GLenum, GLint))
804 BGL_Wrap(2, PixelZoom, void, (GLfloat, GLfloat))
805 BGL_Wrap(1, PointSize, void, (GLfloat))
806 BGL_Wrap(2, PolygonMode, void, (GLenum, GLenum))
807 BGL_Wrap(2, PolygonOffset, void, (GLfloat, GLfloat))
808 BGL_Wrap(1, PolygonStipple, void, (GLubyteP))
809 BGL_Wrap(1, PopAttrib, void, (void))
810 BGL_Wrap(1, PopClientAttrib, void, (void))
811 BGL_Wrap(1, PopMatrix, void, (void))
812 BGL_Wrap(1, PopName, void, (void))
813 BGL_Wrap(3, PrioritizeTextures, void, (GLsizei, GLuintP, GLclampfP))
814 BGL_Wrap(1, PushAttrib, void, (GLbitfield))
815 BGL_Wrap(1, PushClientAttrib, void, (GLbitfield))
816 BGL_Wrap(1, PushMatrix, void, (void))
817 BGL_Wrap(1, PushName, void, (GLuint))
818 BGL_Wrap(2, RasterPos2d, void, (GLdouble, GLdouble))
819 BGL_Wrap(1, RasterPos2dv, void, (GLdoubleP))
820 BGL_Wrap(2, RasterPos2f, void, (GLfloat, GLfloat))
821 BGL_Wrap(1, RasterPos2fv, void, (GLfloatP))
822 BGL_Wrap(2, RasterPos2i, void, (GLint, GLint))
823 BGL_Wrap(1, RasterPos2iv, void, (GLintP))
824 BGL_Wrap(2, RasterPos2s, void, (GLshort, GLshort))
825 BGL_Wrap(1, RasterPos2sv, void, (GLshortP))
826 BGL_Wrap(3, RasterPos3d, void, (GLdouble, GLdouble, GLdouble))
827 BGL_Wrap(1, RasterPos3dv, void, (GLdoubleP))
828 BGL_Wrap(3, RasterPos3f, void, (GLfloat, GLfloat, GLfloat))
829 BGL_Wrap(1, RasterPos3fv, void, (GLfloatP))
830 BGL_Wrap(3, RasterPos3i, void, (GLint, GLint, GLint))
831 BGL_Wrap(1, RasterPos3iv, void, (GLintP))
832 BGL_Wrap(3, RasterPos3s, void, (GLshort, GLshort, GLshort))
833 BGL_Wrap(1, RasterPos3sv, void, (GLshortP))
834 BGL_Wrap(4, RasterPos4d, void, (GLdouble, GLdouble, GLdouble, GLdouble))
835 BGL_Wrap(1, RasterPos4dv, void, (GLdoubleP))
836 BGL_Wrap(4, RasterPos4f, void, (GLfloat, GLfloat, GLfloat, GLfloat))
837 BGL_Wrap(1, RasterPos4fv, void, (GLfloatP))
838 BGL_Wrap(4, RasterPos4i, void, (GLint, GLint, GLint, GLint))
839 BGL_Wrap(1, RasterPos4iv, void, (GLintP))
840 BGL_Wrap(4, RasterPos4s, void, (GLshort, GLshort, GLshort, GLshort))
841 BGL_Wrap(1, RasterPos4sv, void, (GLshortP))
842 BGL_Wrap(1, ReadBuffer, void, (GLenum))
843 BGL_Wrap(7, ReadPixels, void, (GLint, GLint, GLsizei,
844 GLsizei, GLenum, GLenum, GLvoidP))
845 BGL_Wrap(4, Rectd, void, (GLdouble, GLdouble, GLdouble, GLdouble))
846 BGL_Wrap(2, Rectdv, void, (GLdoubleP, GLdoubleP))
847 BGL_Wrap(4, Rectf, void, (GLfloat, GLfloat, GLfloat, GLfloat))
848 BGL_Wrap(2, Rectfv, void, (GLfloatP, GLfloatP))
849 BGL_Wrap(4, Recti, void, (GLint, GLint, GLint, GLint))
850 BGL_Wrap(2, Rectiv, void, (GLintP, GLintP))
851 BGL_Wrap(4, Rects, void, (GLshort, GLshort, GLshort, GLshort))
852 BGL_Wrap(2, Rectsv, void, (GLshortP, GLshortP))
853 BGL_Wrap(1, RenderMode, GLint, (GLenum))
854 BGL_Wrap(4, Rotated, void, (GLdouble, GLdouble, GLdouble, GLdouble))
855 BGL_Wrap(4, Rotatef, void, (GLfloat, GLfloat, GLfloat, GLfloat))
856 BGL_Wrap(3, Scaled, void, (GLdouble, GLdouble, GLdouble))
857 BGL_Wrap(3, Scalef, void, (GLfloat, GLfloat, GLfloat))
858 BGL_Wrap(4, Scissor, void, (GLint, GLint, GLsizei, GLsizei))
859 BGL_Wrap(2, SelectBuffer, void, (GLsizei, GLuintP))
860 BGL_Wrap(1, ShadeModel, void, (GLenum))
861 BGL_Wrap(3, StencilFunc, void, (GLenum, GLint, GLuint))
862 BGL_Wrap(1, StencilMask, void, (GLuint))
863 BGL_Wrap(3, StencilOp, void, (GLenum, GLenum, GLenum))
864 BGL_Wrap(1, TexCoord1d, void, (GLdouble))
865 BGL_Wrap(1, TexCoord1dv, void, (GLdoubleP))
866 BGL_Wrap(1, TexCoord1f, void, (GLfloat))
867 BGL_Wrap(1, TexCoord1fv, void, (GLfloatP))
868 BGL_Wrap(1, TexCoord1i, void, (GLint))
869 BGL_Wrap(1, TexCoord1iv, void, (GLintP))
870 BGL_Wrap(1, TexCoord1s, void, (GLshort))
871 BGL_Wrap(1, TexCoord1sv, void, (GLshortP))
872 BGL_Wrap(2, TexCoord2d, void, (GLdouble, GLdouble))
873 BGL_Wrap(1, TexCoord2dv, void, (GLdoubleP))
874 BGL_Wrap(2, TexCoord2f, void, (GLfloat, GLfloat))
875 BGL_Wrap(1, TexCoord2fv, void, (GLfloatP))
876 BGL_Wrap(2, TexCoord2i, void, (GLint, GLint))
877 BGL_Wrap(1, TexCoord2iv, void, (GLintP))
878 BGL_Wrap(2, TexCoord2s, void, (GLshort, GLshort))
879 BGL_Wrap(1, TexCoord2sv, void, (GLshortP))
880 BGL_Wrap(3, TexCoord3d, void, (GLdouble, GLdouble, GLdouble))
881 BGL_Wrap(1, TexCoord3dv, void, (GLdoubleP))
882 BGL_Wrap(3, TexCoord3f, void, (GLfloat, GLfloat, GLfloat))
883 BGL_Wrap(1, TexCoord3fv, void, (GLfloatP))
884 BGL_Wrap(3, TexCoord3i, void, (GLint, GLint, GLint))
885 BGL_Wrap(1, TexCoord3iv, void, (GLintP))
886 BGL_Wrap(3, TexCoord3s, void, (GLshort, GLshort, GLshort))
887 BGL_Wrap(1, TexCoord3sv, void, (GLshortP))
888 BGL_Wrap(4, TexCoord4d, void, (GLdouble, GLdouble, GLdouble, GLdouble))
889 BGL_Wrap(1, TexCoord4dv, void, (GLdoubleP))
890 BGL_Wrap(4, TexCoord4f, void, (GLfloat, GLfloat, GLfloat, GLfloat))
891 BGL_Wrap(1, TexCoord4fv, void, (GLfloatP))
892 BGL_Wrap(4, TexCoord4i, void, (GLint, GLint, GLint, GLint))
893 BGL_Wrap(1, TexCoord4iv, void, (GLintP))
894 BGL_Wrap(4, TexCoord4s, void, (GLshort, GLshort, GLshort, GLshort))
895 BGL_Wrap(1, TexCoord4sv, void, (GLshortP))
896 BGL_Wrap(3, TexEnvf, void, (GLenum, GLenum, GLfloat))
897 BGL_Wrap(3, TexEnvfv, void, (GLenum, GLenum, GLfloatP))
898 BGL_Wrap(3, TexEnvi, void, (GLenum, GLenum, GLint))
899 BGL_Wrap(3, TexEnviv, void, (GLenum, GLenum, GLintP))
900 BGL_Wrap(3, TexGend, void, (GLenum, GLenum, GLdouble))
901 BGL_Wrap(3, TexGendv, void, (GLenum, GLenum, GLdoubleP))
902 BGL_Wrap(3, TexGenf, void, (GLenum, GLenum, GLfloat))
903 BGL_Wrap(3, TexGenfv, void, (GLenum, GLenum, GLfloatP))
904 BGL_Wrap(3, TexGeni, void, (GLenum, GLenum, GLint))
905 BGL_Wrap(3, TexGeniv, void, (GLenum, GLenum, GLintP))
906 BGL_Wrap(8, TexImage1D, void, (GLenum, GLint, GLint,
907 GLsizei, GLint, GLenum, GLenum, GLvoidP))
908 BGL_Wrap(9, TexImage2D, void, (GLenum, GLint, GLint,
909 GLsizei, GLsizei, GLint, GLenum, GLenum, GLvoidP))
910 BGL_Wrap(3, TexParameterf, void, (GLenum, GLenum, GLfloat))
911 BGL_Wrap(3, TexParameterfv, void, (GLenum, GLenum, GLfloatP))
912 BGL_Wrap(3, TexParameteri, void, (GLenum, GLenum, GLint))
913 BGL_Wrap(3, TexParameteriv, void, (GLenum, GLenum, GLintP))
914 BGL_Wrap(3, Translated, void, (GLdouble, GLdouble, GLdouble))
915 BGL_Wrap(3, Translatef, void, (GLfloat, GLfloat, GLfloat))
916 BGL_Wrap(2, Vertex2d, void, (GLdouble, GLdouble))
917 BGL_Wrap(1, Vertex2dv, void, (GLdoubleP))
918 BGL_Wrap(2, Vertex2f, void, (GLfloat, GLfloat))
919 BGL_Wrap(1, Vertex2fv, void, (GLfloatP))
920 BGL_Wrap(2, Vertex2i, void, (GLint, GLint))
921 BGL_Wrap(1, Vertex2iv, void, (GLintP))
922 BGL_Wrap(2, Vertex2s, void, (GLshort, GLshort))
923 BGL_Wrap(1, Vertex2sv, void, (GLshortP))
924 BGL_Wrap(3, Vertex3d, void, (GLdouble, GLdouble, GLdouble))
925 BGL_Wrap(1, Vertex3dv, void, (GLdoubleP))
926 BGL_Wrap(3, Vertex3f, void, (GLfloat, GLfloat, GLfloat))
927 BGL_Wrap(1, Vertex3fv, void, (GLfloatP))
928 BGL_Wrap(3, Vertex3i, void, (GLint, GLint, GLint))
929 BGL_Wrap(1, Vertex3iv, void, (GLintP))
930 BGL_Wrap(3, Vertex3s, void, (GLshort, GLshort, GLshort))
931 BGL_Wrap(1, Vertex3sv, void, (GLshortP))
932 BGL_Wrap(4, Vertex4d, void, (GLdouble, GLdouble, GLdouble, GLdouble))
933 BGL_Wrap(1, Vertex4dv, void, (GLdoubleP))
934 BGL_Wrap(4, Vertex4f, void, (GLfloat, GLfloat, GLfloat, GLfloat))
935 BGL_Wrap(1, Vertex4fv, void, (GLfloatP))
936 BGL_Wrap(4, Vertex4i, void, (GLint, GLint, GLint, GLint))
937 BGL_Wrap(1, Vertex4iv, void, (GLintP))
938 BGL_Wrap(4, Vertex4s, void, (GLshort, GLshort, GLshort, GLshort))
939 BGL_Wrap(1, Vertex4sv, void, (GLshortP))
940 BGL_Wrap(4, Viewport, void, (GLint, GLint, GLsizei, GLsizei))
941 BGLU_Wrap(4, Perspective, void, (GLdouble, GLdouble, GLdouble, GLdouble))
942 BGLU_Wrap(9, LookAt, void, (GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble))
943 BGLU_Wrap(4, Ortho2D, void, (GLdouble, GLdouble, GLdouble, GLdouble))
944 BGLU_Wrap(5, PickMatrix, void, (GLdouble, GLdouble, GLdouble, GLdouble, GLintP))
945 BGLU_Wrap(9, Project, GLint, (GLdouble, GLdouble, GLdouble, GLdoubleP, GLdoubleP, GLintP, GLdoubleP, GLdoubleP, GLdoubleP))
946 BGLU_Wrap(9, UnProject, GLint, (GLdouble, GLdouble, GLdouble, GLdoubleP, GLdoubleP, GLintP, GLdoubleP, GLdoubleP, GLdoubleP))
949 #define MethodDef(func) {"gl"#func, Method_##func, METH_VARARGS, "no string"}
950 #define MethodDefu(func) {"glu"#func, Method_##func, METH_VARARGS, "no string"}
951 /* So that MethodDef(Accum) becomes:
952 * {"glAccum", Method_Accumfunc, METH_VARARGS} */
954 static struct PyMethodDef BGL_methods[] = {
956 /* #ifndef __APPLE__ */
958 MethodDef(AlphaFunc),
959 MethodDef(AreTexturesResident),
961 MethodDef(BindTexture),
963 MethodDef(BlendFunc),
965 MethodDef(CallLists),
967 MethodDef(ClearAccum),
968 MethodDef(ClearColor),
969 MethodDef(ClearDepth),
970 MethodDef(ClearIndex),
971 MethodDef(ClearStencil),
972 MethodDef(ClipPlane),
984 MethodDef(Color3ubv),
986 MethodDef(Color3uiv),
988 MethodDef(Color3usv),
1000 MethodDef(Color4ubv),
1001 MethodDef(Color4ui),
1002 MethodDef(Color4uiv),
1003 MethodDef(Color4us),
1004 MethodDef(Color4usv),
1005 MethodDef(ColorMask),
1006 MethodDef(ColorMaterial),
1007 MethodDef(CopyPixels),
1008 MethodDef(CopyTexImage2D),
1009 MethodDef(CullFace),
1010 MethodDef(DeleteLists),
1011 MethodDef(DeleteTextures),
1012 MethodDef(DepthFunc),
1013 MethodDef(DepthMask),
1014 MethodDef(DepthRange),
1016 MethodDef(DrawBuffer),
1017 MethodDef(DrawPixels),
1018 MethodDef(EdgeFlag),
1019 MethodDef(EdgeFlagv),
1023 MethodDef(EvalCoord1d),
1024 MethodDef(EvalCoord1dv),
1025 MethodDef(EvalCoord1f),
1026 MethodDef(EvalCoord1fv),
1027 MethodDef(EvalCoord2d),
1028 MethodDef(EvalCoord2dv),
1029 MethodDef(EvalCoord2f),
1030 MethodDef(EvalCoord2fv),
1031 MethodDef(EvalMesh1),
1032 MethodDef(EvalMesh2),
1033 MethodDef(EvalPoint1),
1034 MethodDef(EvalPoint2),
1035 MethodDef(FeedbackBuffer),
1042 MethodDef(FrontFace),
1044 MethodDef(GenLists),
1045 MethodDef(GenTextures),
1046 MethodDef(GetBooleanv),
1047 MethodDef(GetClipPlane),
1048 MethodDef(GetDoublev),
1049 MethodDef(GetError),
1050 MethodDef(GetFloatv),
1051 MethodDef(GetIntegerv),
1052 MethodDef(GetLightfv),
1053 MethodDef(GetLightiv),
1054 MethodDef(GetMapdv),
1055 MethodDef(GetMapfv),
1056 MethodDef(GetMapiv),
1057 MethodDef(GetMaterialfv),
1058 MethodDef(GetMaterialiv),
1059 MethodDef(GetPixelMapfv),
1060 MethodDef(GetPixelMapuiv),
1061 MethodDef(GetPixelMapusv),
1062 MethodDef(GetPolygonStipple),
1063 MethodDef(GetString),
1064 MethodDef(GetTexEnvfv),
1065 MethodDef(GetTexEnviv),
1066 MethodDef(GetTexGendv),
1067 MethodDef(GetTexGenfv),
1068 MethodDef(GetTexGeniv),
1069 MethodDef(GetTexImage),
1070 MethodDef(GetTexLevelParameterfv),
1071 MethodDef(GetTexLevelParameteriv),
1072 MethodDef(GetTexParameterfv),
1073 MethodDef(GetTexParameteriv),
1075 MethodDef(IndexMask),
1084 MethodDef(InitNames),
1085 MethodDef(IsEnabled),
1087 MethodDef(IsTexture),
1088 MethodDef(LightModelf),
1089 MethodDef(LightModelfv),
1090 MethodDef(LightModeli),
1091 MethodDef(LightModeliv),
1096 MethodDef(LineStipple),
1097 MethodDef(LineWidth),
1098 MethodDef(ListBase),
1099 MethodDef(LoadIdentity),
1100 MethodDef(LoadMatrixd),
1101 MethodDef(LoadMatrixf),
1102 MethodDef(LoadName),
1108 MethodDef(MapGrid1d),
1109 MethodDef(MapGrid1f),
1110 MethodDef(MapGrid2d),
1111 MethodDef(MapGrid2f),
1112 MethodDef(Materialf),
1113 MethodDef(Materialfv),
1114 MethodDef(Materiali),
1115 MethodDef(Materialiv),
1116 MethodDef(MatrixMode),
1117 MethodDef(MultMatrixd),
1118 MethodDef(MultMatrixf),
1120 MethodDef(Normal3b),
1121 MethodDef(Normal3bv),
1122 MethodDef(Normal3d),
1123 MethodDef(Normal3dv),
1124 MethodDef(Normal3f),
1125 MethodDef(Normal3fv),
1126 MethodDef(Normal3i),
1127 MethodDef(Normal3iv),
1128 MethodDef(Normal3s),
1129 MethodDef(Normal3sv),
1131 MethodDef(PassThrough),
1132 MethodDef(PixelMapfv),
1133 MethodDef(PixelMapuiv),
1134 MethodDef(PixelMapusv),
1135 MethodDef(PixelStoref),
1136 MethodDef(PixelStorei),
1137 MethodDef(PixelTransferf),
1138 MethodDef(PixelTransferi),
1139 MethodDef(PixelZoom),
1140 MethodDef(PointSize),
1141 MethodDef(PolygonMode),
1142 MethodDef(PolygonOffset),
1143 MethodDef(PolygonStipple),
1144 MethodDef(PopAttrib),
1145 MethodDef(PopClientAttrib),
1146 MethodDef(PopMatrix),
1148 MethodDef(PrioritizeTextures),
1149 MethodDef(PushAttrib),
1150 MethodDef(PushClientAttrib),
1151 MethodDef(PushMatrix),
1152 MethodDef(PushName),
1153 MethodDef(RasterPos2d),
1154 MethodDef(RasterPos2dv),
1155 MethodDef(RasterPos2f),
1156 MethodDef(RasterPos2fv),
1157 MethodDef(RasterPos2i),
1158 MethodDef(RasterPos2iv),
1159 MethodDef(RasterPos2s),
1160 MethodDef(RasterPos2sv),
1161 MethodDef(RasterPos3d),
1162 MethodDef(RasterPos3dv),
1163 MethodDef(RasterPos3f),
1164 MethodDef(RasterPos3fv),
1165 MethodDef(RasterPos3i),
1166 MethodDef(RasterPos3iv),
1167 MethodDef(RasterPos3s),
1168 MethodDef(RasterPos3sv),
1169 MethodDef(RasterPos4d),
1170 MethodDef(RasterPos4dv),
1171 MethodDef(RasterPos4f),
1172 MethodDef(RasterPos4fv),
1173 MethodDef(RasterPos4i),
1174 MethodDef(RasterPos4iv),
1175 MethodDef(RasterPos4s),
1176 MethodDef(RasterPos4sv),
1177 MethodDef(ReadBuffer),
1178 MethodDef(ReadPixels),
1187 MethodDef(RenderMode),
1193 MethodDef(SelectBuffer),
1194 MethodDef(ShadeModel),
1195 MethodDef(StencilFunc),
1196 MethodDef(StencilMask),
1197 MethodDef(StencilOp),
1198 MethodDef(TexCoord1d),
1199 MethodDef(TexCoord1dv),
1200 MethodDef(TexCoord1f),
1201 MethodDef(TexCoord1fv),
1202 MethodDef(TexCoord1i),
1203 MethodDef(TexCoord1iv),
1204 MethodDef(TexCoord1s),
1205 MethodDef(TexCoord1sv),
1206 MethodDef(TexCoord2d),
1207 MethodDef(TexCoord2dv),
1208 MethodDef(TexCoord2f),
1209 MethodDef(TexCoord2fv),
1210 MethodDef(TexCoord2i),
1211 MethodDef(TexCoord2iv),
1212 MethodDef(TexCoord2s),
1213 MethodDef(TexCoord2sv),
1214 MethodDef(TexCoord3d),
1215 MethodDef(TexCoord3dv),
1216 MethodDef(TexCoord3f),
1217 MethodDef(TexCoord3fv),
1218 MethodDef(TexCoord3i),
1219 MethodDef(TexCoord3iv),
1220 MethodDef(TexCoord3s),
1221 MethodDef(TexCoord3sv),
1222 MethodDef(TexCoord4d),
1223 MethodDef(TexCoord4dv),
1224 MethodDef(TexCoord4f),
1225 MethodDef(TexCoord4fv),
1226 MethodDef(TexCoord4i),
1227 MethodDef(TexCoord4iv),
1228 MethodDef(TexCoord4s),
1229 MethodDef(TexCoord4sv),
1231 MethodDef(TexEnvfv),
1233 MethodDef(TexEnviv),
1235 MethodDef(TexGendv),
1237 MethodDef(TexGenfv),
1239 MethodDef(TexGeniv),
1240 MethodDef(TexImage1D),
1241 MethodDef(TexImage2D),
1242 MethodDef(TexParameterf),
1243 MethodDef(TexParameterfv),
1244 MethodDef(TexParameteri),
1245 MethodDef(TexParameteriv),
1246 MethodDef(Translated),
1247 MethodDef(Translatef),
1248 MethodDef(Vertex2d),
1249 MethodDef(Vertex2dv),
1250 MethodDef(Vertex2f),
1251 MethodDef(Vertex2fv),
1252 MethodDef(Vertex2i),
1253 MethodDef(Vertex2iv),
1254 MethodDef(Vertex2s),
1255 MethodDef(Vertex2sv),
1256 MethodDef(Vertex3d),
1257 MethodDef(Vertex3dv),
1258 MethodDef(Vertex3f),
1259 MethodDef(Vertex3fv),
1260 MethodDef(Vertex3i),
1261 MethodDef(Vertex3iv),
1262 MethodDef(Vertex3s),
1263 MethodDef(Vertex3sv),
1264 MethodDef(Vertex4d),
1265 MethodDef(Vertex4dv),
1266 MethodDef(Vertex4f),
1267 MethodDef(Vertex4fv),
1268 MethodDef(Vertex4i),
1269 MethodDef(Vertex4iv),
1270 MethodDef(Vertex4s),
1271 MethodDef(Vertex4sv),
1272 MethodDef(Viewport),
1273 MethodDefu(Perspective),
1275 MethodDefu(Ortho2D),
1276 MethodDefu(PickMatrix),
1277 MethodDefu(Project),
1278 MethodDefu(UnProject),
1280 {NULL, NULL, 0, NULL}
1283 static struct PyModuleDef BGL_module_def = {
1284 PyModuleDef_HEAD_INIT,
1288 BGL_methods, /* m_methods */
1289 NULL, /* m_reload */
1290 NULL, /* m_traverse */
1296 PyObject *BPyInit_bgl(void)
1298 PyObject *submodule, *dict, *item;
1299 submodule= PyModule_Create(&BGL_module_def);
1300 dict= PyModule_GetDict(submodule);
1302 if (PyType_Ready(&BGL_bufferType) < 0)
1303 return NULL; /* should never happen */
1306 PyModule_AddObject(submodule, "Buffer", (PyObject *)&BGL_bufferType);
1308 #define EXPP_ADDCONST(x) PyDict_SetItemString(dict, #x, item=PyLong_FromLong((int)x)); Py_DECREF(item)
1311 * EXPP_ADDCONST(GL_CURRENT_BIT) becomes
1312 * PyDict_SetItemString(dict, "GL_CURRENT_BIT", item=PyLong_FromLong(GL_CURRENT_BIT)); Py_DECREF(item) */
1314 EXPP_ADDCONST(GL_CURRENT_BIT);
1315 EXPP_ADDCONST(GL_POINT_BIT);
1316 EXPP_ADDCONST(GL_LINE_BIT);
1317 EXPP_ADDCONST(GL_POLYGON_BIT);
1318 EXPP_ADDCONST(GL_POLYGON_STIPPLE_BIT);
1319 EXPP_ADDCONST(GL_PIXEL_MODE_BIT);
1320 EXPP_ADDCONST(GL_LIGHTING_BIT);
1321 EXPP_ADDCONST(GL_FOG_BIT);
1322 EXPP_ADDCONST(GL_DEPTH_BUFFER_BIT);
1323 EXPP_ADDCONST(GL_ACCUM_BUFFER_BIT);
1324 EXPP_ADDCONST(GL_STENCIL_BUFFER_BIT);
1325 EXPP_ADDCONST(GL_VIEWPORT_BIT);
1326 EXPP_ADDCONST(GL_TRANSFORM_BIT);
1327 EXPP_ADDCONST(GL_ENABLE_BIT);
1328 EXPP_ADDCONST(GL_COLOR_BUFFER_BIT);
1329 EXPP_ADDCONST(GL_HINT_BIT);
1330 EXPP_ADDCONST(GL_EVAL_BIT);
1331 EXPP_ADDCONST(GL_LIST_BIT);
1332 EXPP_ADDCONST(GL_TEXTURE_BIT);
1333 EXPP_ADDCONST(GL_SCISSOR_BIT);
1334 EXPP_ADDCONST(GL_ALL_ATTRIB_BITS);
1335 EXPP_ADDCONST(GL_CLIENT_ALL_ATTRIB_BITS);
1337 EXPP_ADDCONST(GL_FALSE);
1338 EXPP_ADDCONST(GL_TRUE);
1340 EXPP_ADDCONST(GL_POINTS);
1341 EXPP_ADDCONST(GL_LINES);
1342 EXPP_ADDCONST(GL_LINE_LOOP);
1343 EXPP_ADDCONST(GL_LINE_STRIP);
1344 EXPP_ADDCONST(GL_TRIANGLES);
1345 EXPP_ADDCONST(GL_TRIANGLE_STRIP);
1346 EXPP_ADDCONST(GL_TRIANGLE_FAN);
1347 EXPP_ADDCONST(GL_QUADS);
1348 EXPP_ADDCONST(GL_QUAD_STRIP);
1349 EXPP_ADDCONST(GL_POLYGON);
1351 EXPP_ADDCONST(GL_ACCUM);
1352 EXPP_ADDCONST(GL_LOAD);
1353 EXPP_ADDCONST(GL_RETURN);
1354 EXPP_ADDCONST(GL_MULT);
1355 EXPP_ADDCONST(GL_ADD);
1357 EXPP_ADDCONST(GL_NEVER);
1358 EXPP_ADDCONST(GL_LESS);
1359 EXPP_ADDCONST(GL_EQUAL);
1360 EXPP_ADDCONST(GL_LEQUAL);
1361 EXPP_ADDCONST(GL_GREATER);
1362 EXPP_ADDCONST(GL_NOTEQUAL);
1363 EXPP_ADDCONST(GL_GEQUAL);
1364 EXPP_ADDCONST(GL_ALWAYS);
1366 EXPP_ADDCONST(GL_ZERO);
1367 EXPP_ADDCONST(GL_ONE);
1368 EXPP_ADDCONST(GL_SRC_COLOR);
1369 EXPP_ADDCONST(GL_ONE_MINUS_SRC_COLOR);
1370 EXPP_ADDCONST(GL_SRC_ALPHA);
1371 EXPP_ADDCONST(GL_ONE_MINUS_SRC_ALPHA);
1372 EXPP_ADDCONST(GL_DST_ALPHA);
1373 EXPP_ADDCONST(GL_ONE_MINUS_DST_ALPHA);
1375 EXPP_ADDCONST(GL_DST_COLOR);
1376 EXPP_ADDCONST(GL_ONE_MINUS_DST_COLOR);
1377 EXPP_ADDCONST(GL_SRC_ALPHA_SATURATE);
1379 EXPP_ADDCONST(GL_NONE);
1380 EXPP_ADDCONST(GL_FRONT_LEFT);
1381 EXPP_ADDCONST(GL_FRONT_RIGHT);
1382 EXPP_ADDCONST(GL_BACK_LEFT);
1383 EXPP_ADDCONST(GL_BACK_RIGHT);
1384 EXPP_ADDCONST(GL_FRONT);
1385 EXPP_ADDCONST(GL_BACK);
1386 EXPP_ADDCONST(GL_LEFT);
1387 EXPP_ADDCONST(GL_RIGHT);
1388 EXPP_ADDCONST(GL_FRONT_AND_BACK);
1389 EXPP_ADDCONST(GL_AUX0);
1390 EXPP_ADDCONST(GL_AUX1);
1391 EXPP_ADDCONST(GL_AUX2);
1392 EXPP_ADDCONST(GL_AUX3);
1394 EXPP_ADDCONST(GL_NO_ERROR);
1395 EXPP_ADDCONST(GL_INVALID_ENUM);
1396 EXPP_ADDCONST(GL_INVALID_VALUE);
1397 EXPP_ADDCONST(GL_INVALID_OPERATION);
1398 EXPP_ADDCONST(GL_STACK_OVERFLOW);
1399 EXPP_ADDCONST(GL_STACK_UNDERFLOW);
1400 EXPP_ADDCONST(GL_OUT_OF_MEMORY);
1402 EXPP_ADDCONST(GL_2D);
1403 EXPP_ADDCONST(GL_3D);
1404 EXPP_ADDCONST(GL_3D_COLOR);
1405 EXPP_ADDCONST(GL_3D_COLOR_TEXTURE);
1406 EXPP_ADDCONST(GL_4D_COLOR_TEXTURE);
1408 EXPP_ADDCONST(GL_PASS_THROUGH_TOKEN);
1409 EXPP_ADDCONST(GL_POINT_TOKEN);
1410 EXPP_ADDCONST(GL_LINE_TOKEN);
1411 EXPP_ADDCONST(GL_POLYGON_TOKEN);
1412 EXPP_ADDCONST(GL_BITMAP_TOKEN);
1413 EXPP_ADDCONST(GL_DRAW_PIXEL_TOKEN);
1414 EXPP_ADDCONST(GL_COPY_PIXEL_TOKEN);
1415 EXPP_ADDCONST(GL_LINE_RESET_TOKEN);
1417 EXPP_ADDCONST(GL_EXP);
1418 EXPP_ADDCONST(GL_EXP2);
1420 EXPP_ADDCONST(GL_CW);
1421 EXPP_ADDCONST(GL_CCW);
1423 EXPP_ADDCONST(GL_COEFF);
1424 EXPP_ADDCONST(GL_ORDER);
1425 EXPP_ADDCONST(GL_DOMAIN);
1427 EXPP_ADDCONST(GL_PIXEL_MAP_I_TO_I);
1428 EXPP_ADDCONST(GL_PIXEL_MAP_S_TO_S);
1429 EXPP_ADDCONST(GL_PIXEL_MAP_I_TO_R);
1430 EXPP_ADDCONST(GL_PIXEL_MAP_I_TO_G);
1431 EXPP_ADDCONST(GL_PIXEL_MAP_I_TO_B);
1432 EXPP_ADDCONST(GL_PIXEL_MAP_I_TO_A);
1433 EXPP_ADDCONST(GL_PIXEL_MAP_R_TO_R);
1434 EXPP_ADDCONST(GL_PIXEL_MAP_G_TO_G);
1435 EXPP_ADDCONST(GL_PIXEL_MAP_B_TO_B);
1436 EXPP_ADDCONST(GL_PIXEL_MAP_A_TO_A);
1438 EXPP_ADDCONST(GL_CURRENT_COLOR);
1439 EXPP_ADDCONST(GL_CURRENT_INDEX);
1440 EXPP_ADDCONST(GL_CURRENT_NORMAL);
1441 EXPP_ADDCONST(GL_CURRENT_TEXTURE_COORDS);
1442 EXPP_ADDCONST(GL_CURRENT_RASTER_COLOR);
1443 EXPP_ADDCONST(GL_CURRENT_RASTER_INDEX);
1444 EXPP_ADDCONST(GL_CURRENT_RASTER_TEXTURE_COORDS);
1445 EXPP_ADDCONST(GL_CURRENT_RASTER_POSITION);
1446 EXPP_ADDCONST(GL_CURRENT_RASTER_POSITION_VALID);
1447 EXPP_ADDCONST(GL_CURRENT_RASTER_DISTANCE);
1448 EXPP_ADDCONST(GL_POINT_SMOOTH);
1449 EXPP_ADDCONST(GL_POINT_SIZE);
1450 EXPP_ADDCONST(GL_POINT_SIZE_RANGE);
1451 EXPP_ADDCONST(GL_POINT_SIZE_GRANULARITY);
1452 EXPP_ADDCONST(GL_LINE_SMOOTH);
1453 EXPP_ADDCONST(GL_LINE_WIDTH);
1454 EXPP_ADDCONST(GL_LINE_WIDTH_RANGE);
1455 EXPP_ADDCONST(GL_LINE_WIDTH_GRANULARITY);
1456 EXPP_ADDCONST(GL_LINE_STIPPLE);
1457 EXPP_ADDCONST(GL_LINE_STIPPLE_PATTERN);
1458 EXPP_ADDCONST(GL_LINE_STIPPLE_REPEAT);
1459 EXPP_ADDCONST(GL_LIST_MODE);
1460 EXPP_ADDCONST(GL_MAX_LIST_NESTING);
1461 EXPP_ADDCONST(GL_LIST_BASE);
1462 EXPP_ADDCONST(GL_LIST_INDEX);
1463 EXPP_ADDCONST(GL_POLYGON_MODE);
1464 EXPP_ADDCONST(GL_POLYGON_SMOOTH);
1465 EXPP_ADDCONST(GL_POLYGON_STIPPLE);
1466 EXPP_ADDCONST(GL_EDGE_FLAG);
1467 EXPP_ADDCONST(GL_CULL_FACE);
1468 EXPP_ADDCONST(GL_CULL_FACE_MODE);
1469 EXPP_ADDCONST(GL_FRONT_FACE);
1470 EXPP_ADDCONST(GL_LIGHTING);
1471 EXPP_ADDCONST(GL_LIGHT_MODEL_LOCAL_VIEWER);
1472 EXPP_ADDCONST(GL_LIGHT_MODEL_TWO_SIDE);
1473 EXPP_ADDCONST(GL_LIGHT_MODEL_AMBIENT);
1474 EXPP_ADDCONST(GL_SHADE_MODEL);
1475 EXPP_ADDCONST(GL_COLOR_MATERIAL_FACE);
1476 EXPP_ADDCONST(GL_COLOR_MATERIAL_PARAMETER);
1477 EXPP_ADDCONST(GL_COLOR_MATERIAL);
1478 EXPP_ADDCONST(GL_FOG);
1479 EXPP_ADDCONST(GL_FOG_INDEX);
1480 EXPP_ADDCONST(GL_FOG_DENSITY);
1481 EXPP_ADDCONST(GL_FOG_START);
1482 EXPP_ADDCONST(GL_FOG_END);
1483 EXPP_ADDCONST(GL_FOG_MODE);
1484 EXPP_ADDCONST(GL_FOG_COLOR);
1485 EXPP_ADDCONST(GL_DEPTH_RANGE);
1486 EXPP_ADDCONST(GL_DEPTH_TEST);
1487 EXPP_ADDCONST(GL_DEPTH_WRITEMASK);
1488 EXPP_ADDCONST(GL_DEPTH_CLEAR_VALUE);
1489 EXPP_ADDCONST(GL_DEPTH_FUNC);
1490 EXPP_ADDCONST(GL_ACCUM_CLEAR_VALUE);
1491 EXPP_ADDCONST(GL_STENCIL_TEST);
1492 EXPP_ADDCONST(GL_STENCIL_CLEAR_VALUE);
1493 EXPP_ADDCONST(GL_STENCIL_FUNC);
1494 EXPP_ADDCONST(GL_STENCIL_VALUE_MASK);
1495 EXPP_ADDCONST(GL_STENCIL_FAIL);
1496 EXPP_ADDCONST(GL_STENCIL_PASS_DEPTH_FAIL);
1497 EXPP_ADDCONST(GL_STENCIL_PASS_DEPTH_PASS);
1498 EXPP_ADDCONST(GL_STENCIL_REF);
1499 EXPP_ADDCONST(GL_STENCIL_WRITEMASK);
1500 EXPP_ADDCONST(GL_MATRIX_MODE);
1501 EXPP_ADDCONST(GL_NORMALIZE);
1502 EXPP_ADDCONST(GL_VIEWPORT);
1503 EXPP_ADDCONST(GL_MODELVIEW_STACK_DEPTH);
1504 EXPP_ADDCONST(GL_PROJECTION_STACK_DEPTH);
1505 EXPP_ADDCONST(GL_TEXTURE_STACK_DEPTH);
1506 EXPP_ADDCONST(GL_MODELVIEW_MATRIX);
1507 EXPP_ADDCONST(GL_PROJECTION_MATRIX);
1508 EXPP_ADDCONST(GL_TEXTURE_MATRIX);
1509 EXPP_ADDCONST(GL_ATTRIB_STACK_DEPTH);
1510 EXPP_ADDCONST(GL_ALPHA_TEST);
1511 EXPP_ADDCONST(GL_ALPHA_TEST_FUNC);
1512 EXPP_ADDCONST(GL_ALPHA_TEST_REF);
1513 EXPP_ADDCONST(GL_DITHER);
1514 EXPP_ADDCONST(GL_BLEND_DST);
1515 EXPP_ADDCONST(GL_BLEND_SRC);
1516 EXPP_ADDCONST(GL_BLEND);
1517 EXPP_ADDCONST(GL_LOGIC_OP_MODE);
1518 EXPP_ADDCONST(GL_LOGIC_OP);
1519 EXPP_ADDCONST(GL_AUX_BUFFERS);
1520 EXPP_ADDCONST(GL_DRAW_BUFFER);
1521 EXPP_ADDCONST(GL_READ_BUFFER);
1522 EXPP_ADDCONST(GL_SCISSOR_BOX);
1523 EXPP_ADDCONST(GL_SCISSOR_TEST);
1524 EXPP_ADDCONST(GL_INDEX_CLEAR_VALUE);
1525 EXPP_ADDCONST(GL_INDEX_WRITEMASK);
1526 EXPP_ADDCONST(GL_COLOR_CLEAR_VALUE);
1527 EXPP_ADDCONST(GL_COLOR_WRITEMASK);
1528 EXPP_ADDCONST(GL_INDEX_MODE);
1529 EXPP_ADDCONST(GL_RGBA_MODE);
1530 EXPP_ADDCONST(GL_DOUBLEBUFFER);
1531 EXPP_ADDCONST(GL_STEREO);
1532 EXPP_ADDCONST(GL_RENDER_MODE);
1533 EXPP_ADDCONST(GL_PERSPECTIVE_CORRECTION_HINT);
1534 EXPP_ADDCONST(GL_POINT_SMOOTH_HINT);
1535 EXPP_ADDCONST(GL_LINE_SMOOTH_HINT);
1536 EXPP_ADDCONST(GL_POLYGON_SMOOTH_HINT);
1537 EXPP_ADDCONST(GL_FOG_HINT);
1538 EXPP_ADDCONST(GL_TEXTURE_GEN_S);
1539 EXPP_ADDCONST(GL_TEXTURE_GEN_T);
1540 EXPP_ADDCONST(GL_TEXTURE_GEN_R);
1541 EXPP_ADDCONST(GL_TEXTURE_GEN_Q);
1542 EXPP_ADDCONST(GL_PIXEL_MAP_I_TO_I_SIZE);
1543 EXPP_ADDCONST(GL_PIXEL_MAP_S_TO_S_SIZE);
1544 EXPP_ADDCONST(GL_PIXEL_MAP_I_TO_R_SIZE);
1545 EXPP_ADDCONST(GL_PIXEL_MAP_I_TO_G_SIZE);
1546 EXPP_ADDCONST(GL_PIXEL_MAP_I_TO_B_SIZE);
1547 EXPP_ADDCONST(GL_PIXEL_MAP_I_TO_A_SIZE);
1548 EXPP_ADDCONST(GL_PIXEL_MAP_R_TO_R_SIZE);
1549 EXPP_ADDCONST(GL_PIXEL_MAP_G_TO_G_SIZE);
1550 EXPP_ADDCONST(GL_PIXEL_MAP_B_TO_B_SIZE);
1551 EXPP_ADDCONST(GL_PIXEL_MAP_A_TO_A_SIZE);
1552 EXPP_ADDCONST(GL_UNPACK_SWAP_BYTES);
1553 EXPP_ADDCONST(GL_UNPACK_LSB_FIRST);
1554 EXPP_ADDCONST(GL_UNPACK_ROW_LENGTH);
1555 EXPP_ADDCONST(GL_UNPACK_SKIP_ROWS);
1556 EXPP_ADDCONST(GL_UNPACK_SKIP_PIXELS);
1557 EXPP_ADDCONST(GL_UNPACK_ALIGNMENT);
1558 EXPP_ADDCONST(GL_PACK_SWAP_BYTES);
1559 EXPP_ADDCONST(GL_PACK_LSB_FIRST);
1560 EXPP_ADDCONST(GL_PACK_ROW_LENGTH);
1561 EXPP_ADDCONST(GL_PACK_SKIP_ROWS);
1562 EXPP_ADDCONST(GL_PACK_SKIP_PIXELS);
1563 EXPP_ADDCONST(GL_PACK_ALIGNMENT);
1564 EXPP_ADDCONST(GL_MAP_COLOR);
1565 EXPP_ADDCONST(GL_MAP_STENCIL);
1566 EXPP_ADDCONST(GL_INDEX_SHIFT);
1567 EXPP_ADDCONST(GL_INDEX_OFFSET);
1568 EXPP_ADDCONST(GL_RED_SCALE);
1569 EXPP_ADDCONST(GL_RED_BIAS);
1570 EXPP_ADDCONST(GL_ZOOM_X);
1571 EXPP_ADDCONST(GL_ZOOM_Y);
1572 EXPP_ADDCONST(GL_GREEN_SCALE);
1573 EXPP_ADDCONST(GL_GREEN_BIAS);
1574 EXPP_ADDCONST(GL_BLUE_SCALE);
1575 EXPP_ADDCONST(GL_BLUE_BIAS);
1576 EXPP_ADDCONST(GL_ALPHA_SCALE);
1577 EXPP_ADDCONST(GL_ALPHA_BIAS);
1578 EXPP_ADDCONST(GL_DEPTH_SCALE);
1579 EXPP_ADDCONST(GL_DEPTH_BIAS);
1580 EXPP_ADDCONST(GL_MAX_EVAL_ORDER);
1581 EXPP_ADDCONST(GL_MAX_LIGHTS);
1582 EXPP_ADDCONST(GL_MAX_CLIP_PLANES);
1583 EXPP_ADDCONST(GL_MAX_TEXTURE_SIZE);
1584 EXPP_ADDCONST(GL_MAX_PIXEL_MAP_TABLE);
1585 EXPP_ADDCONST(GL_MAX_ATTRIB_STACK_DEPTH);
1586 EXPP_ADDCONST(GL_MAX_MODELVIEW_STACK_DEPTH);
1587 EXPP_ADDCONST(GL_MAX_NAME_STACK_DEPTH);
1588 EXPP_ADDCONST(GL_MAX_PROJECTION_STACK_DEPTH);
1589 EXPP_ADDCONST(GL_MAX_TEXTURE_STACK_DEPTH);
1590 EXPP_ADDCONST(GL_MAX_VIEWPORT_DIMS);
1591 EXPP_ADDCONST(GL_SUBPIXEL_BITS);
1592 EXPP_ADDCONST(GL_INDEX_BITS);
1593 EXPP_ADDCONST(GL_RED_BITS);
1594 EXPP_ADDCONST(GL_GREEN_BITS);
1595 EXPP_ADDCONST(GL_BLUE_BITS);
1596 EXPP_ADDCONST(GL_ALPHA_BITS);
1597 EXPP_ADDCONST(GL_DEPTH_BITS);
1598 EXPP_ADDCONST(GL_STENCIL_BITS);
1599 EXPP_ADDCONST(GL_ACCUM_RED_BITS);
1600 EXPP_ADDCONST(GL_ACCUM_GREEN_BITS);
1601 EXPP_ADDCONST(GL_ACCUM_BLUE_BITS);
1602 EXPP_ADDCONST(GL_ACCUM_ALPHA_BITS);
1603 EXPP_ADDCONST(GL_NAME_STACK_DEPTH);
1604 EXPP_ADDCONST(GL_AUTO_NORMAL);
1605 EXPP_ADDCONST(GL_MAP1_COLOR_4);
1606 EXPP_ADDCONST(GL_MAP1_INDEX);
1607 EXPP_ADDCONST(GL_MAP1_NORMAL);
1608 EXPP_ADDCONST(GL_MAP1_TEXTURE_COORD_1);
1609 EXPP_ADDCONST(GL_MAP1_TEXTURE_COORD_2);
1610 EXPP_ADDCONST(GL_MAP1_TEXTURE_COORD_3);
1611 EXPP_ADDCONST(GL_MAP1_TEXTURE_COORD_4);
1612 EXPP_ADDCONST(GL_MAP1_VERTEX_3);
1613 EXPP_ADDCONST(GL_MAP1_VERTEX_4);
1614 EXPP_ADDCONST(GL_MAP2_COLOR_4);
1615 EXPP_ADDCONST(GL_MAP2_INDEX);
1616 EXPP_ADDCONST(GL_MAP2_NORMAL);
1617 EXPP_ADDCONST(GL_MAP2_TEXTURE_COORD_1);
1618 EXPP_ADDCONST(GL_MAP2_TEXTURE_COORD_2);
1619 EXPP_ADDCONST(GL_MAP2_TEXTURE_COORD_3);
1620 EXPP_ADDCONST(GL_MAP2_TEXTURE_COORD_4);
1621 EXPP_ADDCONST(GL_MAP2_VERTEX_3);
1622 EXPP_ADDCONST(GL_MAP2_VERTEX_4);
1623 EXPP_ADDCONST(GL_MAP1_GRID_DOMAIN);
1624 EXPP_ADDCONST(GL_MAP1_GRID_SEGMENTS);
1625 EXPP_ADDCONST(GL_MAP2_GRID_DOMAIN);
1626 EXPP_ADDCONST(GL_MAP2_GRID_SEGMENTS);
1627 EXPP_ADDCONST(GL_TEXTURE_1D);
1628 EXPP_ADDCONST(GL_TEXTURE_2D);
1630 EXPP_ADDCONST(GL_TEXTURE_WIDTH);
1631 EXPP_ADDCONST(GL_TEXTURE_HEIGHT);
1632 EXPP_ADDCONST(GL_TEXTURE_COMPONENTS);
1633 EXPP_ADDCONST(GL_TEXTURE_BORDER_COLOR);
1634 EXPP_ADDCONST(GL_TEXTURE_BORDER);
1636 EXPP_ADDCONST(GL_DONT_CARE);
1637 EXPP_ADDCONST(GL_FASTEST);
1638 EXPP_ADDCONST(GL_NICEST);
1640 EXPP_ADDCONST(GL_AMBIENT);
1641 EXPP_ADDCONST(GL_DIFFUSE);
1642 EXPP_ADDCONST(GL_SPECULAR);
1643 EXPP_ADDCONST(GL_POSITION);
1644 EXPP_ADDCONST(GL_SPOT_DIRECTION);
1645 EXPP_ADDCONST(GL_SPOT_EXPONENT);
1646 EXPP_ADDCONST(GL_SPOT_CUTOFF);
1647 EXPP_ADDCONST(GL_CONSTANT_ATTENUATION);
1648 EXPP_ADDCONST(GL_LINEAR_ATTENUATION);
1649 EXPP_ADDCONST(GL_QUADRATIC_ATTENUATION);
1651 EXPP_ADDCONST(GL_COMPILE);
1652 EXPP_ADDCONST(GL_COMPILE_AND_EXECUTE);
1654 EXPP_ADDCONST(GL_BYTE);
1655 EXPP_ADDCONST(GL_UNSIGNED_BYTE);
1656 EXPP_ADDCONST(GL_SHORT);
1657 EXPP_ADDCONST(GL_UNSIGNED_SHORT);
1658 EXPP_ADDCONST(GL_INT);
1659 EXPP_ADDCONST(GL_UNSIGNED_INT);
1660 EXPP_ADDCONST(GL_FLOAT);
1661 EXPP_ADDCONST(GL_DOUBLE);
1662 EXPP_ADDCONST(GL_2_BYTES);
1663 EXPP_ADDCONST(GL_3_BYTES);
1664 EXPP_ADDCONST(GL_4_BYTES);
1666 EXPP_ADDCONST(GL_CLEAR);
1667 EXPP_ADDCONST(GL_AND);
1668 EXPP_ADDCONST(GL_AND_REVERSE);
1669 EXPP_ADDCONST(GL_COPY);
1670 EXPP_ADDCONST(GL_AND_INVERTED);
1671 EXPP_ADDCONST(GL_NOOP);
1672 EXPP_ADDCONST(GL_XOR);
1673 EXPP_ADDCONST(GL_OR);
1674 EXPP_ADDCONST(GL_NOR);
1675 EXPP_ADDCONST(GL_EQUIV);
1676 EXPP_ADDCONST(GL_INVERT);
1677 EXPP_ADDCONST(GL_OR_REVERSE);
1678 EXPP_ADDCONST(GL_COPY_INVERTED);
1679 EXPP_ADDCONST(GL_OR_INVERTED);
1680 EXPP_ADDCONST(GL_NAND);
1681 EXPP_ADDCONST(GL_SET);
1683 EXPP_ADDCONST(GL_EMISSION);
1684 EXPP_ADDCONST(GL_SHININESS);
1685 EXPP_ADDCONST(GL_AMBIENT_AND_DIFFUSE);
1686 EXPP_ADDCONST(GL_COLOR_INDEXES);
1688 EXPP_ADDCONST(GL_MODELVIEW);
1689 EXPP_ADDCONST(GL_PROJECTION);
1690 EXPP_ADDCONST(GL_TEXTURE);
1692 EXPP_ADDCONST(GL_COLOR);
1693 EXPP_ADDCONST(GL_DEPTH);
1694 EXPP_ADDCONST(GL_STENCIL);
1696 EXPP_ADDCONST(GL_COLOR_INDEX);
1697 EXPP_ADDCONST(GL_STENCIL_INDEX);
1698 EXPP_ADDCONST(GL_DEPTH_COMPONENT);
1699 EXPP_ADDCONST(GL_RED);
1700 EXPP_ADDCONST(GL_GREEN);
1701 EXPP_ADDCONST(GL_BLUE);
1702 EXPP_ADDCONST(GL_ALPHA);
1703 EXPP_ADDCONST(GL_RGB);
1704 EXPP_ADDCONST(GL_RGBA);
1705 EXPP_ADDCONST(GL_LUMINANCE);
1706 EXPP_ADDCONST(GL_LUMINANCE_ALPHA);
1708 EXPP_ADDCONST(GL_BITMAP);
1710 EXPP_ADDCONST(GL_POINT);
1711 EXPP_ADDCONST(GL_LINE);
1712 EXPP_ADDCONST(GL_FILL);
1714 EXPP_ADDCONST(GL_RENDER);
1715 EXPP_ADDCONST(GL_FEEDBACK);
1716 EXPP_ADDCONST(GL_SELECT);
1718 EXPP_ADDCONST(GL_FLAT);
1719 EXPP_ADDCONST(GL_SMOOTH);
1721 EXPP_ADDCONST(GL_KEEP);
1722 EXPP_ADDCONST(GL_REPLACE);
1723 EXPP_ADDCONST(GL_INCR);
1724 EXPP_ADDCONST(GL_DECR);
1726 EXPP_ADDCONST(GL_VENDOR);
1727 EXPP_ADDCONST(GL_RENDERER);
1728 EXPP_ADDCONST(GL_VERSION);
1729 EXPP_ADDCONST(GL_EXTENSIONS);
1731 EXPP_ADDCONST(GL_S);
1732 EXPP_ADDCONST(GL_T);
1733 EXPP_ADDCONST(GL_R);
1734 EXPP_ADDCONST(GL_Q);
1736 EXPP_ADDCONST(GL_MODULATE);
1737 EXPP_ADDCONST(GL_DECAL);
1739 EXPP_ADDCONST(GL_TEXTURE_ENV_MODE);
1740 EXPP_ADDCONST(GL_TEXTURE_ENV_COLOR);
1742 EXPP_ADDCONST(GL_TEXTURE_ENV);
1744 EXPP_ADDCONST(GL_EYE_LINEAR);
1745 EXPP_ADDCONST(GL_OBJECT_LINEAR);
1746 EXPP_ADDCONST(GL_SPHERE_MAP);
1748 EXPP_ADDCONST(GL_TEXTURE_GEN_MODE);
1749 EXPP_ADDCONST(GL_OBJECT_PLANE);
1750 EXPP_ADDCONST(GL_EYE_PLANE);
1752 EXPP_ADDCONST(GL_NEAREST);
1753 EXPP_ADDCONST(GL_LINEAR);
1755 EXPP_ADDCONST(GL_NEAREST_MIPMAP_NEAREST);
1756 EXPP_ADDCONST(GL_LINEAR_MIPMAP_NEAREST);
1757 EXPP_ADDCONST(GL_NEAREST_MIPMAP_LINEAR);
1758 EXPP_ADDCONST(GL_LINEAR_MIPMAP_LINEAR);
1760 EXPP_ADDCONST(GL_TEXTURE_MAG_FILTER);
1761 EXPP_ADDCONST(GL_TEXTURE_MIN_FILTER);
1762 EXPP_ADDCONST(GL_TEXTURE_WRAP_S);
1763 EXPP_ADDCONST(GL_TEXTURE_WRAP_T);
1765 EXPP_ADDCONST(GL_CLAMP);
1766 EXPP_ADDCONST(GL_REPEAT);
1768 EXPP_ADDCONST(GL_CLIP_PLANE0);
1769 EXPP_ADDCONST(GL_CLIP_PLANE1);
1770 EXPP_ADDCONST(GL_CLIP_PLANE2);
1771 EXPP_ADDCONST(GL_CLIP_PLANE3);
1772 EXPP_ADDCONST(GL_CLIP_PLANE4);
1773 EXPP_ADDCONST(GL_CLIP_PLANE5);
1775 EXPP_ADDCONST(GL_LIGHT0);
1776 EXPP_ADDCONST(GL_LIGHT1);
1777 EXPP_ADDCONST(GL_LIGHT2);
1778 EXPP_ADDCONST(GL_LIGHT3);
1779 EXPP_ADDCONST(GL_LIGHT4);
1780 EXPP_ADDCONST(GL_LIGHT5);
1781 EXPP_ADDCONST(GL_LIGHT6);
1782 EXPP_ADDCONST(GL_LIGHT7);
1784 EXPP_ADDCONST(GL_POLYGON_OFFSET_UNITS);
1785 EXPP_ADDCONST(GL_POLYGON_OFFSET_POINT);
1786 EXPP_ADDCONST(GL_POLYGON_OFFSET_LINE);
1787 EXPP_ADDCONST(GL_POLYGON_OFFSET_FILL);
1788 EXPP_ADDCONST(GL_POLYGON_OFFSET_FACTOR);
1790 EXPP_ADDCONST(GL_TEXTURE_PRIORITY);
1791 EXPP_ADDCONST(GL_TEXTURE_RESIDENT);
1792 EXPP_ADDCONST(GL_TEXTURE_BINDING_1D);
1793 EXPP_ADDCONST(GL_TEXTURE_BINDING_2D);