diff options
Diffstat (limited to 'source/blender/bpython/intern/opy_draw.c')
-rw-r--r-- | source/blender/bpython/intern/opy_draw.c | 2683 |
1 files changed, 0 insertions, 2683 deletions
diff --git a/source/blender/bpython/intern/opy_draw.c b/source/blender/bpython/intern/opy_draw.c deleted file mode 100644 index d9653409724..00000000000 --- a/source/blender/bpython/intern/opy_draw.c +++ /dev/null @@ -1,2683 +0,0 @@ -/* python.c MIXED MODEL - * - * june 99 - * $Id$ - * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#ifdef WIN32 -#include "BLI_winstuff.h" -#endif - -#include "MEM_guardedalloc.h" - -#include "BMF_Api.h" - -#include "DNA_screen_types.h" -#include "DNA_space_types.h" -#include "DNA_text_types.h" - -#include "BKE_global.h" - -#include "BIF_gl.h" -#include "BIF_screen.h" -#include "BIF_space.h" -#include "BIF_interface.h" -#include "BIF_mywindow.h" - -#include "interface.h" -#include "mydevice.h" /* for all the event constants */ - -#include "Python.h" -#include "BPY_macros.h" -#include "BPY_main.h" -#include "BPY_tools.h" - -int disable_force_draw= 0; - -/* hack to flag that window redraw has happened inside slider callback: */ - -static void exit_pydraw (SpaceText *st); -static uiBlock *Get_uiBlock (void); -void initDraw (void); - -/* Button Object */ - -typedef struct _Button { - PyObject_VAR_HEAD - - int type; /* 1 == int, 2 == float, 3 == string */ - int slen; /* length of string (if type == 3) */ - union { - int asint; - float asfloat; - char *asstr; - } val; -} Button; - - -static void Button_dealloc(PyObject *self) { - Button *but= (Button*) self; - - if(but->type==3) MEM_freeN(but->val.asstr); - - PyMem_DEL(self); -} - -static PyObject *Button_getattr(PyObject *self, char *name) { - Button *but= (Button*) self; - - if(STREQ(name, "val")) { - if (but->type==1) - return Py_BuildValue("i", but->val.asint); - else if (but->type==2) - return Py_BuildValue("f", but->val.asfloat); - else if (but->type==3) - return Py_BuildValue("s", but->val.asstr); - } - PyErr_SetString(PyExc_AttributeError, name); - return NULL; -} - -static int Button_setattr(PyObject *self, char *name, PyObject *v) { - Button *but= (Button*) self; - - if(STREQ(name, "val")) { - if (but->type==1) - PyArg_Parse(v, "i", &but->val.asint); - else if (but->type==2) - PyArg_Parse(v, "f", &but->val.asfloat); - else if (but->type==3) { - char *newstr; - - PyArg_Parse(v, "s", &newstr); - strncpy(but->val.asstr, newstr, but->slen); - } - } else { - PyErr_SetString(PyExc_AttributeError, name); - return -1; - } - - return 0; -} - -static PyObject *Button_repr(PyObject *self) { - return PyObject_Repr(Button_getattr(self, "val")); -} - -PyTypeObject Button_Type = { - PyObject_HEAD_INIT(NULL) - 0, /*ob_size*/ - "Button", /*tp_name*/ - sizeof(Button), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - (destructor) Button_dealloc, /*tp_dealloc*/ - (printfunc) 0, /*tp_print*/ - (getattrfunc) Button_getattr, /*tp_getattr*/ - (setattrfunc) Button_setattr, /*tp_setattr*/ - (cmpfunc) 0, /*tp_cmp*/ - (reprfunc) Button_repr, /*tp_repr*/ -}; - - -static Button *newbutton (void) { - Button *but= (Button *) PyObject_NEW(Button, &Button_Type); - - return but; -} - - -/* GUI interface routines */ - -static void exit_pydraw(SpaceText *st) -{ - scrarea_queue_redraw(st->area); - - if (st) { - Py_XDECREF((PyObject *) st->py_draw); - Py_XDECREF((PyObject *) st->py_event); - Py_XDECREF((PyObject *) st->py_button); - - st->py_draw= st->py_event= st->py_button= NULL; - } -} - -static void exec_callback(SpaceText *st, PyObject *callback, PyObject *args) -{ - PyObject *result= PyEval_CallObject(callback, args); - - if (result==NULL) { - st->text->compiled= NULL; - PyErr_Print(); - exit_pydraw(st); - } - Py_XDECREF(result); - Py_DECREF(args); -} - -/* the handler for drawing routines (see Register method) */ - -void BPY_spacetext_do_pywin_draw(SpaceText *st) -{ - uiBlock *block; - char butblock[20]; - - sprintf(butblock, "win %d", curarea->win); - block= uiNewBlock(&curarea->uiblocks, butblock, UI_EMBOSSX, UI_HELV, curarea->win); - - if (st->py_draw) { - glPushAttrib(GL_ALL_ATTRIB_BITS); - exec_callback(st, st->py_draw, Py_BuildValue("()")); - glPopAttrib(); - } else { - glClearColor(0.4375, 0.4375, 0.4375, 0.0); - glClear(GL_COLOR_BUFFER_BIT); - } - - uiDrawBlock(block); - - curarea->win_swap= WIN_BACK_OK; -} - -/* the handler for button event routines (see Register method) */ - -static void spacetext_do_pywin_buttons(SpaceText *st, unsigned short event) { - if (st->py_button) { - exec_callback(st, st->py_button, Py_BuildValue("(i)", event)); - } -} - -/* calls the generic event handling methods registered with Register */ - -void BPY_spacetext_do_pywin_event(SpaceText *st, unsigned short event, short val) { - if (event==QKEY && G.qual & (LR_ALTKEY|LR_CTRLKEY|LR_SHIFTKEY)) { - exit_pydraw(st); - return; - } - - if (val) { - if (uiDoBlocks(&curarea->uiblocks, event)!=UI_NOTHING ) event= 0; - - if (event==UI_BUT_EVENT) { - spacetext_do_pywin_buttons(st, val); - } - } - - if (st->py_event) { - exec_callback(st, st->py_event, Py_BuildValue("(ii)", event, val)); - } -} - -int BPY_spacetext_is_pywin(SpaceText *st) { - return (st->py_draw || st->py_event || st->py_button); -} - -static char Method_Exit_doc[]= -"() - Exit the windowing interface"; -static PyObject *Method_Exit (PyObject *self, PyObject *args) -{ - SpaceText *st= curarea->spacedata.first; -#ifdef CLEAR_NAMESPACE - PyObject *d; -#endif - BPY_TRY(PyArg_ParseTuple(args, "")); - - exit_pydraw(st); -#ifdef CLEAR_NAMESPACE - d = st->py_globaldict; // The current window's global namespace dictionary - if (d) { - PyDict_Clear(d); - Py_DECREF(d); // release dictionary - } -#endif - - return BPY_incr_ret(Py_None); -} - -static char Method_Register_doc[]= -"(draw, event, button) - Register callbacks for windowing\n\ -\n\ -(draw) A function to draw the screen, taking no arguments\n\ -(event) A function to handle events, taking 2 arguments (evt, val)\n\ - (evt) The event number\n\ - (val) The value modifier (for key and mouse press/release)\n\ -(button) A function to handle button events, taking 1 argument (evt)\n\ - (evt) The button number\n\ -\n\ -A None object can be passed if a callback is unused."; - -static PyObject *Method_Register (PyObject *self, PyObject *args) -{ - PyObject *newdrawc= NULL, *neweventc= NULL, *newbuttonc= NULL; - SpaceText *st= curarea->spacedata.first; - - BPY_TRY(PyArg_ParseTuple(args, "O|OO", &newdrawc, &neweventc, &newbuttonc)); - - /* This is a hack again: - * Every python script should actually do a global variable cleanup at - * the end of execution. - * For scripts registering GUI callbacks, this does not work, because - * the global namespace of the interpreter still needs to be accessed - * from the callback. - * Workaround: a text object has a flag which allows the global name - * space to be cleared at the end of the script. This flag should be - * normally set when executed with Alt-P. For a script registering with - * the GUI though, clear the flag and set it when the GUI mode is left - * (Method_Exit). - */ - - BPY_debug(("--- disable clear namespace")); - - st->flags &= ~ST_CLEAR_NAMESPACE; - - - if (!PyCallable_Check(newdrawc)) newdrawc= NULL; - if (!PyCallable_Check(neweventc)) neweventc= NULL; - if (!PyCallable_Check(newbuttonc)) newbuttonc= NULL; - - if (!(newdrawc || neweventc || newbuttonc)) - return BPY_incr_ret(Py_None); - - exit_pydraw(st); - - Py_XINCREF(newdrawc); - Py_XINCREF(neweventc); - Py_XINCREF(newbuttonc); - - st->py_draw= newdrawc; - st->py_event= neweventc; - st->py_button= newbuttonc; - - scrarea_queue_redraw(st->area); - - return BPY_incr_ret(Py_None); -} - - -static char Method_Redraw_doc[]= -"([after]) - Queue a redraw event\n\ -\n\ -[after=0] Determines whether the redraw is processed before or after other input events.\n\ -\n\ -Redraw events are buffered so that regardless of how many events are queued\n\ -the window only receives one redraw event."; - -static PyObject *Method_Redraw (PyObject *self, PyObject *args) -{ - int after= 0; - - BPY_TRY(PyArg_ParseTuple(args, "|i", &after)); - - if (after) addafterqueue(curarea->win, REDRAW, 1); - else scrarea_queue_winredraw(curarea); - - return BPY_incr_ret(Py_None); -} - - -static char Method_Draw_doc[]= -"() - Force an immediate redraw\n\ -\n\ -Forced redraws are not buffered, in other words the window is redrawn\n\ -exactly once for everytime this function is called."; -static PyObject *Method_Draw (PyObject *self, PyObject *args) -{ - /* If forced drawing is disable queue a redraw event instead */ - if (disable_force_draw) { - scrarea_queue_winredraw(curarea); - return BPY_incr_ret(Py_None); - } - - BPY_TRY(PyArg_ParseTuple(args, "")); - - scrarea_do_windraw(curarea); - - screen_swapbuffers(); - - return BPY_incr_ret(Py_None); -} - - - -static char Method_Create_doc[]= -"(value) - Create a default Button object\n\ -\n\ -(value) - The value to store in the button\n\ -\n\ -Valid values are ints, floats, and strings"; - -static PyObject *Method_Create (PyObject *self, PyObject *args) -{ - Button *but; - PyObject *in; - - BPY_TRY(PyArg_ParseTuple(args, "O", &in)); - - but= newbutton(); - if(PyFloat_Check(in)) { - but->type= 2; - but->val.asfloat= PyFloat_AsDouble(in); - } else if (PyInt_Check(in)) { - but->type= 1; - but->val.asint= PyInt_AsLong(in); - } else if (PyString_Check(in)) { - char *newstr= PyString_AsString(in); - - but->type= 3; - but->slen= strlen(newstr); - but->val.asstr= MEM_mallocN(but->slen+1, "button string"); - - strcpy(but->val.asstr, newstr); - } - - return (PyObject *) but; -} - -static uiBlock *Get_uiBlock(void) -{ - char butblock[32]; - - sprintf(butblock, "win %d", curarea->win); - - return uiGetBlock(butblock, curarea); -} - -static char Method_Button_doc[]= -"(name, event, x, y, width, height, [tooltip]) - Create a new Button (push) button\n\ -\n\ -(name) A string to display on the button\n\ -(event) The event number to pass to the button event function when activated\n\ -(x, y) The lower left coordinate of the button\n\ -(width, height) The button width and height\n\ -[tooltip=""] The button's tooltip"; - -static PyObject *Method_Button (PyObject *self, PyObject *args) -{ - uiBlock *block; - char *name, *tip= NULL; - int event; - int x, y, w, h; - - BPY_TRY(PyArg_ParseTuple(args, "siiiii|s", &name, &event, &x, &y, &w, &h, &tip)); - - block= Get_uiBlock(); - - if(block) uiDefBut(block, BUT, event, name, x, y, w, h, 0, 0, 0, 0, 0, tip); - - return BPY_incr_ret(Py_None); -} - -static char Method_Menu_doc[]= -"(name, event, x, y, width, height, default, [tooltip]) - Create a new Menu button\n\ -\n\ -(name) A string to display on the button\n\ -(event) The event number to pass to the button event function when activated\n\ -(x, y) The lower left coordinate of the button\n\ -(width, height) The button width and height\n\ -(default) The number of the option to be selected by default\n\ -[tooltip=""] The button's tooltip\n\ -\n\ -The menu options are specified through the name of the\n\ -button. Options are followed by a format code and seperated\n\ -by the '|' (pipe) character.\n\ -Valid format codes are\n\ - %t - The option should be used as the title\n\ - %xN - The option should set the integer N in the button value."; - -static PyObject *Method_Menu (PyObject *self, PyObject *args) -{ - uiBlock *block; - char *name, *tip= NULL; - int event, def; - int x, y, w, h; - Button *but; - - BPY_TRY(PyArg_ParseTuple(args, "siiiiii|s", &name, &event, &x, &y, &w, &h, &def, &tip)); - - but= newbutton(); - but->type= 1; - but->val.asint= def; - - block= Get_uiBlock(); - if(block) uiDefButI(block, MENU, event, name, x, y, w, h, &but->val.asint, 0, 0, 0, 0, tip); - - return (PyObject *) but; -} - -static char Method_Toggle_doc[]= -"(name, event, x, y, width, height, default, [tooltip]) - Create a new Toggle button\n\ -\n\ -(name) A string to display on the button\n\ -(event) The event number to pass to the button event function when activated\n\ -(x, y) The lower left coordinate of the button\n\ -(width, height) The button width and height\n\ -(default) An integer (0 or 1) specifying the default state\n\ -[tooltip=""] The button's tooltip"; - -static PyObject *Method_Toggle (PyObject *self, PyObject *args) -{ - uiBlock *block; - char *name, *tip= NULL; - int event; - int x, y, w, h, def; - Button *but; - - BPY_TRY(PyArg_ParseTuple(args, "siiiiii|s", &name, &event, &x, &y, &w, &h, &def, &tip)); - - but= newbutton(); - but->type= 1; - but->val.asint= def; - - block= Get_uiBlock(); - if(block) uiDefButI(block, TOG, event, name, x, y, w, h, &but->val.asint, 0, 0, 0, 0, tip); - - return (PyObject *) but; -} - - -/* DO NOT TOUCH THIS FUNCTION ! - Redrawing a slider inside its own callback routine is actually forbidden - with the current toolkit architecture (button routines are not reentrant). - But it works anyway. - XXX This is condemned to be dinosource in future - it's a hack. - */ - -static void py_slider_update(void *butv, void *data2_unused) -{ - uiBut *but= butv; - - disable_force_draw= 1; - /* - Disable forced drawing, otherwise the button object which - is still being used might be deleted - */ - -// UIfrontbuf = 0; -// spacetext_do_pywin_buttons(curarea->spacedata.first, but->retval); - - g_window_redrawn = 0; - curarea->win_swap= WIN_BACK_OK; - //UIfrontbuf = 1; - spacetext_do_pywin_buttons(curarea->spacedata.first, uiButGetRetVal(but)); - //UIfrontbuf = 0; - - if (!g_window_redrawn) /* if Redraw already called */ - Windowmodule_Redraw(0, Py_BuildValue("(i)", SPACE_VIEW3D)); - - disable_force_draw= 0; -} - -static char Method_Slider_doc[]= -"(name, event, x, y, width, height, initial, min, max, [update, tooltip]) - Create a new Slider button\n\ -\n\ -(name) A string to display on the button\n\ -(event) The event number to pass to the button event function when activated\n\ -(x, y) The lower left coordinate of the button\n\ -(width, height) The button width and height\n\ -(initial, min, max) Three values (int or float) specifying the initial and limit values.\n\ -[update=1] A value controlling whether the slider will emit events as it is edited.\n\ - A non-zero value (default) enables the events. A zero value supresses them.\n\ -[tooltip=""] The button's tooltip"; - -static PyObject *Method_Slider (PyObject *self, PyObject *args) -{ - uiBlock *block; - char *name, *tip= NULL; - int event; - int x, y, w, h, realtime=1; - Button *but; - PyObject *mino, *maxo, *inio; - - BPY_TRY(PyArg_ParseTuple(args, "siiiiiOOO|is", &name, &event, &x, &y, &w, &h, &inio, &mino, &maxo, &realtime, &tip)); - - - but= newbutton(); - if (PyFloat_Check(inio)) { - float ini, min, max; - - ini= PyFloat_AsDouble(inio); - min= PyFloat_AsDouble(mino); - max= PyFloat_AsDouble(maxo); - - but->type= 2; - but->val.asfloat= ini; - - block= Get_uiBlock(); - if(block) { - uiBut *ubut; - ubut= uiDefButF(block, NUMSLI, event, name, x, y, w, h, &but->val.asfloat, min, max, 0, 0, tip); - if (realtime) uiButSetFunc(ubut, py_slider_update, ubut, NULL); - } - } - else { - int ini, min, max; - - ini= PyInt_AsLong(inio); - min= PyInt_AsLong(mino); - max= PyInt_AsLong(maxo); - - but->type= 1; - but->val.asint= ini; - - block= Get_uiBlock(); - if(block) { - uiBut *ubut; - ubut= uiDefButI(block, NUMSLI, event, name, x, y, w, h, &but->val.asint, min, max, 0, 0, tip); - if (realtime) uiButSetFunc(ubut, py_slider_update, ubut, NULL); - } - } - return (PyObject *) but; -} - -static char Method_Scrollbar_doc[]= -"(event, x, y, width, height, initial, min, max, [update, tooltip]) - Create a new Scrollbar\n\ -\n\ -(event) The event number to pass to the button event function when activated\n\ -(x, y) The lower left coordinate of the button\n\ -(width, height) The button width and height\n\ -(initial, min, max) Three values (int or float) specifying the initial and limit values.\n\ -[update=1] A value controlling whether the slider will emit events as it is edited.\n\ - A non-zero value (default) enables the events. A zero value supresses them.\n\ -[tooltip=""] The button's tooltip"; - -static PyObject *Method_Scrollbar (PyObject *self, PyObject *args) -{ - char *tip= NULL; - uiBlock *block; - int event; - int x, y, w, h, realtime=1; - Button *but; - PyObject *mino, *maxo, *inio; - float ini, min, max; - - BPY_TRY(PyArg_ParseTuple(args, "iiiiiOOO|is", &event, &x, &y, &w, &h, &inio, &mino, &maxo, &realtime, &tip)); - - if (!PyNumber_Check(inio) || !PyNumber_Check(inio) || !PyNumber_Check(inio)) - return BPY_err_ret_ob(PyExc_AttributeError, "expected numbers for initial, min, and max"); - - but= newbutton(); - - if (PyFloat_Check(inio)) but->type= 2; - else but->type= 1; - - ini= PyFloat_AsDouble(inio); - min= PyFloat_AsDouble(mino); - max= PyFloat_AsDouble(maxo); - - if (but->type==2) { - but->val.asfloat= ini; - block= Get_uiBlock(); - if(block) { - uiBut *ubut; - ubut= uiDefButF(block, SCROLL, event, "", x, y, w, h, &but->val.asfloat, min, max, 0, 0, tip); - if (realtime) uiButSetFunc(ubut, py_slider_update, ubut, NULL); - } - } else { - but->val.asint= ini; - block= Get_uiBlock(); - if(block) { - uiBut *ubut; - ubut= uiDefButI(block, SCROLL, event, "", x, y, w, h, &but->val.asint, min, max, 0, 0, tip); - if (realtime) uiButSetFunc(ubut, py_slider_update, ubut, NULL); - } - } - - return (PyObject *) but; -} - -static char Method_Number_doc[]= -"(name, event, x, y, width, height, initial, min, max, [tooltip]) - Create a new Number button\n\ -\n\ -(name) A string to display on the button\n\ -(event) The event number to pass to the button event function when activated\n\ -(x, y) The lower left coordinate of the button\n\ -(width, height) The button width and height\n\ -(initial, min, max) Three values (int or float) specifying the initial and limit values.\n\ -[tooltip=""] The button's tooltip"; - -static PyObject *Method_Number (PyObject *self, PyObject *args) -{ - uiBlock *block; - char *name, *tip= NULL; - int event; - int x, y, w, h; - Button *but; - PyObject *mino, *maxo, *inio; - - BPY_TRY(PyArg_ParseTuple(args, "siiiiiOOO|s", &name, &event, &x, &y, &w, &h, &inio, &mino, &maxo, &tip)); - - but= newbutton(); - - if (PyFloat_Check(inio)) { - float ini, min, max; - - ini= PyFloat_AsDouble(inio); - min= PyFloat_AsDouble(mino); - max= PyFloat_AsDouble(maxo); - - but->type= 2; - but->val.asfloat= ini; - - block= Get_uiBlock(); - if(block) uiDefButF(block, NUM, event, name, x, y, w, h, &but->val.asfloat, min, max, 0, 0, tip); - } else { - int ini, min, max; - - ini= PyInt_AsLong(inio); - min= PyInt_AsLong(mino); - max= PyInt_AsLong(maxo); - - but->type= 1; - but->val.asint= ini; - - block= Get_uiBlock(); - if(block) uiDefButI(block, NUM, event, name, x, y, w, h, &but->val.asint, min, max, 0, 0, tip); - } - - return (PyObject *) but; -} - -static char Method_String_doc[]= -"(name, event, x, y, width, height, initial, length, [tooltip]) - Create a new String button\n\ -\n\ -(name) A string to display on the button\n\ -(event) The event number to pass to the button event function when activated\n\ -(x, y) The lower left coordinate of the button\n\ -(width, height) The button width and height\n\ -(initial) The string to display initially\n\ -(length) The maximum input length\n\ -[tooltip=""] The button's tooltip"; - -static PyObject *Method_String (PyObject *self, PyObject *args) -{ - uiBlock *block; - char *name, *tip= NULL, *newstr; - int event; - int x, y, w, h, len; - Button *but; - - BPY_TRY(PyArg_ParseTuple(args, "siiiiisi|s", &name, &event, &x, &y, &w, &h, &newstr, &len, &tip)); - - but= newbutton(); - but->type= 3; - but->slen= len; - but->val.asstr= MEM_mallocN(len+1, "button string"); - - strncpy(but->val.asstr, newstr, len); - but->val.asstr[len]= 0; - - block= Get_uiBlock(); - if(block) uiDefBut(block, TEX, event, name, x, y, w, h, but->val.asstr, 0, len, 0, 0, tip); - - return (PyObject *) but; -} - -static char Method_Text_doc[]= -"(text) - Draw text onscreen\n\ -\n\ -(text) The text to draw\n"; -static PyObject *Method_Text (PyObject *self, PyObject *args) -{ - char *text; - - BPY_TRY(PyArg_ParseTuple(args, "s", &text)); - - BMF_DrawString(G.font, text); - - return BPY_incr_ret(Py_None); -} - -#undef MethodDef -#define MethodDef(func) _MethodDef(func, Method) - -static struct PyMethodDef Draw_methods[] = { - MethodDef(Create), - MethodDef(Button), - MethodDef(Toggle), - MethodDef(Menu), - MethodDef(Slider), - MethodDef(Scrollbar), - MethodDef(Number), - MethodDef(String), - - MethodDef(Text), - - MethodDef(Exit), - MethodDef(Redraw), - MethodDef(Draw), - MethodDef(Register), - - {NULL, NULL} -}; - -PyObject *init_py_draw(void) -{ - PyObject *mod= Py_InitModule(SUBMODULE(Draw), Draw_methods); - PyObject *dict= PyModule_GetDict(mod); - - Button_Type.ob_type= &PyType_Type; - - BPY_ADDCONST(dict, LEFTMOUSE); - BPY_ADDCONST(dict, MIDDLEMOUSE); - BPY_ADDCONST(dict, RIGHTMOUSE); - BPY_ADDCONST(dict, MOUSEX); - BPY_ADDCONST(dict, MOUSEY); - BPY_ADDCONST(dict, TIMER0); - BPY_ADDCONST(dict, TIMER1); - BPY_ADDCONST(dict, TIMER2); - BPY_ADDCONST(dict, TIMER3); - BPY_ADDCONST(dict, KEYBD); - BPY_ADDCONST(dict, RAWKEYBD); - BPY_ADDCONST(dict, REDRAW); - BPY_ADDCONST(dict, INPUTCHANGE); - BPY_ADDCONST(dict, QFULL); - BPY_ADDCONST(dict, WINFREEZE); - BPY_ADDCONST(dict, WINTHAW); - BPY_ADDCONST(dict, WINCLOSE); - BPY_ADDCONST(dict, WINQUIT); -#ifndef IRISGL - BPY_ADDCONST(dict, Q_FIRSTTIME); -#endif - BPY_ADDCONST(dict, AKEY); - BPY_ADDCONST(dict, BKEY); - BPY_ADDCONST(dict, CKEY); - BPY_ADDCONST(dict, DKEY); - BPY_ADDCONST(dict, EKEY); - BPY_ADDCONST(dict, FKEY); - BPY_ADDCONST(dict, GKEY); - BPY_ADDCONST(dict, HKEY); - BPY_ADDCONST(dict, IKEY); - BPY_ADDCONST(dict, JKEY); - BPY_ADDCONST(dict, KKEY); - BPY_ADDCONST(dict, LKEY); - BPY_ADDCONST(dict, MKEY); - BPY_ADDCONST(dict, NKEY); - BPY_ADDCONST(dict, OKEY); - BPY_ADDCONST(dict, PKEY); - BPY_ADDCONST(dict, QKEY); - BPY_ADDCONST(dict, RKEY); - BPY_ADDCONST(dict, SKEY); - BPY_ADDCONST(dict, TKEY); - BPY_ADDCONST(dict, UKEY); - BPY_ADDCONST(dict, VKEY); - BPY_ADDCONST(dict, WKEY); - BPY_ADDCONST(dict, XKEY); - BPY_ADDCONST(dict, YKEY); - BPY_ADDCONST(dict, ZKEY); - BPY_ADDCONST(dict, ZEROKEY); - BPY_ADDCONST(dict, ONEKEY); - BPY_ADDCONST(dict, TWOKEY); - BPY_ADDCONST(dict, THREEKEY); - BPY_ADDCONST(dict, FOURKEY); - BPY_ADDCONST(dict, FIVEKEY); - BPY_ADDCONST(dict, SIXKEY); - BPY_ADDCONST(dict, SEVENKEY); - BPY_ADDCONST(dict, EIGHTKEY); - BPY_ADDCONST(dict, NINEKEY); - BPY_ADDCONST(dict, CAPSLOCKKEY); - BPY_ADDCONST(dict, LEFTCTRLKEY); - BPY_ADDCONST(dict, LEFTALTKEY); - BPY_ADDCONST(dict, RIGHTALTKEY); - BPY_ADDCONST(dict, RIGHTCTRLKEY); - BPY_ADDCONST(dict, RIGHTSHIFTKEY); - BPY_ADDCONST(dict, LEFTSHIFTKEY); - BPY_ADDCONST(dict, ESCKEY); - BPY_ADDCONST(dict, TABKEY); - BPY_ADDCONST(dict, RETKEY); - BPY_ADDCONST(dict, SPACEKEY); - BPY_ADDCONST(dict, LINEFEEDKEY); - BPY_ADDCONST(dict, BACKSPACEKEY); - BPY_ADDCONST(dict, DELKEY); - BPY_ADDCONST(dict, SEMICOLONKEY); - BPY_ADDCONST(dict, PERIODKEY); - BPY_ADDCONST(dict, COMMAKEY); - BPY_ADDCONST(dict, QUOTEKEY); - BPY_ADDCONST(dict, ACCENTGRAVEKEY); - BPY_ADDCONST(dict, MINUSKEY); - BPY_ADDCONST(dict, SLASHKEY); - BPY_ADDCONST(dict, BACKSLASHKEY); - BPY_ADDCONST(dict, EQUALKEY); - BPY_ADDCONST(dict, LEFTBRACKETKEY); - BPY_ADDCONST(dict, RIGHTBRACKETKEY); - BPY_ADDCONST(dict, LEFTARROWKEY); - BPY_ADDCONST(dict, DOWNARROWKEY); - BPY_ADDCONST(dict, RIGHTARROWKEY); - BPY_ADDCONST(dict, UPARROWKEY); - BPY_ADDCONST(dict, PAD2); - BPY_ADDCONST(dict, PAD4); - BPY_ADDCONST(dict, PAD6); - BPY_ADDCONST(dict, PAD8); - BPY_ADDCONST(dict, PAD1); - BPY_ADDCONST(dict, PAD3); - BPY_ADDCONST(dict, PAD5); - BPY_ADDCONST(dict, PAD7); - BPY_ADDCONST(dict, PAD9); - BPY_ADDCONST(dict, PADPERIOD); - BPY_ADDCONST(dict, PADSLASHKEY); - BPY_ADDCONST(dict, PADASTERKEY); - BPY_ADDCONST(dict, PAD0); - BPY_ADDCONST(dict, PADMINUS); - BPY_ADDCONST(dict, PADENTER); - BPY_ADDCONST(dict, PADPLUSKEY); - BPY_ADDCONST(dict, F1KEY); - BPY_ADDCONST(dict, F2KEY); - BPY_ADDCONST(dict, F3KEY); - BPY_ADDCONST(dict, F4KEY); - BPY_ADDCONST(dict, F5KEY); - BPY_ADDCONST(dict, F6KEY); - BPY_ADDCONST(dict, F7KEY); - BPY_ADDCONST(dict, F8KEY); - BPY_ADDCONST(dict, F9KEY); - BPY_ADDCONST(dict, F10KEY); - BPY_ADDCONST(dict, F11KEY); - BPY_ADDCONST(dict, F12KEY); - BPY_ADDCONST(dict, PAUSEKEY); - BPY_ADDCONST(dict, INSERTKEY); - BPY_ADDCONST(dict, HOMEKEY); - BPY_ADDCONST(dict, PAGEUPKEY); - BPY_ADDCONST(dict, PAGEDOWNKEY); - BPY_ADDCONST(dict, ENDKEY); - - return mod; -} - - -/* Buffer Object */ - -/* For Python access to OpenGL functions requiring - * a pointer. - */ - -PyTypeObject Buffer_Type; - -typedef struct _Buffer { - PyObject_VAR_HEAD - - PyObject *parent; - - int type; /* GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT */ - int ndimensions; - int *dimensions; - - union { - char *asbyte; - short *asshort; - int *asint; - float *asfloat; - - void *asvoid; - } buf; -} Buffer; - -static int type_size(int type) { - switch (type) { - case GL_BYTE: - return sizeof(char); - case GL_SHORT: - return sizeof(short); - case GL_INT: - return sizeof(int); - case GL_FLOAT: - return sizeof(float); - } - return -1; -} - -static Buffer *make_buffer(int type, int ndimensions, int *dimensions) { - Buffer *buffer; - void *buf= NULL; - int i, size, length; - - length= 1; - for (i=0; i<ndimensions; i++) length*= dimensions[i]; - - size= type_size(type); - - buf= MEM_mallocN(length*size, "Buffer buffer"); - - buffer= (Buffer *) PyObject_NEW(Buffer, &Buffer_Type); - buffer->parent= NULL; - buffer->ndimensions= ndimensions; - buffer->dimensions= dimensions; - buffer->type= type; - buffer->buf.asvoid= buf; - - for (i= 0; i<length; i++) { - if (type==GL_BYTE) - buffer->buf.asbyte[i]= 0; - - else if (type==GL_SHORT) - buffer->buf.asshort[i]= 0; - - else if (type==GL_INT) - buffer->buf.asint[i]= 0; - - else if (type==GL_FLOAT) - buffer->buf.asfloat[i]= 0.0; - } - - return buffer; -} - -static int Buffer_ass_slice(PyObject *self, int begin, int end, PyObject *seq); - -static char Method_Buffer_doc[]= -"(type, dimensions, [template]) - Create a new Buffer object\n\ -\n\ -(type) - The format to store data in\n\ -(dimensions) - An int or sequence specifying the dimensions of the buffer\n\ -[template] - A sequence of matching dimensions to the buffer to be created\n\ - which will be used to initialize the Buffer.\n\ -\n\ -If a template is not passed in all fields will be initialized to 0.\n\ -\n\ -The type should be one of GL_BYTE, GL_SHORT, GL_INT, or GL_FLOAT.\n\ -If the dimensions are specified as an int a linear buffer will be\n\ -created. If a sequence is passed for the dimensions the buffer\n\ -will have len(sequence) dimensions, where the size for each dimension\n\ -is determined by the value in the sequence at that index.\n\ -\n\ -For example, passing [100, 100] will create a 2 dimensional\n\ -square buffer. Passing [16, 16, 32] will create a 3 dimensional\n\ -buffer which is twice as deep as it is wide or high."; - -static PyObject *Method_Buffer (PyObject *self, PyObject *args) -{ - PyObject *length_ob= NULL, *template= NULL; - Buffer *buffer; - - int i, type; - int *dimensions = 0, ndimensions = 0; - - BPY_TRY(PyArg_ParseTuple(args, "iO|O", &type, &length_ob, &template)); - - if (type!=GL_BYTE && type!=GL_SHORT && type!=GL_INT && type!=GL_FLOAT) { - PyErr_SetString(PyExc_AttributeError, "type"); - return NULL; - } - - if (PyNumber_Check(length_ob)) { - ndimensions= 1; - dimensions= MEM_mallocN(ndimensions*sizeof(int), "Buffer dimensions"); - dimensions[0]= PyInt_AsLong(length_ob); - - } else if (PySequence_Check(length_ob)) { - ndimensions= PySequence_Length(length_ob); - dimensions= MEM_mallocN(ndimensions*sizeof(int), "Buffer dimensions"); - - for (i=0; i<ndimensions; i++) { - PyObject *ob= PySequence_GetItem(length_ob, i); - - if (!PyNumber_Check(ob)) dimensions[i]= 1; - else dimensions[i]= PyInt_AsLong(ob); - - Py_DECREF(ob); - } - } - - buffer= make_buffer(type, ndimensions, dimensions); - if (template && ndimensions) { - if (Buffer_ass_slice((PyObject *) buffer, 0, dimensions[0], template)) { - Py_DECREF(buffer); - return NULL; - } - } - - return (PyObject *) buffer; -} - -/**********/ - - -/* Buffer sequence methods */ - -static int Buffer_len(PyObject *self) { - Buffer *buf= (Buffer *) self; - - return buf->dimensions[0]; -} - -static PyObject *Buffer_item(PyObject *self, int i) { - Buffer *buf= (Buffer *) self; - - if (i >= buf->dimensions[0]) { - PyErr_SetString(PyExc_IndexError, "array index out of range"); - return NULL; - } - - if (buf->ndimensions==1) { - switch (buf->type) { - case GL_BYTE: return Py_BuildValue("b", buf->buf.asbyte[i]); - case GL_SHORT: return Py_BuildValue("h", buf->buf.asshort[i]); - case GL_INT: return Py_BuildValue("i", buf->buf.asint[i]); - case GL_FLOAT: return Py_BuildValue("f", buf->buf.asfloat[i]); - } - } else { - Buffer *newbuf; - int j, length, size; - - length= 1; - for (j=1; j<buf->ndimensions; j++) { - length*= buf->dimensions[j]; - } - size= type_size(buf->type); - - newbuf= (Buffer *) PyObject_NEW(Buffer, &Buffer_Type); - - Py_INCREF(self); - newbuf->parent= self; - - newbuf->ndimensions= buf->ndimensions-1; - newbuf->type= buf->type; - newbuf->buf.asvoid= buf->buf.asbyte + i*length*size; - - newbuf->dimensions= MEM_mallocN(newbuf->ndimensions*sizeof(int), "Buffer dimensions"); - memcpy(newbuf->dimensions, buf->dimensions+1, newbuf->ndimensions*sizeof(int)); - - return (PyObject *) newbuf; - } - - return NULL; -} - -static PyObject *Buffer_slice(PyObject *self, int begin, int end) -{ - Buffer *buf= (Buffer *) self; - PyObject *list; - int count; - - if (begin<0) begin= 0; - if (end>buf->dimensions[0]) end= buf->dimensions[0]; - if (begin>end) begin= end; - - list= PyList_New(end-begin); - - for (count= begin; count<end; count++) - PyList_SetItem(list, count-begin, Buffer_item(self, count)); - - return list; -} - -static int Buffer_ass_item(PyObject *self, int i, PyObject *v) { - Buffer *buf= (Buffer *) self; - - if (i >= buf->dimensions[0]) { - PyErr_SetString(PyExc_IndexError, "array assignment index out of range"); - return -1; - } - - if (buf->ndimensions!=1) { - PyObject *row= Buffer_item(self, i); - int ret; - - if (!row) return -1; - - ret= Buffer_ass_slice(row, 0, buf->dimensions[1], v); - Py_DECREF(row); - - return ret; - } - - if (buf->type==GL_BYTE) { - if (!PyArg_Parse(v, "b;Coordinates must be ints", &buf->buf.asbyte[i])) - return -1; - - } else if (buf->type==GL_SHORT) { - if (!PyArg_Parse(v, "h;Coordinates must be ints", &buf->buf.asshort[i])) - return -1; - - } else if (buf->type==GL_INT) { - if (!PyArg_Parse(v, "i;Coordinates must be ints", &buf->buf.asint[i])) - return -1; - - } else if (buf->type==GL_FLOAT) { - if (!PyArg_Parse(v, "f;Coordinates must be floats", &buf->buf.asfloat[i])) - return -1; - } - - return 0; -} - -static int Buffer_ass_slice(PyObject *self, int begin, int end, PyObject *seq) -{ - Buffer *buf= (Buffer *) self; - PyObject *item; - int count, err=0; - - if (begin<0) begin= 0; - if (end>buf->dimensions[0]) end= buf->dimensions[0]; - if (begin>end) begin= end; - - if (!PySequence_Check(seq)) { - PyErr_SetString(PyExc_TypeError, "illegal argument type for built-in operation"); - return -1; - } - - if (PySequence_Length(seq)!=(end-begin)) { - PyErr_SetString(PyExc_TypeError, "size mismatch in assignment"); - return -1; - } - - for (count= begin; count<end; count++) { - item= PySequence_GetItem(seq, count-begin); - err= Buffer_ass_item(self, count, item); - Py_DECREF(item); - - if (err) break; - } - - return err; -} -static PySequenceMethods Buffer_SeqMethods = { - (inquiry) Buffer_len, /*sq_length*/ - (binaryfunc) 0, /*sq_concat*/ - (intargfunc) 0, /*sq_repeat*/ - (intargfunc) Buffer_item, /*sq_item*/ - (intintargfunc) Buffer_slice, /*sq_slice*/ - (intobjargproc) Buffer_ass_item, /*sq_ass_item*/ - (intintobjargproc) Buffer_ass_slice, /*sq_ass_slice*/ -}; - - - -/**********/ - -static void Buffer_dealloc(PyObject *self) { - Buffer *buf= (Buffer *) self; - - if (buf->parent) Py_DECREF(buf->parent); - else MEM_freeN(buf->buf.asvoid); - - MEM_freeN(buf->dimensions); - - PyMem_DEL(self); -} - -static PyObject *Buffer_tolist(PyObject *self) { - int i, len= ((Buffer *)self)->dimensions[0]; - PyObject *list= PyList_New(len); - - for (i=0; i<len; i++) { - PyList_SetItem(list, i, Buffer_item(self, i)); - } - - return list; -} - -static PyObject *Buffer_dimensions(PyObject *self) { - Buffer *buffer= (Buffer *) self; - PyObject *list= PyList_New(buffer->ndimensions); - int i; - - for (i= 0; i<buffer->ndimensions; i++) { - PyList_SetItem(list, i, PyInt_FromLong(buffer->dimensions[i])); - } - - return list; -} - -static PyObject *Buffer_getattr(PyObject *self, char *name) { - if (strcmp(name, "list")==0) return Buffer_tolist(self); - else if (strcmp(name, "dimensions")==0) return Buffer_dimensions(self); - - PyErr_SetString(PyExc_AttributeError, name); - return NULL; -} - -static PyObject *Buffer_repr(PyObject *self) { - PyObject *list= Buffer_tolist(self); - PyObject *repr= PyObject_Repr(list); - Py_DECREF(list); - - return repr; -} - -PyTypeObject Buffer_Type = { - PyObject_HEAD_INIT(NULL) - 0, /*ob_size*/ - "Buffer", /*tp_name*/ - sizeof(Buffer), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - (destructor) Buffer_dealloc, /*tp_dealloc*/ - (printfunc) 0, /*tp_print*/ - (getattrfunc) Buffer_getattr, /*tp_getattr*/ - (setattrfunc) 0, /*tp_setattr*/ - (cmpfunc) 0, /*tp_compare*/ - (reprfunc) Buffer_repr, /*tp_repr*/ - 0, /*tp_as_number*/ - &Buffer_SeqMethods, /*tp_as_sequence*/ -}; - -#ifndef __APPLE__ -/* By golly George! It looks like fancy pants macro time!!! */ - -/* -#define int_str "i" -#define int_var(number) bgl_int##number -#define int_ref(number) &bgl_int##number -#define int_def(number) int int_var(number) - -#define float_str "f" -#define float_var(number) bgl_float##number -#define float_ref(number) &bgl_float##number -#define float_def(number) float float_var(number) -*/ - -/* TYPE_str is the string to pass to Py_ArgParse (for the format) */ -/* TYPE_var is the name to pass to the GL function */ -/* TYPE_ref is the pointer to pass to Py_ArgParse (to store in) */ -/* TYPE_def is the C initialization of the variable */ - -#define void_str "" -#define void_var(num) -#define void_ref(num) &bgl_var##num -#define void_def(num) char bgl_var##num - -#define buffer_str "O!" -#define buffer_var(number) (bgl_buffer##number)->buf.asvoid -#define buffer_ref(number) &Buffer_Type, &bgl_buffer##number -#define buffer_def(number) Buffer *bgl_buffer##number - -/* GL Pointer fields, handled by buffer type */ -/* GLdoubleP, GLfloatP, GLintP, GLuintP, GLshortP */ - -#define GLbooleanP_str "O!" -#define GLbooleanP_var(number) (bgl_buffer##number)->buf.asvoid -#define GLbooleanP_ref(number) &Buffer_Type, &bgl_buffer##number -#define GLbooleanP_def(number) Buffer *bgl_buffer##number - -#define GLbyteP_str "O!" -#define GLbyteP_var(number) (bgl_buffer##number)->buf.asvoid -#define GLbyteP_ref(number) &Buffer_Type, &bgl_buffer##number -#define GLbyteP_def(number) Buffer *bgl_buffer##number - -#define GLubyteP_str "O!" -#define GLubyteP_var(number) (bgl_buffer##number)->buf.asvoid -#define GLubyteP_ref(number) &Buffer_Type, &bgl_buffer##number -#define GLubyteP_def(number) Buffer *bgl_buffer##number - -#define GLintP_str "O!" -#define GLintP_var(number) (bgl_buffer##number)->buf.asvoid -#define GLintP_ref(number) &Buffer_Type, &bgl_buffer##number -#define GLintP_def(number) Buffer *bgl_buffer##number - -#define GLuintP_str "O!" -#define GLuintP_var(number) (bgl_buffer##number)->buf.asvoid -#define GLuintP_ref(number) &Buffer_Type, &bgl_buffer##number -#define GLuintP_def(number) Buffer *bgl_buffer##number - -#define GLshortP_str "O!" -#define GLshortP_var(number) (bgl_buffer##number)->buf.asvoid -#define GLshortP_ref(number) &Buffer_Type, &bgl_buffer##number -#define GLshortP_def(number) Buffer *bgl_buffer##number - -#define GLushortP_str "O!" -#define GLushortP_var(number) (bgl_buffer##number)->buf.asvoid -#define GLushortP_ref(number) &Buffer_Type, &bgl_buffer##number -#define GLushortP_def(number) Buffer *bgl_buffer##number - -#define GLfloatP_str "O!" -#define GLfloatP_var(number) (bgl_buffer##number)->buf.asvoid -#define GLfloatP_ref(number) &Buffer_Type, &bgl_buffer##number -#define GLfloatP_def(number) Buffer *bgl_buffer##number - -#define GLdoubleP_str "O!" -#define GLdoubleP_var(number) (bgl_buffer##number)->buf.asvoid -#define GLdoubleP_ref(number) &Buffer_Type, &bgl_buffer##number -#define GLdoubleP_def(number) Buffer *bgl_buffer##number - -#define GLclampfP_str "O!" -#define GLclampfP_var(number) (bgl_buffer##number)->buf.asvoid -#define GLclampfP_ref(number) &Buffer_Type, &bgl_buffer##number -#define GLclampfP_def(number) Buffer *bgl_buffer##number - -#define GLvoidP_str "O!" -#define GLvoidP_var(number) (bgl_buffer##number)->buf.asvoid -#define GLvoidP_ref(number) &Buffer_Type, &bgl_buffer##number -#define GLvoidP_def(number) Buffer *bgl_buffer##number - -#define buffer_str "O!" -#define buffer_var(number) (bgl_buffer##number)->buf.asvoid -#define buffer_ref(number) &Buffer_Type, &bgl_buffer##number -#define buffer_def(number) Buffer *bgl_buffer##number - -/* The standard GL typedefs are used as prototypes, we can't - * use the GL type directly because Py_ArgParse expects normal - * C types. - * - * Py_ArgParse doesn't grok writing into unsigned variables, - * so we use signed everything (even stuff that should be unsigned. - */ - -/* typedef unsigned int GLenum; */ -#define GLenum_str "i" -#define GLenum_var(num) bgl_var##num -#define GLenum_ref(num) &bgl_var##num -#define GLenum_def(num) /* unsigned */ int GLenum_var(num) - -/* typedef unsigned int GLboolean; */ -#define GLboolean_str "b" -#define GLboolean_var(num) bgl_var##num -#define GLboolean_ref(num) &bgl_var##num -#define GLboolean_def(num) /* unsigned */ char GLboolean_var(num) - -/* typedef unsigned int GLbitfield; */ -#define GLbitfield_str "i" -#define GLbitfield_var(num) bgl_var##num -#define GLbitfield_ref(num) &bgl_var##num -#define GLbitfield_def(num) /* unsigned */ int GLbitfield_var(num) - -/* typedef signed char GLbyte; */ -#define GLbyte_str "b" -#define GLbyte_var(num) bgl_var##num -#define GLbyte_ref(num) &bgl_var##num -#define GLbyte_def(num) signed char GLbyte_var(num) - -/* typedef short GLshort; */ -#define GLshort_str "h" -#define GLshort_var(num) bgl_var##num -#define GLshort_ref(num) &bgl_var##num -#define GLshort_def(num) short GLshort_var(num) - -/* typedef int GLint; */ -#define GLint_str "i" -#define GLint_var(num) bgl_var##num -#define GLint_ref(num) &bgl_var##num -#define GLint_def(num) int GLint_var(num) - -/* typedef int GLsizei; */ -#define GLsizei_str "i" -#define GLsizei_var(num) bgl_var##num -#define GLsizei_ref(num) &bgl_var##num -#define GLsizei_def(num) int GLsizei_var(num) - -/* typedef unsigned char GLubyte; */ -#define GLubyte_str "b" -#define GLubyte_var(num) bgl_var##num -#define GLubyte_ref(num) &bgl_var##num -#define GLubyte_def(num) /* unsigned */ char GLubyte_var(num) - -/* typedef unsigned short GLushort; */ -#define GLushort_str "h" -#define GLushort_var(num) bgl_var##num -#define GLushort_ref(num) &bgl_var##num -#define GLushort_def(num) /* unsigned */ short GLushort_var(num) - -/* typedef unsigned int GLuint; */ -#define GLuint_str "i" -#define GLuint_var(num) bgl_var##num -#define GLuint_ref(num) &bgl_var##num -#define GLuint_def(num) /* unsigned */ int GLuint_var(num) - -/* typedef float GLfloat; */ -#define GLfloat_str "f" -#define GLfloat_var(num) bgl_var##num -#define GLfloat_ref(num) &bgl_var##num -#define GLfloat_def(num) float GLfloat_var(num) - -/* typedef float GLclampf; */ -#define GLclampf_str "f" -#define GLclampf_var(num) bgl_var##num -#define GLclampf_ref(num) &bgl_var##num -#define GLclampf_def(num) float GLclampf_var(num) - -/* typedef double GLdouble; */ -#define GLdouble_str "d" -#define GLdouble_var(num) bgl_var##num -#define GLdouble_ref(num) &bgl_var##num -#define GLdouble_def(num) double GLdouble_var(num) - -/* typedef double GLclampd; */ -#define GLclampd_str "d" -#define GLclampd_var(num) bgl_var##num -#define GLclampd_ref(num) &bgl_var##num -#define GLclampd_def(num) double GLclampd_var(num) - -/* typedef void GLvoid; */ -/* #define GLvoid_str "" */ -/* #define GLvoid_var(num) bgl_var##num */ -/* #define GLvoid_ref(num) &bgl_var##num */ -/* #define GLvoid_def(num) char bgl_var##num */ - -#define arg_def1(a1) a1##_def(1) -#define arg_def2(a1, a2) arg_def1(a1); a2##_def(2) -#define arg_def3(a1, a2, a3) arg_def2(a1, a2); a3##_def(3) -#define arg_def4(a1, a2, a3, a4) arg_def3(a1, a2, a3); a4##_def(4) -#define arg_def5(a1, a2, a3, a4, a5) arg_def4(a1, a2, a3, a4); a5##_def(5) -#define arg_def6(a1, a2, a3, a4, a5, a6)arg_def5(a1, a2, a3, a4, a5); a6##_def(6) -#define arg_def7(a1, a2, a3, a4, a5, a6, a7)arg_def6(a1, a2, a3, a4, a5, a6); a7##_def(7) -#define arg_def8(a1, a2, a3, a4, a5, a6, a7, a8)arg_def7(a1, a2, a3, a4, a5, a6, a7); a8##_def(8) -#define arg_def9(a1, a2, a3, a4, a5, a6, a7, a8, a9)arg_def8(a1, a2, a3, a4, a5, a6, a7, a8); a9##_def(9) -#define arg_def10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)arg_def9(a1, a2, a3, a4, a5, a6, a7, a8, a9); a10##_def(10) - -#define arg_var1(a1) a1##_var(1) -#define arg_var2(a1, a2) arg_var1(a1), a2##_var(2) -#define arg_var3(a1, a2, a3) arg_var2(a1, a2), a3##_var(3) -#define arg_var4(a1, a2, a3, a4) arg_var3(a1, a2, a3), a4##_var(4) -#define arg_var5(a1, a2, a3, a4, a5) arg_var4(a1, a2, a3, a4), a5##_var(5) -#define arg_var6(a1, a2, a3, a4, a5, a6)arg_var5(a1, a2, a3, a4, a5), a6##_var(6) -#define arg_var7(a1, a2, a3, a4, a5, a6, a7)arg_var6(a1, a2, a3, a4, a5, a6), a7##_var(7) -#define arg_var8(a1, a2, a3, a4, a5, a6, a7, a8)arg_var7(a1, a2, a3, a4, a5, a6, a7), a8##_var(8) -#define arg_var9(a1, a2, a3, a4, a5, a6, a7, a8, a9)arg_var8(a1, a2, a3, a4, a5, a6, a7, a8), a9##_var(9) -#define arg_var10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)arg_var9(a1, a2, a3, a4, a5, a6, a7, a8, a9), a10##_var(10) - -#define arg_ref1(a1) a1##_ref(1) -#define arg_ref2(a1, a2) arg_ref1(a1), a2##_ref(2) -#define arg_ref3(a1, a2, a3) arg_ref2(a1, a2), a3##_ref(3) -#define arg_ref4(a1, a2, a3, a4) arg_ref3(a1, a2, a3), a4##_ref(4) -#define arg_ref5(a1, a2, a3, a4, a5) arg_ref4(a1, a2, a3, a4), a5##_ref(5) -#define arg_ref6(a1, a2, a3, a4, a5, a6)arg_ref5(a1, a2, a3, a4, a5), a6##_ref(6) -#define arg_ref7(a1, a2, a3, a4, a5, a6, a7)arg_ref6(a1, a2, a3, a4, a5, a6), a7##_ref(7) -#define arg_ref8(a1, a2, a3, a4, a5, a6, a7, a8)arg_ref7(a1, a2, a3, a4, a5, a6, a7), a8##_ref(8) -#define arg_ref9(a1, a2, a3, a4, a5, a6, a7, a8, a9)arg_ref8(a1, a2, a3, a4, a5, a6, a7, a8), a9##_ref(9) -#define arg_ref10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)arg_ref9(a1, a2, a3, a4, a5, a6, a7, a8, a9), a10##_ref(10) - -#define arg_str1(a1) a1##_str -#define arg_str2(a1, a2) arg_str1(a1) a2##_str -#define arg_str3(a1, a2, a3) arg_str2(a1, a2) a3##_str -#define arg_str4(a1, a2, a3, a4) arg_str3(a1, a2, a3) a4##_str -#define arg_str5(a1, a2, a3, a4, a5) arg_str4(a1, a2, a3, a4) a5##_str -#define arg_str6(a1, a2, a3, a4, a5, a6)arg_str5(a1, a2, a3, a4, a5) a6##_str -#define arg_str7(a1, a2, a3, a4, a5, a6, a7)arg_str6(a1, a2, a3, a4, a5, a6) a7##_str -#define arg_str8(a1, a2, a3, a4, a5, a6, a7, a8)arg_str7(a1, a2, a3, a4, a5, a6, a7) a8##_str -#define arg_str9(a1, a2, a3, a4, a5, a6, a7, a8, a9)arg_str8(a1, a2, a3, a4, a5, a6, a7, a8) a9##_str -#define arg_str10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)arg_str9(a1, a2, a3, a4, a5, a6, a7, a8, a9) a10##_str - -#define ret_def_void -#define ret_set_void -#define ret_ret_void return BPY_incr_ret(Py_None) - -#define ret_def_GLint int ret_int -#define ret_set_GLint ret_int= -#define ret_ret_GLint return PyInt_FromLong(ret_int); - -#define ret_def_GLuint unsigned int ret_uint -#define ret_set_GLuint ret_uint= -#define ret_ret_GLuint return PyInt_FromLong((long) ret_uint); - -#define ret_def_GLenum unsigned int ret_uint -#define ret_set_GLenum ret_uint= -#define ret_ret_GLenum return PyInt_FromLong((long) ret_uint); - -#define ret_def_GLboolean unsigned char ret_bool -#define ret_set_GLboolean ret_bool= -#define ret_ret_GLboolean return PyInt_FromLong((long) ret_bool); - -#define ret_def_GLstring const unsigned char *ret_str; -#define ret_set_GLstring ret_str= -#define ret_ret_GLstring return PyString_FromString(ret_str); - -#define BGL_Wrap(nargs, funcname, ret, arg_list) \ -static PyObject *Method_##funcname (PyObject *self, PyObject *args) {\ - arg_def##nargs arg_list; \ - ret_def_##ret; \ - if(!PyArg_ParseTuple(args, arg_str##nargs arg_list, arg_ref##nargs arg_list)) return NULL;\ - ret_set_##ret gl##funcname (arg_var##nargs arg_list);\ - ret_ret_##ret; \ -} - -BGL_Wrap(2, Accum, void, (GLenum, GLfloat)) -BGL_Wrap(2, AlphaFunc, void, (GLenum, GLclampf)) -BGL_Wrap(3, AreTexturesResident, GLboolean, (GLsizei, GLuintP, GLbooleanP)) -BGL_Wrap(1, Begin, void, (GLenum)) -BGL_Wrap(2, BindTexture, void, (GLenum, GLuint)) -BGL_Wrap(7, Bitmap, void, (GLsizei, GLsizei, GLfloat, GLfloat, GLfloat, GLfloat, GLubyteP)) -BGL_Wrap(2, BlendFunc, void, (GLenum, GLenum)) -BGL_Wrap(1, CallList, void, (GLuint)) -BGL_Wrap(3, CallLists, void, (GLsizei, GLenum, GLvoidP)) -BGL_Wrap(1, Clear, void, (GLbitfield)) -BGL_Wrap(4, ClearAccum, void, (GLfloat, GLfloat, GLfloat, GLfloat)) -BGL_Wrap(4, ClearColor, void, (GLclampf, GLclampf, GLclampf, GLclampf)) -BGL_Wrap(1, ClearDepth, void, (GLclampd)) -BGL_Wrap(1, ClearIndex, void, (GLfloat)) -BGL_Wrap(1, ClearStencil, void, (GLint)) -BGL_Wrap(2, ClipPlane, void, (GLenum, GLdoubleP)) -BGL_Wrap(3, Color3b, void, (GLbyte, GLbyte, GLbyte)) -BGL_Wrap(1, Color3bv, void, (GLbyteP)) -BGL_Wrap(3, Color3d, void, (GLdouble, GLdouble, GLdouble)) -BGL_Wrap(1, Color3dv, void, (GLdoubleP)) -BGL_Wrap(3, Color3f, void, (GLfloat, GLfloat, GLfloat)) -BGL_Wrap(1, Color3fv, void, (GLfloatP)) -BGL_Wrap(3, Color3i, void, (GLint, GLint, GLint)) -BGL_Wrap(1, Color3iv, void, (GLintP)) -BGL_Wrap(3, Color3s, void, (GLshort, GLshort, GLshort)) -BGL_Wrap(1, Color3sv, void, (GLshortP)) -BGL_Wrap(3, Color3ub, void, (GLubyte, GLubyte, GLubyte)) -BGL_Wrap(1, Color3ubv, void, (GLubyteP)) -BGL_Wrap(3, Color3ui, void, (GLuint, GLuint, GLuint)) -BGL_Wrap(1, Color3uiv, void, (GLuintP)) -BGL_Wrap(3, Color3us, void, (GLushort, GLushort, GLushort)) -BGL_Wrap(1, Color3usv, void, (GLushortP)) -BGL_Wrap(4, Color4b, void, (GLbyte, GLbyte, GLbyte, GLbyte)) -BGL_Wrap(1, Color4bv, void, (GLbyteP)) -BGL_Wrap(4, Color4d, void, (GLdouble, GLdouble, GLdouble, GLdouble)) -BGL_Wrap(1, Color4dv, void, (GLdoubleP)) -BGL_Wrap(4, Color4f, void, (GLfloat, GLfloat, GLfloat, GLfloat)) -BGL_Wrap(1, Color4fv, void, (GLfloatP)) -BGL_Wrap(4, Color4i, void, (GLint, GLint, GLint, GLint)) -BGL_Wrap(1, Color4iv, void, (GLintP)) -BGL_Wrap(4, Color4s, void, (GLshort, GLshort, GLshort, GLshort)) -BGL_Wrap(1, Color4sv, void, (GLshortP)) -BGL_Wrap(4, Color4ub, void, (GLubyte, GLubyte, GLubyte, GLubyte)) -BGL_Wrap(1, Color4ubv, void, (GLubyteP)) -BGL_Wrap(4, Color4ui, void, (GLuint, GLuint, GLuint, GLuint)) -BGL_Wrap(1, Color4uiv, void, (GLuintP)) -BGL_Wrap(4, Color4us, void, (GLushort, GLushort, GLushort, GLushort)) -BGL_Wrap(1, Color4usv, void, (GLushortP)) -BGL_Wrap(4, ColorMask, void, (GLboolean, GLboolean, GLboolean, GLboolean)) -BGL_Wrap(2, ColorMaterial, void, (GLenum, GLenum)) -BGL_Wrap(5, CopyPixels, void, (GLint, GLint, GLsizei, GLsizei, GLenum)) -BGL_Wrap(1, CullFace, void, (GLenum)) -BGL_Wrap(2, DeleteLists, void, (GLuint, GLsizei)) -BGL_Wrap(2, DeleteTextures, void, (GLsizei, GLuintP)) -BGL_Wrap(1, DepthFunc, void, (GLenum)) -BGL_Wrap(1, DepthMask, void, (GLboolean)) -BGL_Wrap(2, DepthRange, void, (GLclampd, GLclampd)) -BGL_Wrap(1, Disable, void, (GLenum)) -BGL_Wrap(1, DrawBuffer, void, (GLenum)) -BGL_Wrap(5, DrawPixels, void, (GLsizei, GLsizei, GLenum, GLenum, GLvoidP)) -BGL_Wrap(1, EdgeFlag, void, (GLboolean)) -BGL_Wrap(1, EdgeFlagv, void, (GLbooleanP)) -BGL_Wrap(1, Enable, void, (GLenum)) -BGL_Wrap(1, End, void, (void)) -BGL_Wrap(1, EndList, void, (void)) -BGL_Wrap(1, EvalCoord1d, void, (GLdouble)) -BGL_Wrap(1, EvalCoord1dv, void, (GLdoubleP)) -BGL_Wrap(1, EvalCoord1f, void, (GLfloat)) -BGL_Wrap(1, EvalCoord1fv, void, (GLfloatP)) -BGL_Wrap(2, EvalCoord2d, void, (GLdouble, GLdouble)) -BGL_Wrap(1, EvalCoord2dv, void, (GLdoubleP)) -BGL_Wrap(2, EvalCoord2f, void, (GLfloat, GLfloat)) -BGL_Wrap(1, EvalCoord2fv, void, (GLfloatP)) -BGL_Wrap(3, EvalMesh1, void, (GLenum, GLint, GLint)) -BGL_Wrap(5, EvalMesh2, void, (GLenum, GLint, GLint, GLint, GLint)) -BGL_Wrap(1, EvalPoint1, void, (GLint)) -BGL_Wrap(2, EvalPoint2, void, (GLint, GLint)) -BGL_Wrap(3, FeedbackBuffer, void, (GLsizei, GLenum, GLfloatP)) -BGL_Wrap(1, Finish, void, (void)) -BGL_Wrap(1, Flush, void, (void)) -BGL_Wrap(2, Fogf, void, (GLenum, GLfloat)) -BGL_Wrap(2, Fogfv, void, (GLenum, GLfloatP)) -BGL_Wrap(2, Fogi, void, (GLenum, GLint)) -BGL_Wrap(2, Fogiv, void, (GLenum, GLintP)) -BGL_Wrap(1, FrontFace, void, (GLenum)) -BGL_Wrap(6, Frustum, void, (GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble)) -BGL_Wrap(1, GenLists, GLuint, (GLsizei)) -BGL_Wrap(2, GenTextures, void, (GLsizei, GLuintP)) -BGL_Wrap(2, GetBooleanv, void, (GLenum, GLbooleanP)) -BGL_Wrap(2, GetClipPlane, void, (GLenum, GLdoubleP)) -BGL_Wrap(2, GetDoublev, void, (GLenum, GLdoubleP)) -BGL_Wrap(1, GetError, GLenum, (void)) -BGL_Wrap(2, GetFloatv, void, (GLenum, GLfloatP)) -BGL_Wrap(2, GetIntegerv, void, (GLenum, GLintP)) -BGL_Wrap(3, GetLightfv, void, (GLenum, GLenum, GLfloatP)) -BGL_Wrap(3, GetLightiv, void, (GLenum, GLenum, GLintP)) -BGL_Wrap(3, GetMapdv, void, (GLenum, GLenum, GLdoubleP)) -BGL_Wrap(3, GetMapfv, void, (GLenum, GLenum, GLfloatP)) -BGL_Wrap(3, GetMapiv, void, (GLenum, GLenum, GLintP)) -BGL_Wrap(3, GetMaterialfv, void, (GLenum, GLenum, GLfloatP)) -BGL_Wrap(3, GetMaterialiv, void, (GLenum, GLenum, GLintP)) -BGL_Wrap(2, GetPixelMapfv, void, (GLenum, GLfloatP)) -BGL_Wrap(2, GetPixelMapuiv, void, (GLenum, GLuintP)) -BGL_Wrap(2, GetPixelMapusv, void, (GLenum, GLushortP)) -BGL_Wrap(1, GetPolygonStipple, void, (GLubyteP)) -BGL_Wrap(1, GetString, GLstring, (GLenum)) -BGL_Wrap(3, GetTexEnvfv, void, (GLenum, GLenum, GLfloatP)) -BGL_Wrap(3, GetTexEnviv, void, (GLenum, GLenum, GLintP)) -BGL_Wrap(3, GetTexGendv, void, (GLenum, GLenum, GLdoubleP)) -BGL_Wrap(3, GetTexGenfv, void, (GLenum, GLenum, GLfloatP)) -BGL_Wrap(3, GetTexGeniv, void, (GLenum, GLenum, GLintP)) -BGL_Wrap(5, GetTexImage, void, (GLenum, GLint, GLenum, GLenum, GLvoidP)) -BGL_Wrap(4, GetTexLevelParameterfv, void, (GLenum, GLint, GLenum, GLfloatP)) -BGL_Wrap(4, GetTexLevelParameteriv, void, (GLenum, GLint, GLenum, GLintP)) -BGL_Wrap(3, GetTexParameterfv, void, (GLenum, GLenum, GLfloatP)) -BGL_Wrap(3, GetTexParameteriv, void, (GLenum, GLenum, GLintP)) -BGL_Wrap(2, Hint, void, (GLenum, GLenum)) -BGL_Wrap(1, IndexMask, void, (GLuint)) -BGL_Wrap(1, Indexd, void, (GLdouble)) -BGL_Wrap(1, Indexdv, void, (GLdoubleP)) -BGL_Wrap(1, Indexf, void, (GLfloat)) -BGL_Wrap(1, Indexfv, void, (GLfloatP)) -BGL_Wrap(1, Indexi, void, (GLint)) -BGL_Wrap(1, Indexiv, void, (GLintP)) -BGL_Wrap(1, Indexs, void, (GLshort)) -BGL_Wrap(1, Indexsv, void, (GLshortP)) -BGL_Wrap(1, InitNames, void, (void)) -BGL_Wrap(1, IsEnabled, GLboolean, (GLenum)) -BGL_Wrap(1, IsList, GLboolean, (GLuint)) -BGL_Wrap(1, IsTexture, GLboolean, (GLuint)) -BGL_Wrap(2, LightModelf, void, (GLenum, GLfloat)) -BGL_Wrap(2, LightModelfv, void, (GLenum, GLfloatP)) -BGL_Wrap(2, LightModeli, void, (GLenum, GLint)) -BGL_Wrap(2, LightModeliv, void, (GLenum, GLintP)) -BGL_Wrap(3, Lightf, void, (GLenum, GLenum, GLfloat)) -BGL_Wrap(3, Lightfv, void, (GLenum, GLenum, GLfloatP)) -BGL_Wrap(3, Lighti, void, (GLenum, GLenum, GLint)) -BGL_Wrap(3, Lightiv, void, (GLenum, GLenum, GLintP)) -BGL_Wrap(2, LineStipple, void, (GLint, GLushort)) -BGL_Wrap(1, LineWidth, void, (GLfloat)) -BGL_Wrap(1, ListBase, void, (GLuint)) -BGL_Wrap(1, LoadIdentity, void, (void)) -BGL_Wrap(1, LoadMatrixd, void, (GLdoubleP)) -BGL_Wrap(1, LoadMatrixf, void, (GLfloatP)) -BGL_Wrap(1, LoadName, void, (GLuint)) -BGL_Wrap(1, LogicOp, void, (GLenum)) -BGL_Wrap(6, Map1d, void, (GLenum, GLdouble, GLdouble, GLint, GLint, GLdoubleP)) -BGL_Wrap(6, Map1f, void, (GLenum, GLfloat, GLfloat, GLint, GLint, GLfloatP)) -BGL_Wrap(10, Map2d, void, (GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, GLdoubleP)) -BGL_Wrap(10, Map2f, void, (GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, GLfloatP)) -BGL_Wrap(3, MapGrid1d, void, (GLint, GLdouble, GLdouble)) -BGL_Wrap(3, MapGrid1f, void, (GLint, GLfloat, GLfloat)) -BGL_Wrap(6, MapGrid2d, void, (GLint, GLdouble, GLdouble, GLint, GLdouble, GLdouble)) -BGL_Wrap(6, MapGrid2f, void, (GLint, GLfloat, GLfloat, GLint, GLfloat, GLfloat)) -BGL_Wrap(3, Materialf, void, (GLenum, GLenum, GLfloat)) -BGL_Wrap(3, Materialfv, void, (GLenum, GLenum, GLfloatP)) -BGL_Wrap(3, Materiali, void, (GLenum, GLenum, GLint)) -BGL_Wrap(3, Materialiv, void, (GLenum, GLenum, GLintP)) -BGL_Wrap(1, MatrixMode, void, (GLenum)) -BGL_Wrap(1, MultMatrixd, void, (GLdoubleP)) -BGL_Wrap(1, MultMatrixf, void, (GLfloatP)) -BGL_Wrap(2, NewList, void, (GLuint, GLenum)) -BGL_Wrap(3, Normal3b, void, (GLbyte, GLbyte, GLbyte)) -BGL_Wrap(1, Normal3bv, void, (GLbyteP)) -BGL_Wrap(3, Normal3d, void, (GLdouble, GLdouble, GLdouble)) -BGL_Wrap(1, Normal3dv, void, (GLdoubleP)) -BGL_Wrap(3, Normal3f, void, (GLfloat, GLfloat, GLfloat)) -BGL_Wrap(1, Normal3fv, void, (GLfloatP)) -BGL_Wrap(3, Normal3i, void, (GLint, GLint, GLint)) -BGL_Wrap(1, Normal3iv, void, (GLintP)) -BGL_Wrap(3, Normal3s, void, (GLshort, GLshort, GLshort)) -BGL_Wrap(1, Normal3sv, void, (GLshortP)) -BGL_Wrap(6, Ortho, void, (GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble)) -BGL_Wrap(1, PassThrough, void, (GLfloat)) -BGL_Wrap(3, PixelMapfv, void, (GLenum, GLint, GLfloatP)) -BGL_Wrap(3, PixelMapuiv, void, (GLenum, GLint, GLuintP)) -BGL_Wrap(3, PixelMapusv, void, (GLenum, GLint, GLushortP)) -BGL_Wrap(2, PixelStoref, void, (GLenum, GLfloat)) -BGL_Wrap(2, PixelStorei, void, (GLenum, GLint)) -BGL_Wrap(2, PixelTransferf, void, (GLenum, GLfloat)) -BGL_Wrap(2, PixelTransferi, void, (GLenum, GLint)) -BGL_Wrap(2, PixelZoom, void, (GLfloat, GLfloat)) -BGL_Wrap(1, PointSize, void, (GLfloat)) -BGL_Wrap(2, PolygonMode, void, (GLenum, GLenum)) -BGL_Wrap(2, PolygonOffset, void, (GLfloat, GLfloat)) -BGL_Wrap(1, PolygonStipple, void, (GLubyteP)) -BGL_Wrap(1, PopAttrib, void, (void)) -BGL_Wrap(1, PopMatrix, void, (void)) -BGL_Wrap(1, PopName, void, (void)) -BGL_Wrap(3, PrioritizeTextures, void, (GLsizei, GLuintP, GLclampfP)) -BGL_Wrap(1, PushAttrib, void, (GLbitfield)) -BGL_Wrap(1, PushMatrix, void, (void)) -BGL_Wrap(1, PushName, void, (GLuint)) -BGL_Wrap(2, RasterPos2d, void, (GLdouble, GLdouble)) -BGL_Wrap(1, RasterPos2dv, void, (GLdoubleP)) -BGL_Wrap(2, RasterPos2f, void, (GLfloat, GLfloat)) -BGL_Wrap(1, RasterPos2fv, void, (GLfloatP)) -BGL_Wrap(2, RasterPos2i, void, (GLint, GLint)) -BGL_Wrap(1, RasterPos2iv, void, (GLintP)) -BGL_Wrap(2, RasterPos2s, void, (GLshort, GLshort)) -BGL_Wrap(1, RasterPos2sv, void, (GLshortP)) -BGL_Wrap(3, RasterPos3d, void, (GLdouble, GLdouble, GLdouble)) -BGL_Wrap(1, RasterPos3dv, void, (GLdoubleP)) -BGL_Wrap(3, RasterPos3f, void, (GLfloat, GLfloat, GLfloat)) -BGL_Wrap(1, RasterPos3fv, void, (GLfloatP)) -BGL_Wrap(3, RasterPos3i, void, (GLint, GLint, GLint)) -BGL_Wrap(1, RasterPos3iv, void, (GLintP)) -BGL_Wrap(3, RasterPos3s, void, (GLshort, GLshort, GLshort)) -BGL_Wrap(1, RasterPos3sv, void, (GLshortP)) -BGL_Wrap(4, RasterPos4d, void, (GLdouble, GLdouble, GLdouble, GLdouble)) -BGL_Wrap(1, RasterPos4dv, void, (GLdoubleP)) -BGL_Wrap(4, RasterPos4f, void, (GLfloat, GLfloat, GLfloat, GLfloat)) -BGL_Wrap(1, RasterPos4fv, void, (GLfloatP)) -BGL_Wrap(4, RasterPos4i, void, (GLint, GLint, GLint, GLint)) -BGL_Wrap(1, RasterPos4iv, void, (GLintP)) -BGL_Wrap(4, RasterPos4s, void, (GLshort, GLshort, GLshort, GLshort)) -BGL_Wrap(1, RasterPos4sv, void, (GLshortP)) -BGL_Wrap(1, ReadBuffer, void, (GLenum)) -BGL_Wrap(7, ReadPixels, void, (GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoidP)) -BGL_Wrap(4, Rectd, void, (GLdouble, GLdouble, GLdouble, GLdouble)) -BGL_Wrap(2, Rectdv, void, (GLdoubleP, GLdoubleP)) -BGL_Wrap(4, Rectf, void, (GLfloat, GLfloat, GLfloat, GLfloat)) -BGL_Wrap(2, Rectfv, void, (GLfloatP, GLfloatP)) -BGL_Wrap(4, Recti, void, (GLint, GLint, GLint, GLint)) -BGL_Wrap(2, Rectiv, void, (GLintP, GLintP)) -BGL_Wrap(4, Rects, void, (GLshort, GLshort, GLshort, GLshort)) -BGL_Wrap(2, Rectsv, void, (GLshortP, GLshortP)) -BGL_Wrap(1, RenderMode, GLint, (GLenum)) -BGL_Wrap(4, Rotated, void, (GLdouble, GLdouble, GLdouble, GLdouble)) -BGL_Wrap(4, Rotatef, void, (GLfloat, GLfloat, GLfloat, GLfloat)) -BGL_Wrap(3, Scaled, void, (GLdouble, GLdouble, GLdouble)) -BGL_Wrap(3, Scalef, void, (GLfloat, GLfloat, GLfloat)) -BGL_Wrap(4, Scissor, void, (GLint, GLint, GLsizei, GLsizei)) -BGL_Wrap(2, SelectBuffer, void, (GLsizei, GLuintP)) -BGL_Wrap(1, ShadeModel, void, (GLenum)) -BGL_Wrap(3, StencilFunc, void, (GLenum, GLint, GLuint)) -BGL_Wrap(1, StencilMask, void, (GLuint)) -BGL_Wrap(3, StencilOp, void, (GLenum, GLenum, GLenum)) -BGL_Wrap(1, TexCoord1d, void, (GLdouble)) -BGL_Wrap(1, TexCoord1dv, void, (GLdoubleP)) -BGL_Wrap(1, TexCoord1f, void, (GLfloat)) -BGL_Wrap(1, TexCoord1fv, void, (GLfloatP)) -BGL_Wrap(1, TexCoord1i, void, (GLint)) -BGL_Wrap(1, TexCoord1iv, void, (GLintP)) -BGL_Wrap(1, TexCoord1s, void, (GLshort)) -BGL_Wrap(1, TexCoord1sv, void, (GLshortP)) -BGL_Wrap(2, TexCoord2d, void, (GLdouble, GLdouble)) -BGL_Wrap(1, TexCoord2dv, void, (GLdoubleP)) -BGL_Wrap(2, TexCoord2f, void, (GLfloat, GLfloat)) -BGL_Wrap(1, TexCoord2fv, void, (GLfloatP)) -BGL_Wrap(2, TexCoord2i, void, (GLint, GLint)) -BGL_Wrap(1, TexCoord2iv, void, (GLintP)) -BGL_Wrap(2, TexCoord2s, void, (GLshort, GLshort)) -BGL_Wrap(1, TexCoord2sv, void, (GLshortP)) -BGL_Wrap(3, TexCoord3d, void, (GLdouble, GLdouble, GLdouble)) -BGL_Wrap(1, TexCoord3dv, void, (GLdoubleP)) -BGL_Wrap(3, TexCoord3f, void, (GLfloat, GLfloat, GLfloat)) -BGL_Wrap(1, TexCoord3fv, void, (GLfloatP)) -BGL_Wrap(3, TexCoord3i, void, (GLint, GLint, GLint)) -BGL_Wrap(1, TexCoord3iv, void, (GLintP)) -BGL_Wrap(3, TexCoord3s, void, (GLshort, GLshort, GLshort)) -BGL_Wrap(1, TexCoord3sv, void, (GLshortP)) -BGL_Wrap(4, TexCoord4d, void, (GLdouble, GLdouble, GLdouble, GLdouble)) -BGL_Wrap(1, TexCoord4dv, void, (GLdoubleP)) -BGL_Wrap(4, TexCoord4f, void, (GLfloat, GLfloat, GLfloat, GLfloat)) -BGL_Wrap(1, TexCoord4fv, void, (GLfloatP)) -BGL_Wrap(4, TexCoord4i, void, (GLint, GLint, GLint, GLint)) -BGL_Wrap(1, TexCoord4iv, void, (GLintP)) -BGL_Wrap(4, TexCoord4s, void, (GLshort, GLshort, GLshort, GLshort)) -BGL_Wrap(1, TexCoord4sv, void, (GLshortP)) -BGL_Wrap(3, TexEnvf, void, (GLenum, GLenum, GLfloat)) -BGL_Wrap(3, TexEnvfv, void, (GLenum, GLenum, GLfloatP)) -BGL_Wrap(3, TexEnvi, void, (GLenum, GLenum, GLint)) -BGL_Wrap(3, TexEnviv, void, (GLenum, GLenum, GLintP)) -BGL_Wrap(3, TexGend, void, (GLenum, GLenum, GLdouble)) -BGL_Wrap(3, TexGendv, void, (GLenum, GLenum, GLdoubleP)) -BGL_Wrap(3, TexGenf, void, (GLenum, GLenum, GLfloat)) -BGL_Wrap(3, TexGenfv, void, (GLenum, GLenum, GLfloatP)) -BGL_Wrap(3, TexGeni, void, (GLenum, GLenum, GLint)) -BGL_Wrap(3, TexGeniv, void, (GLenum, GLenum, GLintP)) -BGL_Wrap(8, TexImage1D, void, (GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, GLvoidP)) -BGL_Wrap(9, TexImage2D, void, (GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, GLvoidP)) -BGL_Wrap(3, TexParameterf, void, (GLenum, GLenum, GLfloat)) -BGL_Wrap(3, TexParameterfv, void, (GLenum, GLenum, GLfloatP)) -BGL_Wrap(3, TexParameteri, void, (GLenum, GLenum, GLint)) -BGL_Wrap(3, TexParameteriv, void, (GLenum, GLenum, GLintP)) -BGL_Wrap(3, Translated, void, (GLdouble, GLdouble, GLdouble)) -BGL_Wrap(3, Translatef, void, (GLfloat, GLfloat, GLfloat)) -BGL_Wrap(2, Vertex2d, void, (GLdouble, GLdouble)) -BGL_Wrap(1, Vertex2dv, void, (GLdoubleP)) -BGL_Wrap(2, Vertex2f, void, (GLfloat, GLfloat)) -BGL_Wrap(1, Vertex2fv, void, (GLfloatP)) -BGL_Wrap(2, Vertex2i, void, (GLint, GLint)) -BGL_Wrap(1, Vertex2iv, void, (GLintP)) -BGL_Wrap(2, Vertex2s, void, (GLshort, GLshort)) -BGL_Wrap(1, Vertex2sv, void, (GLshortP)) -BGL_Wrap(3, Vertex3d, void, (GLdouble, GLdouble, GLdouble)) -BGL_Wrap(1, Vertex3dv, void, (GLdoubleP)) -BGL_Wrap(3, Vertex3f, void, (GLfloat, GLfloat, GLfloat)) -BGL_Wrap(1, Vertex3fv, void, (GLfloatP)) -BGL_Wrap(3, Vertex3i, void, (GLint, GLint, GLint)) -BGL_Wrap(1, Vertex3iv, void, (GLintP)) -BGL_Wrap(3, Vertex3s, void, (GLshort, GLshort, GLshort)) -BGL_Wrap(1, Vertex3sv, void, (GLshortP)) -BGL_Wrap(4, Vertex4d, void, (GLdouble, GLdouble, GLdouble, GLdouble)) -BGL_Wrap(1, Vertex4dv, void, (GLdoubleP)) -BGL_Wrap(4, Vertex4f, void, (GLfloat, GLfloat, GLfloat, GLfloat)) -BGL_Wrap(1, Vertex4fv, void, (GLfloatP)) -BGL_Wrap(4, Vertex4i, void, (GLint, GLint, GLint, GLint)) -BGL_Wrap(1, Vertex4iv, void, (GLintP)) -BGL_Wrap(4, Vertex4s, void, (GLshort, GLshort, GLshort, GLshort)) -BGL_Wrap(1, Vertex4sv, void, (GLshortP)) -BGL_Wrap(4, Viewport, void, (GLint, GLint, GLsizei, GLsizei)) -#endif - -/* XXX */ -#undef MethodDef -#define MethodDef(func) {"gl"#func, Method_##func, METH_VARARGS} - -static struct PyMethodDef BGL_methods[] = { - {"Buffer", Method_Buffer, METH_VARARGS, Method_Buffer_doc}, -#ifndef __APPLE__ - MethodDef( Accum), - MethodDef( AlphaFunc), - MethodDef( AreTexturesResident), - MethodDef( Begin), - MethodDef( BindTexture), - MethodDef( Bitmap), - MethodDef( BlendFunc), - MethodDef( CallList), - MethodDef( CallLists), - MethodDef( Clear), - MethodDef( ClearAccum), - MethodDef( ClearColor), - MethodDef( ClearDepth), - MethodDef( ClearIndex), - MethodDef( ClearStencil), - MethodDef( ClipPlane), - MethodDef( Color3b), - MethodDef( Color3bv), - MethodDef( Color3d), - MethodDef( Color3dv), - MethodDef( Color3f), - MethodDef( Color3fv), - MethodDef( Color3i), - MethodDef( Color3iv), - MethodDef( Color3s), - MethodDef( Color3sv), - MethodDef( Color3ub), - MethodDef( Color3ubv), - MethodDef( Color3ui), - MethodDef( Color3uiv), - MethodDef( Color3us), - MethodDef( Color3usv), - MethodDef( Color4b), - MethodDef( Color4bv), - MethodDef( Color4d), - MethodDef( Color4dv), - MethodDef( Color4f), - MethodDef( Color4fv), - MethodDef( Color4i), - MethodDef( Color4iv), - MethodDef( Color4s), - MethodDef( Color4sv), - MethodDef( Color4ub), - MethodDef( Color4ubv), - MethodDef( Color4ui), - MethodDef( Color4uiv), - MethodDef( Color4us), - MethodDef( Color4usv), - MethodDef( ColorMask), - MethodDef( ColorMaterial), - MethodDef( CopyPixels), - MethodDef( CullFace), - MethodDef( DeleteLists), - MethodDef( DeleteTextures), - MethodDef( DepthFunc), - MethodDef( DepthMask), - MethodDef( DepthRange), - MethodDef( Disable), - MethodDef( DrawBuffer), - MethodDef( DrawPixels), - MethodDef( EdgeFlag), - MethodDef( EdgeFlagv), - MethodDef( Enable), - MethodDef( End), - MethodDef( EndList), - MethodDef( EvalCoord1d), - MethodDef( EvalCoord1dv), - MethodDef( EvalCoord1f), - MethodDef( EvalCoord1fv), - MethodDef( EvalCoord2d), - MethodDef( EvalCoord2dv), - MethodDef( EvalCoord2f), - MethodDef( EvalCoord2fv), - MethodDef( EvalMesh1), - MethodDef( EvalMesh2), - MethodDef( EvalPoint1), - MethodDef( EvalPoint2), - MethodDef( FeedbackBuffer), - MethodDef( Finish), - MethodDef( Flush), - MethodDef( Fogf), - MethodDef( Fogfv), - MethodDef( Fogi), - MethodDef( Fogiv), - MethodDef( FrontFace), - MethodDef( Frustum), - MethodDef( GenLists), - MethodDef( GenTextures), - MethodDef( GetBooleanv), - MethodDef( GetClipPlane), - MethodDef( GetDoublev), - MethodDef( GetError), - MethodDef( GetFloatv), - MethodDef( GetIntegerv), - MethodDef( GetLightfv), - MethodDef( GetLightiv), - MethodDef( GetMapdv), - MethodDef( GetMapfv), - MethodDef( GetMapiv), - MethodDef( GetMaterialfv), - MethodDef( GetMaterialiv), - MethodDef( GetPixelMapfv), - MethodDef( GetPixelMapuiv), - MethodDef( GetPixelMapusv), - MethodDef( GetPolygonStipple), - MethodDef( GetString), - MethodDef( GetTexEnvfv), - MethodDef( GetTexEnviv), - MethodDef( GetTexGendv), - MethodDef( GetTexGenfv), - MethodDef( GetTexGeniv), - MethodDef( GetTexImage), - MethodDef( GetTexLevelParameterfv), - MethodDef( GetTexLevelParameteriv), - MethodDef( GetTexParameterfv), - MethodDef( GetTexParameteriv), - MethodDef( Hint), - MethodDef( IndexMask), - MethodDef( Indexd), - MethodDef( Indexdv), - MethodDef( Indexf), - MethodDef( Indexfv), - MethodDef( Indexi), - MethodDef( Indexiv), - MethodDef( Indexs), - MethodDef( Indexsv), - MethodDef( InitNames), - MethodDef( IsEnabled), - MethodDef( IsList), - MethodDef( IsTexture), - MethodDef( LightModelf), - MethodDef( LightModelfv), - MethodDef( LightModeli), - MethodDef( LightModeliv), - MethodDef( Lightf), - MethodDef( Lightfv), - MethodDef( Lighti), - MethodDef( Lightiv), - MethodDef( LineStipple), - MethodDef( LineWidth), - MethodDef( ListBase), - MethodDef( LoadIdentity), - MethodDef( LoadMatrixd), - MethodDef( LoadMatrixf), - MethodDef( LoadName), - MethodDef( LogicOp), - MethodDef( Map1d), - MethodDef( Map1f), - MethodDef( Map2d), - MethodDef( Map2f), - MethodDef( MapGrid1d), - MethodDef( MapGrid1f), - MethodDef( MapGrid2d), - MethodDef( MapGrid2f), - MethodDef( Materialf), - MethodDef( Materialfv), - MethodDef( Materiali), - MethodDef( Materialiv), - MethodDef( MatrixMode), - MethodDef( MultMatrixd), - MethodDef( MultMatrixf), - MethodDef( NewList), - MethodDef( Normal3b), - MethodDef( Normal3bv), - MethodDef( Normal3d), - MethodDef( Normal3dv), - MethodDef( Normal3f), - MethodDef( Normal3fv), - MethodDef( Normal3i), - MethodDef( Normal3iv), - MethodDef( Normal3s), - MethodDef( Normal3sv), - MethodDef( Ortho), - MethodDef( PassThrough), - MethodDef( PixelMapfv), - MethodDef( PixelMapuiv), - MethodDef( PixelMapusv), - MethodDef( PixelStoref), - MethodDef( PixelStorei), - MethodDef( PixelTransferf), - MethodDef( PixelTransferi), - MethodDef( PixelZoom), - MethodDef( PointSize), - MethodDef( PolygonMode), - MethodDef( PolygonOffset), - MethodDef( PolygonStipple), - MethodDef( PopAttrib), - MethodDef( PopMatrix), - MethodDef( PopName), - MethodDef( PrioritizeTextures), - MethodDef( PushAttrib), - MethodDef( PushMatrix), - MethodDef( PushName), - MethodDef( RasterPos2d), - MethodDef( RasterPos2dv), - MethodDef( RasterPos2f), - MethodDef( RasterPos2fv), - MethodDef( RasterPos2i), - MethodDef( RasterPos2iv), - MethodDef( RasterPos2s), - MethodDef( RasterPos2sv), - MethodDef( RasterPos3d), - MethodDef( RasterPos3dv), - MethodDef( RasterPos3f), - MethodDef( RasterPos3fv), - MethodDef( RasterPos3i), - MethodDef( RasterPos3iv), - MethodDef( RasterPos3s), - MethodDef( RasterPos3sv), - MethodDef( RasterPos4d), - MethodDef( RasterPos4dv), - MethodDef( RasterPos4f), - MethodDef( RasterPos4fv), - MethodDef( RasterPos4i), - MethodDef( RasterPos4iv), - MethodDef( RasterPos4s), - MethodDef( RasterPos4sv), - MethodDef( ReadBuffer), - MethodDef( ReadPixels), - MethodDef( Rectd), - MethodDef( Rectdv), - MethodDef( Rectf), - MethodDef( Rectfv), - MethodDef( Recti), - MethodDef( Rectiv), - MethodDef( Rects), - MethodDef( Rectsv), - MethodDef( RenderMode), - MethodDef( Rotated), - MethodDef( Rotatef), - MethodDef( Scaled), - MethodDef( Scalef), - MethodDef( Scissor), - MethodDef( SelectBuffer), - MethodDef( ShadeModel), - MethodDef( StencilFunc), - MethodDef( StencilMask), - MethodDef( StencilOp), - MethodDef( TexCoord1d), - MethodDef( TexCoord1dv), - MethodDef( TexCoord1f), - MethodDef( TexCoord1fv), - MethodDef( TexCoord1i), - MethodDef( TexCoord1iv), - MethodDef( TexCoord1s), - MethodDef( TexCoord1sv), - MethodDef( TexCoord2d), - MethodDef( TexCoord2dv), - MethodDef( TexCoord2f), - MethodDef( TexCoord2fv), - MethodDef( TexCoord2i), - MethodDef( TexCoord2iv), - MethodDef( TexCoord2s), - MethodDef( TexCoord2sv), - MethodDef( TexCoord3d), - MethodDef( TexCoord3dv), - MethodDef( TexCoord3f), - MethodDef( TexCoord3fv), - MethodDef( TexCoord3i), - MethodDef( TexCoord3iv), - MethodDef( TexCoord3s), - MethodDef( TexCoord3sv), - MethodDef( TexCoord4d), - MethodDef( TexCoord4dv), - MethodDef( TexCoord4f), - MethodDef( TexCoord4fv), - MethodDef( TexCoord4i), - MethodDef( TexCoord4iv), - MethodDef( TexCoord4s), - MethodDef( TexCoord4sv), - MethodDef( TexEnvf), - MethodDef( TexEnvfv), - MethodDef( TexEnvi), - MethodDef( TexEnviv), - MethodDef( TexGend), - MethodDef( TexGendv), - MethodDef( TexGenf), - MethodDef( TexGenfv), - MethodDef( TexGeni), - MethodDef( TexGeniv), - MethodDef( TexImage1D), - MethodDef( TexImage2D), - MethodDef( TexParameterf), - MethodDef( TexParameterfv), - MethodDef( TexParameteri), - MethodDef( TexParameteriv), - MethodDef( Translated), - MethodDef( Translatef), - MethodDef( Vertex2d), - MethodDef( Vertex2dv), - MethodDef( Vertex2f), - MethodDef( Vertex2fv), - MethodDef( Vertex2i), - MethodDef( Vertex2iv), - MethodDef( Vertex2s), - MethodDef( Vertex2sv), - MethodDef( Vertex3d), - MethodDef( Vertex3dv), - MethodDef( Vertex3f), - MethodDef( Vertex3fv), - MethodDef( Vertex3i), - MethodDef( Vertex3iv), - MethodDef( Vertex3s), - MethodDef( Vertex3sv), - MethodDef( Vertex4d), - MethodDef( Vertex4dv), - MethodDef( Vertex4f), - MethodDef( Vertex4fv), - MethodDef( Vertex4i), - MethodDef( Vertex4iv), - MethodDef( Vertex4s), - MethodDef( Vertex4sv), - MethodDef( Viewport), -#endif - - {NULL, NULL} -}; - -PyObject *init_py_bgl(void) -{ - PyObject *mod= Py_InitModule(SUBMODULE(BGL), BGL_methods); - PyObject *dict= PyModule_GetDict(mod); - - Buffer_Type.ob_type= &PyType_Type; - - BPY_ADDCONST(dict, GL_CURRENT_BIT); - BPY_ADDCONST(dict, GL_POINT_BIT); - BPY_ADDCONST(dict, GL_LINE_BIT); - BPY_ADDCONST(dict, GL_POLYGON_BIT); - BPY_ADDCONST(dict, GL_POLYGON_STIPPLE_BIT); - BPY_ADDCONST(dict, GL_PIXEL_MODE_BIT); - BPY_ADDCONST(dict, GL_LIGHTING_BIT); - BPY_ADDCONST(dict, GL_FOG_BIT); - BPY_ADDCONST(dict, GL_DEPTH_BUFFER_BIT); - BPY_ADDCONST(dict, GL_ACCUM_BUFFER_BIT); - BPY_ADDCONST(dict, GL_STENCIL_BUFFER_BIT); - BPY_ADDCONST(dict, GL_VIEWPORT_BIT); - BPY_ADDCONST(dict, GL_TRANSFORM_BIT); - BPY_ADDCONST(dict, GL_ENABLE_BIT); - BPY_ADDCONST(dict, GL_COLOR_BUFFER_BIT); - BPY_ADDCONST(dict, GL_HINT_BIT); - BPY_ADDCONST(dict, GL_EVAL_BIT); - BPY_ADDCONST(dict, GL_LIST_BIT); - BPY_ADDCONST(dict, GL_TEXTURE_BIT); - BPY_ADDCONST(dict, GL_SCISSOR_BIT); - BPY_ADDCONST(dict, GL_ALL_ATTRIB_BITS); - - BPY_ADDCONST(dict, GL_FALSE); - BPY_ADDCONST(dict, GL_TRUE); - - BPY_ADDCONST(dict, GL_POINTS); - BPY_ADDCONST(dict, GL_LINES); - BPY_ADDCONST(dict, GL_LINE_LOOP); - BPY_ADDCONST(dict, GL_LINE_STRIP); - BPY_ADDCONST(dict, GL_TRIANGLES); - BPY_ADDCONST(dict, GL_TRIANGLE_STRIP); - BPY_ADDCONST(dict, GL_TRIANGLE_FAN); - BPY_ADDCONST(dict, GL_QUADS); - BPY_ADDCONST(dict, GL_QUAD_STRIP); - BPY_ADDCONST(dict, GL_POLYGON); - - BPY_ADDCONST(dict, GL_ACCUM); - BPY_ADDCONST(dict, GL_LOAD); - BPY_ADDCONST(dict, GL_RETURN); - BPY_ADDCONST(dict, GL_MULT); - BPY_ADDCONST(dict, GL_ADD); - - BPY_ADDCONST(dict, GL_NEVER); - BPY_ADDCONST(dict, GL_LESS); - BPY_ADDCONST(dict, GL_EQUAL); - BPY_ADDCONST(dict, GL_LEQUAL); - BPY_ADDCONST(dict, GL_GREATER); - BPY_ADDCONST(dict, GL_NOTEQUAL); - BPY_ADDCONST(dict, GL_GEQUAL); - BPY_ADDCONST(dict, GL_ALWAYS); - - BPY_ADDCONST(dict, GL_ZERO); - BPY_ADDCONST(dict, GL_ONE); - BPY_ADDCONST(dict, GL_SRC_COLOR); - BPY_ADDCONST(dict, GL_ONE_MINUS_SRC_COLOR); - BPY_ADDCONST(dict, GL_SRC_ALPHA); - BPY_ADDCONST(dict, GL_ONE_MINUS_SRC_ALPHA); - BPY_ADDCONST(dict, GL_DST_ALPHA); - BPY_ADDCONST(dict, GL_ONE_MINUS_DST_ALPHA); - - BPY_ADDCONST(dict, GL_DST_COLOR); - BPY_ADDCONST(dict, GL_ONE_MINUS_DST_COLOR); - BPY_ADDCONST(dict, GL_SRC_ALPHA_SATURATE); - - BPY_ADDCONST(dict, GL_NONE); - BPY_ADDCONST(dict, GL_FRONT_LEFT); - BPY_ADDCONST(dict, GL_FRONT_RIGHT); - BPY_ADDCONST(dict, GL_BACK_LEFT); - BPY_ADDCONST(dict, GL_BACK_RIGHT); - BPY_ADDCONST(dict, GL_FRONT); - BPY_ADDCONST(dict, GL_BACK); - BPY_ADDCONST(dict, GL_LEFT); - BPY_ADDCONST(dict, GL_RIGHT); - BPY_ADDCONST(dict, GL_FRONT_AND_BACK); - BPY_ADDCONST(dict, GL_AUX0); - BPY_ADDCONST(dict, GL_AUX1); - BPY_ADDCONST(dict, GL_AUX2); - BPY_ADDCONST(dict, GL_AUX3); - - BPY_ADDCONST(dict, GL_NO_ERROR); - BPY_ADDCONST(dict, GL_INVALID_ENUM); - BPY_ADDCONST(dict, GL_INVALID_VALUE); - BPY_ADDCONST(dict, GL_INVALID_OPERATION); - BPY_ADDCONST(dict, GL_STACK_OVERFLOW); - BPY_ADDCONST(dict, GL_STACK_UNDERFLOW); - BPY_ADDCONST(dict, GL_OUT_OF_MEMORY); - - BPY_ADDCONST(dict, GL_2D); - BPY_ADDCONST(dict, GL_3D); - BPY_ADDCONST(dict, GL_3D_COLOR); - BPY_ADDCONST(dict, GL_3D_COLOR_TEXTURE); - BPY_ADDCONST(dict, GL_4D_COLOR_TEXTURE); - - BPY_ADDCONST(dict, GL_PASS_THROUGH_TOKEN); - BPY_ADDCONST(dict, GL_POINT_TOKEN); - BPY_ADDCONST(dict, GL_LINE_TOKEN); - BPY_ADDCONST(dict, GL_POLYGON_TOKEN); - BPY_ADDCONST(dict, GL_BITMAP_TOKEN); - BPY_ADDCONST(dict, GL_DRAW_PIXEL_TOKEN); - BPY_ADDCONST(dict, GL_COPY_PIXEL_TOKEN); - BPY_ADDCONST(dict, GL_LINE_RESET_TOKEN); - - BPY_ADDCONST(dict, GL_EXP); - BPY_ADDCONST(dict, GL_EXP2); - - BPY_ADDCONST(dict, GL_CW); - BPY_ADDCONST(dict, GL_CCW); - - BPY_ADDCONST(dict, GL_COEFF); - BPY_ADDCONST(dict, GL_ORDER); - BPY_ADDCONST(dict, GL_DOMAIN); - - BPY_ADDCONST(dict, GL_PIXEL_MAP_I_TO_I); - BPY_ADDCONST(dict, GL_PIXEL_MAP_S_TO_S); - BPY_ADDCONST(dict, GL_PIXEL_MAP_I_TO_R); - BPY_ADDCONST(dict, GL_PIXEL_MAP_I_TO_G); - BPY_ADDCONST(dict, GL_PIXEL_MAP_I_TO_B); - BPY_ADDCONST(dict, GL_PIXEL_MAP_I_TO_A); - BPY_ADDCONST(dict, GL_PIXEL_MAP_R_TO_R); - BPY_ADDCONST(dict, GL_PIXEL_MAP_G_TO_G); - BPY_ADDCONST(dict, GL_PIXEL_MAP_B_TO_B); - BPY_ADDCONST(dict, GL_PIXEL_MAP_A_TO_A); - - BPY_ADDCONST(dict, GL_CURRENT_COLOR); - BPY_ADDCONST(dict, GL_CURRENT_INDEX); - BPY_ADDCONST(dict, GL_CURRENT_NORMAL); - BPY_ADDCONST(dict, GL_CURRENT_TEXTURE_COORDS); - BPY_ADDCONST(dict, GL_CURRENT_RASTER_COLOR); - BPY_ADDCONST(dict, GL_CURRENT_RASTER_INDEX); - BPY_ADDCONST(dict, GL_CURRENT_RASTER_TEXTURE_COORDS); - BPY_ADDCONST(dict, GL_CURRENT_RASTER_POSITION); - BPY_ADDCONST(dict, GL_CURRENT_RASTER_POSITION_VALID); - BPY_ADDCONST(dict, GL_CURRENT_RASTER_DISTANCE); - BPY_ADDCONST(dict, GL_POINT_SMOOTH); - BPY_ADDCONST(dict, GL_POINT_SIZE); - BPY_ADDCONST(dict, GL_POINT_SIZE_RANGE); - BPY_ADDCONST(dict, GL_POINT_SIZE_GRANULARITY); - BPY_ADDCONST(dict, GL_LINE_SMOOTH); - BPY_ADDCONST(dict, GL_LINE_WIDTH); - BPY_ADDCONST(dict, GL_LINE_WIDTH_RANGE); - BPY_ADDCONST(dict, GL_LINE_WIDTH_GRANULARITY); - BPY_ADDCONST(dict, GL_LINE_STIPPLE); - BPY_ADDCONST(dict, GL_LINE_STIPPLE_PATTERN); - BPY_ADDCONST(dict, GL_LINE_STIPPLE_REPEAT); - BPY_ADDCONST(dict, GL_LIST_MODE); - BPY_ADDCONST(dict, GL_MAX_LIST_NESTING); - BPY_ADDCONST(dict, GL_LIST_BASE); - BPY_ADDCONST(dict, GL_LIST_INDEX); - BPY_ADDCONST(dict, GL_POLYGON_MODE); - BPY_ADDCONST(dict, GL_POLYGON_SMOOTH); - BPY_ADDCONST(dict, GL_POLYGON_STIPPLE); - BPY_ADDCONST(dict, GL_EDGE_FLAG); - BPY_ADDCONST(dict, GL_CULL_FACE); - BPY_ADDCONST(dict, GL_CULL_FACE_MODE); - BPY_ADDCONST(dict, GL_FRONT_FACE); - BPY_ADDCONST(dict, GL_LIGHTING); - BPY_ADDCONST(dict, GL_LIGHT_MODEL_LOCAL_VIEWER); - BPY_ADDCONST(dict, GL_LIGHT_MODEL_TWO_SIDE); - BPY_ADDCONST(dict, GL_LIGHT_MODEL_AMBIENT); - BPY_ADDCONST(dict, GL_SHADE_MODEL); - BPY_ADDCONST(dict, GL_COLOR_MATERIAL_FACE); - BPY_ADDCONST(dict, GL_COLOR_MATERIAL_PARAMETER); - BPY_ADDCONST(dict, GL_COLOR_MATERIAL); - BPY_ADDCONST(dict, GL_FOG); - BPY_ADDCONST(dict, GL_FOG_INDEX); - BPY_ADDCONST(dict, GL_FOG_DENSITY); - BPY_ADDCONST(dict, GL_FOG_START); - BPY_ADDCONST(dict, GL_FOG_END); - BPY_ADDCONST(dict, GL_FOG_MODE); - BPY_ADDCONST(dict, GL_FOG_COLOR); - BPY_ADDCONST(dict, GL_DEPTH_RANGE); - BPY_ADDCONST(dict, GL_DEPTH_TEST); - BPY_ADDCONST(dict, GL_DEPTH_WRITEMASK); - BPY_ADDCONST(dict, GL_DEPTH_CLEAR_VALUE); - BPY_ADDCONST(dict, GL_DEPTH_FUNC); - BPY_ADDCONST(dict, GL_ACCUM_CLEAR_VALUE); - BPY_ADDCONST(dict, GL_STENCIL_TEST); - BPY_ADDCONST(dict, GL_STENCIL_CLEAR_VALUE); - BPY_ADDCONST(dict, GL_STENCIL_FUNC); - BPY_ADDCONST(dict, GL_STENCIL_VALUE_MASK); - BPY_ADDCONST(dict, GL_STENCIL_FAIL); - BPY_ADDCONST(dict, GL_STENCIL_PASS_DEPTH_FAIL); - BPY_ADDCONST(dict, GL_STENCIL_PASS_DEPTH_PASS); - BPY_ADDCONST(dict, GL_STENCIL_REF); - BPY_ADDCONST(dict, GL_STENCIL_WRITEMASK); - BPY_ADDCONST(dict, GL_MATRIX_MODE); - BPY_ADDCONST(dict, GL_NORMALIZE); - BPY_ADDCONST(dict, GL_VIEWPORT); - BPY_ADDCONST(dict, GL_MODELVIEW_STACK_DEPTH); - BPY_ADDCONST(dict, GL_PROJECTION_STACK_DEPTH); - BPY_ADDCONST(dict, GL_TEXTURE_STACK_DEPTH); - BPY_ADDCONST(dict, GL_MODELVIEW_MATRIX); - BPY_ADDCONST(dict, GL_PROJECTION_MATRIX); - BPY_ADDCONST(dict, GL_TEXTURE_MATRIX); - BPY_ADDCONST(dict, GL_ATTRIB_STACK_DEPTH); - BPY_ADDCONST(dict, GL_ALPHA_TEST); - BPY_ADDCONST(dict, GL_ALPHA_TEST_FUNC); - BPY_ADDCONST(dict, GL_ALPHA_TEST_REF); - BPY_ADDCONST(dict, GL_DITHER); - BPY_ADDCONST(dict, GL_BLEND_DST); - BPY_ADDCONST(dict, GL_BLEND_SRC); - BPY_ADDCONST(dict, GL_BLEND); - BPY_ADDCONST(dict, GL_LOGIC_OP_MODE); - BPY_ADDCONST(dict, GL_LOGIC_OP); - BPY_ADDCONST(dict, GL_AUX_BUFFERS); - BPY_ADDCONST(dict, GL_DRAW_BUFFER); - BPY_ADDCONST(dict, GL_READ_BUFFER); - BPY_ADDCONST(dict, GL_SCISSOR_BOX); - BPY_ADDCONST(dict, GL_SCISSOR_TEST); - BPY_ADDCONST(dict, GL_INDEX_CLEAR_VALUE); - BPY_ADDCONST(dict, GL_INDEX_WRITEMASK); - BPY_ADDCONST(dict, GL_COLOR_CLEAR_VALUE); - BPY_ADDCONST(dict, GL_COLOR_WRITEMASK); - BPY_ADDCONST(dict, GL_INDEX_MODE); - BPY_ADDCONST(dict, GL_RGBA_MODE); - BPY_ADDCONST(dict, GL_DOUBLEBUFFER); - BPY_ADDCONST(dict, GL_STEREO); - BPY_ADDCONST(dict, GL_RENDER_MODE); - BPY_ADDCONST(dict, GL_PERSPECTIVE_CORRECTION_HINT); - BPY_ADDCONST(dict, GL_POINT_SMOOTH_HINT); - BPY_ADDCONST(dict, GL_LINE_SMOOTH_HINT); - BPY_ADDCONST(dict, GL_POLYGON_SMOOTH_HINT); - BPY_ADDCONST(dict, GL_FOG_HINT); - BPY_ADDCONST(dict, GL_TEXTURE_GEN_S); - BPY_ADDCONST(dict, GL_TEXTURE_GEN_T); - BPY_ADDCONST(dict, GL_TEXTURE_GEN_R); - BPY_ADDCONST(dict, GL_TEXTURE_GEN_Q); - BPY_ADDCONST(dict, GL_PIXEL_MAP_I_TO_I_SIZE); - BPY_ADDCONST(dict, GL_PIXEL_MAP_S_TO_S_SIZE); - BPY_ADDCONST(dict, GL_PIXEL_MAP_I_TO_R_SIZE); - BPY_ADDCONST(dict, GL_PIXEL_MAP_I_TO_G_SIZE); - BPY_ADDCONST(dict, GL_PIXEL_MAP_I_TO_B_SIZE); - BPY_ADDCONST(dict, GL_PIXEL_MAP_I_TO_A_SIZE); - BPY_ADDCONST(dict, GL_PIXEL_MAP_R_TO_R_SIZE); - BPY_ADDCONST(dict, GL_PIXEL_MAP_G_TO_G_SIZE); - BPY_ADDCONST(dict, GL_PIXEL_MAP_B_TO_B_SIZE); - BPY_ADDCONST(dict, GL_PIXEL_MAP_A_TO_A_SIZE); - BPY_ADDCONST(dict, GL_UNPACK_SWAP_BYTES); - BPY_ADDCONST(dict, GL_UNPACK_LSB_FIRST); - BPY_ADDCONST(dict, GL_UNPACK_ROW_LENGTH); - BPY_ADDCONST(dict, GL_UNPACK_SKIP_ROWS); - BPY_ADDCONST(dict, GL_UNPACK_SKIP_PIXELS); - BPY_ADDCONST(dict, GL_UNPACK_ALIGNMENT); - BPY_ADDCONST(dict, GL_PACK_SWAP_BYTES); - BPY_ADDCONST(dict, GL_PACK_LSB_FIRST); - BPY_ADDCONST(dict, GL_PACK_ROW_LENGTH); - BPY_ADDCONST(dict, GL_PACK_SKIP_ROWS); - BPY_ADDCONST(dict, GL_PACK_SKIP_PIXELS); - BPY_ADDCONST(dict, GL_PACK_ALIGNMENT); - BPY_ADDCONST(dict, GL_MAP_COLOR); - BPY_ADDCONST(dict, GL_MAP_STENCIL); - BPY_ADDCONST(dict, GL_INDEX_SHIFT); - BPY_ADDCONST(dict, GL_INDEX_OFFSET); - BPY_ADDCONST(dict, GL_RED_SCALE); - BPY_ADDCONST(dict, GL_RED_BIAS); - BPY_ADDCONST(dict, GL_ZOOM_X); - BPY_ADDCONST(dict, GL_ZOOM_Y); - BPY_ADDCONST(dict, GL_GREEN_SCALE); - BPY_ADDCONST(dict, GL_GREEN_BIAS); - BPY_ADDCONST(dict, GL_BLUE_SCALE); - BPY_ADDCONST(dict, GL_BLUE_BIAS); - BPY_ADDCONST(dict, GL_ALPHA_SCALE); - BPY_ADDCONST(dict, GL_ALPHA_BIAS); - BPY_ADDCONST(dict, GL_DEPTH_SCALE); - BPY_ADDCONST(dict, GL_DEPTH_BIAS); - BPY_ADDCONST(dict, GL_MAX_EVAL_ORDER); - BPY_ADDCONST(dict, GL_MAX_LIGHTS); - BPY_ADDCONST(dict, GL_MAX_CLIP_PLANES); - BPY_ADDCONST(dict, GL_MAX_TEXTURE_SIZE); - BPY_ADDCONST(dict, GL_MAX_PIXEL_MAP_TABLE); - BPY_ADDCONST(dict, GL_MAX_ATTRIB_STACK_DEPTH); - BPY_ADDCONST(dict, GL_MAX_MODELVIEW_STACK_DEPTH); - BPY_ADDCONST(dict, GL_MAX_NAME_STACK_DEPTH); - BPY_ADDCONST(dict, GL_MAX_PROJECTION_STACK_DEPTH); - BPY_ADDCONST(dict, GL_MAX_TEXTURE_STACK_DEPTH); - BPY_ADDCONST(dict, GL_MAX_VIEWPORT_DIMS); - BPY_ADDCONST(dict, GL_SUBPIXEL_BITS); - BPY_ADDCONST(dict, GL_INDEX_BITS); - BPY_ADDCONST(dict, GL_RED_BITS); - BPY_ADDCONST(dict, GL_GREEN_BITS); - BPY_ADDCONST(dict, GL_BLUE_BITS); - BPY_ADDCONST(dict, GL_ALPHA_BITS); - BPY_ADDCONST(dict, GL_DEPTH_BITS); - BPY_ADDCONST(dict, GL_STENCIL_BITS); - BPY_ADDCONST(dict, GL_ACCUM_RED_BITS); - BPY_ADDCONST(dict, GL_ACCUM_GREEN_BITS); - BPY_ADDCONST(dict, GL_ACCUM_BLUE_BITS); - BPY_ADDCONST(dict, GL_ACCUM_ALPHA_BITS); - BPY_ADDCONST(dict, GL_NAME_STACK_DEPTH); - BPY_ADDCONST(dict, GL_AUTO_NORMAL); - BPY_ADDCONST(dict, GL_MAP1_COLOR_4); - BPY_ADDCONST(dict, GL_MAP1_INDEX); - BPY_ADDCONST(dict, GL_MAP1_NORMAL); - BPY_ADDCONST(dict, GL_MAP1_TEXTURE_COORD_1); - BPY_ADDCONST(dict, GL_MAP1_TEXTURE_COORD_2); - BPY_ADDCONST(dict, GL_MAP1_TEXTURE_COORD_3); - BPY_ADDCONST(dict, GL_MAP1_TEXTURE_COORD_4); - BPY_ADDCONST(dict, GL_MAP1_VERTEX_3); - BPY_ADDCONST(dict, GL_MAP1_VERTEX_4); - BPY_ADDCONST(dict, GL_MAP2_COLOR_4); - BPY_ADDCONST(dict, GL_MAP2_INDEX); - BPY_ADDCONST(dict, GL_MAP2_NORMAL); - BPY_ADDCONST(dict, GL_MAP2_TEXTURE_COORD_1); - BPY_ADDCONST(dict, GL_MAP2_TEXTURE_COORD_2); - BPY_ADDCONST(dict, GL_MAP2_TEXTURE_COORD_3); - BPY_ADDCONST(dict, GL_MAP2_TEXTURE_COORD_4); - BPY_ADDCONST(dict, GL_MAP2_VERTEX_3); - BPY_ADDCONST(dict, GL_MAP2_VERTEX_4); - BPY_ADDCONST(dict, GL_MAP1_GRID_DOMAIN); - BPY_ADDCONST(dict, GL_MAP1_GRID_SEGMENTS); - BPY_ADDCONST(dict, GL_MAP2_GRID_DOMAIN); - BPY_ADDCONST(dict, GL_MAP2_GRID_SEGMENTS); - BPY_ADDCONST(dict, GL_TEXTURE_1D); - BPY_ADDCONST(dict, GL_TEXTURE_2D); - - BPY_ADDCONST(dict, GL_TEXTURE_WIDTH); - BPY_ADDCONST(dict, GL_TEXTURE_HEIGHT); - BPY_ADDCONST(dict, GL_TEXTURE_COMPONENTS); - BPY_ADDCONST(dict, GL_TEXTURE_BORDER_COLOR); - BPY_ADDCONST(dict, GL_TEXTURE_BORDER); - - BPY_ADDCONST(dict, GL_DONT_CARE); - BPY_ADDCONST(dict, GL_FASTEST); - BPY_ADDCONST(dict, GL_NICEST); - - BPY_ADDCONST(dict, GL_AMBIENT); - BPY_ADDCONST(dict, GL_DIFFUSE); - BPY_ADDCONST(dict, GL_SPECULAR); - BPY_ADDCONST(dict, GL_POSITION); - BPY_ADDCONST(dict, GL_SPOT_DIRECTION); - BPY_ADDCONST(dict, GL_SPOT_EXPONENT); - BPY_ADDCONST(dict, GL_SPOT_CUTOFF); - BPY_ADDCONST(dict, GL_CONSTANT_ATTENUATION); - BPY_ADDCONST(dict, GL_LINEAR_ATTENUATION); - BPY_ADDCONST(dict, GL_QUADRATIC_ATTENUATION); - - BPY_ADDCONST(dict, GL_COMPILE); - BPY_ADDCONST(dict, GL_COMPILE_AND_EXECUTE); - - BPY_ADDCONST(dict, GL_BYTE); - BPY_ADDCONST(dict, GL_UNSIGNED_BYTE); - BPY_ADDCONST(dict, GL_SHORT); - BPY_ADDCONST(dict, GL_UNSIGNED_SHORT); - BPY_ADDCONST(dict, GL_INT); - BPY_ADDCONST(dict, GL_UNSIGNED_INT); - BPY_ADDCONST(dict, GL_FLOAT); - BPY_ADDCONST(dict, GL_2_BYTES); - BPY_ADDCONST(dict, GL_3_BYTES); - BPY_ADDCONST(dict, GL_4_BYTES); - - BPY_ADDCONST(dict, GL_CLEAR); - BPY_ADDCONST(dict, GL_AND); - BPY_ADDCONST(dict, GL_AND_REVERSE); - BPY_ADDCONST(dict, GL_COPY); - BPY_ADDCONST(dict, GL_AND_INVERTED); - BPY_ADDCONST(dict, GL_NOOP); - BPY_ADDCONST(dict, GL_XOR); - BPY_ADDCONST(dict, GL_OR); - BPY_ADDCONST(dict, GL_NOR); - BPY_ADDCONST(dict, GL_EQUIV); - BPY_ADDCONST(dict, GL_INVERT); - BPY_ADDCONST(dict, GL_OR_REVERSE); - BPY_ADDCONST(dict, GL_COPY_INVERTED); - BPY_ADDCONST(dict, GL_OR_INVERTED); - BPY_ADDCONST(dict, GL_NAND); - BPY_ADDCONST(dict, GL_SET); - - BPY_ADDCONST(dict, GL_EMISSION); - BPY_ADDCONST(dict, GL_SHININESS); - BPY_ADDCONST(dict, GL_AMBIENT_AND_DIFFUSE); - BPY_ADDCONST(dict, GL_COLOR_INDEXES); - - BPY_ADDCONST(dict, GL_MODELVIEW); - BPY_ADDCONST(dict, GL_PROJECTION); - BPY_ADDCONST(dict, GL_TEXTURE); - - BPY_ADDCONST(dict, GL_COLOR); - BPY_ADDCONST(dict, GL_DEPTH); - BPY_ADDCONST(dict, GL_STENCIL); - - BPY_ADDCONST(dict, GL_COLOR_INDEX); - BPY_ADDCONST(dict, GL_STENCIL_INDEX); - BPY_ADDCONST(dict, GL_DEPTH_COMPONENT); - BPY_ADDCONST(dict, GL_RED); - BPY_ADDCONST(dict, GL_GREEN); - BPY_ADDCONST(dict, GL_BLUE); - BPY_ADDCONST(dict, GL_ALPHA); - BPY_ADDCONST(dict, GL_RGB); - BPY_ADDCONST(dict, GL_RGBA); - BPY_ADDCONST(dict, GL_LUMINANCE); - BPY_ADDCONST(dict, GL_LUMINANCE_ALPHA); - - BPY_ADDCONST(dict, GL_BITMAP); - - BPY_ADDCONST(dict, GL_POINT); - BPY_ADDCONST(dict, GL_LINE); - BPY_ADDCONST(dict, GL_FILL); - - BPY_ADDCONST(dict, GL_RENDER); - BPY_ADDCONST(dict, GL_FEEDBACK); - BPY_ADDCONST(dict, GL_SELECT); - - BPY_ADDCONST(dict, GL_FLAT); - BPY_ADDCONST(dict, GL_SMOOTH); - - BPY_ADDCONST(dict, GL_KEEP); - BPY_ADDCONST(dict, GL_REPLACE); - BPY_ADDCONST(dict, GL_INCR); - BPY_ADDCONST(dict, GL_DECR); - - BPY_ADDCONST(dict, GL_VENDOR); - BPY_ADDCONST(dict, GL_RENDERER); - BPY_ADDCONST(dict, GL_VERSION); - BPY_ADDCONST(dict, GL_EXTENSIONS); - - BPY_ADDCONST(dict, GL_S); - BPY_ADDCONST(dict, GL_T); - BPY_ADDCONST(dict, GL_R); - BPY_ADDCONST(dict, GL_Q); - - BPY_ADDCONST(dict, GL_MODULATE); - BPY_ADDCONST(dict, GL_DECAL); - - BPY_ADDCONST(dict, GL_TEXTURE_ENV_MODE); - BPY_ADDCONST(dict, GL_TEXTURE_ENV_COLOR); - - BPY_ADDCONST(dict, GL_TEXTURE_ENV); - - BPY_ADDCONST(dict, GL_EYE_LINEAR); - BPY_ADDCONST(dict, GL_OBJECT_LINEAR); - BPY_ADDCONST(dict, GL_SPHERE_MAP); - - BPY_ADDCONST(dict, GL_TEXTURE_GEN_MODE); - BPY_ADDCONST(dict, GL_OBJECT_PLANE); - BPY_ADDCONST(dict, GL_EYE_PLANE); - - BPY_ADDCONST(dict, GL_NEAREST); - BPY_ADDCONST(dict, GL_LINEAR); - - BPY_ADDCONST(dict, GL_NEAREST_MIPMAP_NEAREST); - BPY_ADDCONST(dict, GL_LINEAR_MIPMAP_NEAREST); - BPY_ADDCONST(dict, GL_NEAREST_MIPMAP_LINEAR); - BPY_ADDCONST(dict, GL_LINEAR_MIPMAP_LINEAR); - - BPY_ADDCONST(dict, GL_TEXTURE_MAG_FILTER); - BPY_ADDCONST(dict, GL_TEXTURE_MIN_FILTER); - BPY_ADDCONST(dict, GL_TEXTURE_WRAP_S); - BPY_ADDCONST(dict, GL_TEXTURE_WRAP_T); - - BPY_ADDCONST(dict, GL_CLAMP); - BPY_ADDCONST(dict, GL_REPEAT); - - BPY_ADDCONST(dict, GL_CLIP_PLANE0); - BPY_ADDCONST(dict, GL_CLIP_PLANE1); - BPY_ADDCONST(dict, GL_CLIP_PLANE2); - BPY_ADDCONST(dict, GL_CLIP_PLANE3); - BPY_ADDCONST(dict, GL_CLIP_PLANE4); - BPY_ADDCONST(dict, GL_CLIP_PLANE5); - - BPY_ADDCONST(dict, GL_LIGHT0); - BPY_ADDCONST(dict, GL_LIGHT1); - BPY_ADDCONST(dict, GL_LIGHT2); - BPY_ADDCONST(dict, GL_LIGHT3); - BPY_ADDCONST(dict, GL_LIGHT4); - BPY_ADDCONST(dict, GL_LIGHT5); - BPY_ADDCONST(dict, GL_LIGHT6); - BPY_ADDCONST(dict, GL_LIGHT7); - - BPY_ADDCONST(dict, GL_POLYGON_OFFSET_UNITS); - BPY_ADDCONST(dict, GL_POLYGON_OFFSET_POINT); - BPY_ADDCONST(dict, GL_POLYGON_OFFSET_LINE); - BPY_ADDCONST(dict, GL_POLYGON_OFFSET_FILL); - BPY_ADDCONST(dict, GL_POLYGON_OFFSET_FACTOR); - - BPY_ADDCONST(dict, GL_TEXTURE_PRIORITY); - BPY_ADDCONST(dict, GL_TEXTURE_RESIDENT); - BPY_ADDCONST(dict, GL_TEXTURE_BINDING_1D); - BPY_ADDCONST(dict, GL_TEXTURE_BINDING_2D); - - return mod; -} - -void initDraw(void) -{ - init_py_draw(); - init_py_bgl(); -} |