/* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). * Version 1.3.23 * * This file is not intended to be easily readable and contains a number of * coding conventions designed to improve portability and efficiency. Do not make * changes to this file unless you know what you are doing--modify the SWIG * interface file instead. * ----------------------------------------------------------------------------- */ #define SWIGPYTHON #ifndef SWIG_TEMPLATE_DISAMBIGUATOR # if defined(__SUNPRO_CC) # define SWIG_TEMPLATE_DISAMBIGUATOR template # else # define SWIG_TEMPLATE_DISAMBIGUATOR # endif #endif #include /*********************************************************************** * common.swg * * This file contains generic SWIG runtime support for pointer * type checking as well as a few commonly used macros to control * external linkage. * * Author : David Beazley (beazley@cs.uchicago.edu) * * Copyright (c) 1999-2000, The University of Chicago * * This file may be freely redistributed without license or fee provided * this copyright message remains intact. ************************************************************************/ #include #if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # if !defined(STATIC_LINKED) # define SWIGEXPORT(a) __declspec(dllexport) a # else # define SWIGEXPORT(a) a # endif #else # define SWIGEXPORT(a) a #endif #define SWIGRUNTIME(x) static x #ifndef SWIGINLINE #if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) # define SWIGINLINE inline #else # define SWIGINLINE #endif #endif /* This should only be incremented when either the layout of swig_type_info changes, or for whatever reason, the runtime changes incompatibly */ #define SWIG_RUNTIME_VERSION "1" /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */ #ifdef SWIG_TYPE_TABLE #define SWIG_QUOTE_STRING(x) #x #define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x) #define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE) #else #define SWIG_TYPE_TABLE_NAME #endif #ifdef __cplusplus extern "C" { #endif typedef void *(*swig_converter_func)(void *); typedef struct swig_type_info *(*swig_dycast_func)(void **); typedef struct swig_type_info { const char *name; swig_converter_func converter; const char *str; void *clientdata; swig_dycast_func dcast; struct swig_type_info *next; struct swig_type_info *prev; } swig_type_info; static swig_type_info *swig_type_list = 0; static swig_type_info **swig_type_list_handle = &swig_type_list; /* Compare two type names skipping the space characters, therefore "char*" == "char *" and "Class" == "Class", etc. Return 0 when the two name types are equivalent, as in strncmp, but skipping ' '. */ static int SWIG_TypeNameComp(const char *f1, const char *l1, const char *f2, const char *l2) { for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) { while ((*f1 == ' ') && (f1 != l1)) ++f1; while ((*f2 == ' ') && (f2 != l2)) ++f2; if (*f1 != *f2) return *f1 - *f2; } return (l1 - f1) - (l2 - f2); } /* Check type equivalence in a name list like ||... */ static int SWIG_TypeEquiv(const char *nb, const char *tb) { int equiv = 0; const char* te = tb + strlen(tb); const char* ne = nb; while (!equiv && *ne) { for (nb = ne; *ne; ++ne) { if (*ne == '|') break; } equiv = SWIG_TypeNameComp(nb, ne, tb, te) == 0; if (*ne) ++ne; } return equiv; } /* Register a type mapping with the type-checking */ static swig_type_info * SWIG_TypeRegister(swig_type_info *ti) { swig_type_info *tc, *head, *ret, *next; /* Check to see if this type has already been registered */ tc = *swig_type_list_handle; while (tc) { /* check simple type equivalence */ int typeequiv = (strcmp(tc->name, ti->name) == 0); /* check full type equivalence, resolving typedefs */ if (!typeequiv) { /* only if tc is not a typedef (no '|' on it) */ if (tc->str && ti->str && !strstr(tc->str,"|")) { typeequiv = SWIG_TypeEquiv(ti->str,tc->str); } } if (typeequiv) { /* Already exists in the table. Just add additional types to the list */ if (ti->clientdata) tc->clientdata = ti->clientdata; head = tc; next = tc->next; goto l1; } tc = tc->prev; } head = ti; next = 0; /* Place in list */ ti->prev = *swig_type_list_handle; *swig_type_list_handle = ti; /* Build linked lists */ l1: ret = head; tc = ti + 1; /* Patch up the rest of the links */ while (tc->name) { head->next = tc; tc->prev = head; head = tc; tc++; } if (next) next->prev = head; head->next = next; return ret; } /* Check the typename */ static swig_type_info * SWIG_TypeCheck(char *c, swig_type_info *ty) { swig_type_info *s; if (!ty) return 0; /* Void pointer */ s = ty->next; /* First element always just a name */ do { if (strcmp(s->name,c) == 0) { if (s == ty->next) return s; /* Move s to the top of the linked list */ s->prev->next = s->next; if (s->next) { s->next->prev = s->prev; } /* Insert s as second element in the list */ s->next = ty->next; if (ty->next) ty->next->prev = s; ty->next = s; s->prev = ty; return s; } s = s->next; } while (s && (s != ty->next)); return 0; } /* Cast a pointer up an inheritance hierarchy */ static SWIGINLINE void * SWIG_TypeCast(swig_type_info *ty, void *ptr) { if ((!ty) || (!ty->converter)) return ptr; return (*ty->converter)(ptr); } /* Dynamic pointer casting. Down an inheritance hierarchy */ static swig_type_info * SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) { swig_type_info *lastty = ty; if (!ty || !ty->dcast) return ty; while (ty && (ty->dcast)) { ty = (*ty->dcast)(ptr); if (ty) lastty = ty; } return lastty; } /* Return the name associated with this type */ static SWIGINLINE const char * SWIG_TypeName(const swig_type_info *ty) { return ty->name; } /* Return the pretty name associated with this type, that is an unmangled type name in a form presentable to the user. */ static const char * SWIG_TypePrettyName(const swig_type_info *type) { /* The "str" field contains the equivalent pretty names of the type, separated by vertical-bar characters. We choose to print the last name, as it is often (?) the most specific. */ if (type->str != NULL) { const char *last_name = type->str; const char *s; for (s = type->str; *s; s++) if (*s == '|') last_name = s+1; return last_name; } else return type->name; } /* Search for a swig_type_info structure */ static swig_type_info * SWIG_TypeQuery(const char *name) { swig_type_info *ty = *swig_type_list_handle; while (ty) { if (ty->str && (SWIG_TypeEquiv(ty->str,name))) return ty; if (ty->name && (strcmp(name,ty->name) == 0)) return ty; ty = ty->prev; } return 0; } /* Set the clientdata field for a type */ static void SWIG_TypeClientData(swig_type_info *ti, void *clientdata) { swig_type_info *tc, *equiv; if (ti->clientdata) return; /* if (ti->clientdata == clientdata) return; */ ti->clientdata = clientdata; equiv = ti->next; while (equiv) { if (!equiv->converter) { tc = *swig_type_list_handle; while (tc) { if ((strcmp(tc->name, equiv->name) == 0)) SWIG_TypeClientData(tc,clientdata); tc = tc->prev; } } equiv = equiv->next; } } /* Pack binary data into a string */ static char * SWIG_PackData(char *c, void *ptr, size_t sz) { static char hex[17] = "0123456789abcdef"; unsigned char *u = (unsigned char *) ptr; const unsigned char *eu = u + sz; register unsigned char uu; for (; u != eu; ++u) { uu = *u; *(c++) = hex[(uu & 0xf0) >> 4]; *(c++) = hex[uu & 0xf]; } return c; } /* Unpack binary data from a string */ static char * SWIG_UnpackData(char *c, void *ptr, size_t sz) { register unsigned char uu = 0; register int d; unsigned char *u = (unsigned char *) ptr; const unsigned char *eu = u + sz; for (; u != eu; ++u) { d = *(c++); if ((d >= '0') && (d <= '9')) uu = ((d - '0') << 4); else if ((d >= 'a') && (d <= 'f')) uu = ((d - ('a'-10)) << 4); d = *(c++); if ((d >= '0') && (d <= '9')) uu |= (d - '0'); else if ((d >= 'a') && (d <= 'f')) uu |= (d - ('a'-10)); *u = uu; } return c; } /* This function will propagate the clientdata field of type to * any new swig_type_info structures that have been added into the list * of equivalent types. It is like calling * SWIG_TypeClientData(type, clientdata) a second time. */ static void SWIG_PropagateClientData(swig_type_info *type) { swig_type_info *equiv = type->next; swig_type_info *tc; if (!type->clientdata) return; while (equiv) { if (!equiv->converter) { tc = *swig_type_list_handle; while (tc) { if ((strcmp(tc->name, equiv->name) == 0) && !tc->clientdata) SWIG_TypeClientData(tc, type->clientdata); tc = tc->prev; } } equiv = equiv->next; } } #ifdef __cplusplus } #endif /* ----------------------------------------------------------------------------- * SWIG API. Portion that goes into the runtime * ----------------------------------------------------------------------------- */ #ifdef __cplusplus extern "C" { #endif /* ----------------------------------------------------------------------------- * for internal method declarations * ----------------------------------------------------------------------------- */ #ifndef SWIGINTERN #define SWIGINTERN static #endif #ifndef SWIGINTERNSHORT #ifdef __cplusplus #define SWIGINTERNSHORT static inline #else /* C case */ #define SWIGINTERNSHORT static #endif /* __cplusplus */ #endif /* Common SWIG API */ #define SWIG_ConvertPtr(obj, pp, type, flags) SWIG_Python_ConvertPtr(obj, pp, type, flags) #define SWIG_NewPointerObj(p, type, flags) SWIG_Python_NewPointerObj(p, type, flags) #define SWIG_MustGetPtr(p, type, argnum, flags) SWIG_Python_MustGetPtr(p, type, argnum, flags) /* Python-specific SWIG API */ #define SWIG_newvarlink() SWIG_Python_newvarlink() #define SWIG_addvarlink(p, name, get_attr, set_attr) SWIG_Python_addvarlink(p, name, get_attr, set_attr) #define SWIG_ConvertPacked(obj, ptr, sz, ty, flags) SWIG_Python_ConvertPacked(obj, ptr, sz, ty, flags) #define SWIG_NewPackedObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type) #define SWIG_InstallConstants(d, constants) SWIG_Python_InstallConstants(d, constants) /* Exception handling in wrappers */ #define SWIG_fail goto fail #define SWIG_arg_fail(arg) SWIG_Python_ArgFail(arg) #define SWIG_append_errmsg(msg) SWIG_Python_AddErrMesg(msg,0) #define SWIG_preppend_errmsg(msg) SWIG_Python_AddErrMesg(msg,1) #define SWIG_type_error(type,obj) SWIG_Python_TypeError(type,obj) #define SWIG_null_ref(type) SWIG_Python_NullRef(type) /* Contract support */ #define SWIG_contract_assert(expr, msg) \ if (!(expr)) { PyErr_SetString(PyExc_RuntimeError, (char *) msg ); goto fail; } else /* ----------------------------------------------------------------------------- * Constant declarations * ----------------------------------------------------------------------------- */ /* Constant Types */ #define SWIG_PY_INT 1 #define SWIG_PY_FLOAT 2 #define SWIG_PY_STRING 3 #define SWIG_PY_POINTER 4 #define SWIG_PY_BINARY 5 /* Constant information structure */ typedef struct swig_const_info { int type; char *name; long lvalue; double dvalue; void *pvalue; swig_type_info **ptype; } swig_const_info; /* ----------------------------------------------------------------------------- * Pointer declarations * ----------------------------------------------------------------------------- */ /* Use SWIG_NO_COBJECT_TYPES to force the use of strings to represent C/C++ pointers in the python side. Very useful for debugging, but not always safe. */ #if !defined(SWIG_NO_COBJECT_TYPES) && !defined(SWIG_COBJECT_TYPES) # define SWIG_COBJECT_TYPES #endif /* Flags for pointer conversion */ #define SWIG_POINTER_EXCEPTION 0x1 #define SWIG_POINTER_DISOWN 0x2 /* ----------------------------------------------------------------------------- * Alloc. memory flags * ----------------------------------------------------------------------------- */ #define SWIG_OLDOBJ 1 #define SWIG_NEWOBJ SWIG_OLDOBJ + 1 #define SWIG_PYSTR SWIG_NEWOBJ + 1 #ifdef __cplusplus } #endif /*********************************************************************** * pyrun.swg * * This file contains the runtime support for Python modules * and includes code for managing global variables and pointer * type checking. * * Author : David Beazley (beazley@cs.uchicago.edu) ************************************************************************/ #ifdef __cplusplus extern "C" { #endif /* ----------------------------------------------------------------------------- * global variable support code. * ----------------------------------------------------------------------------- */ typedef struct swig_globalvar { char *name; /* Name of global variable */ PyObject *(*get_attr)(); /* Return the current value */ int (*set_attr)(PyObject *); /* Set the value */ struct swig_globalvar *next; } swig_globalvar; typedef struct swig_varlinkobject { PyObject_HEAD swig_globalvar *vars; } swig_varlinkobject; static PyObject * swig_varlink_repr(swig_varlinkobject *v) { v = v; return PyString_FromString(""); } static int swig_varlink_print(swig_varlinkobject *v, FILE *fp, int flags) { swig_globalvar *var; flags = flags; fprintf(fp,"Global variables { "); for (var = v->vars; var; var=var->next) { fprintf(fp,"%s", var->name); if (var->next) fprintf(fp,", "); } fprintf(fp," }\n"); return 0; } static PyObject * swig_varlink_getattr(swig_varlinkobject *v, char *n) { swig_globalvar *var = v->vars; while (var) { if (strcmp(var->name,n) == 0) { return (*var->get_attr)(); } var = var->next; } PyErr_SetString(PyExc_NameError,"Unknown C global variable"); return NULL; } static int swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) { swig_globalvar *var = v->vars; while (var) { if (strcmp(var->name,n) == 0) { return (*var->set_attr)(p); } var = var->next; } PyErr_SetString(PyExc_NameError,"Unknown C global variable"); return 1; } static PyTypeObject varlinktype = { PyObject_HEAD_INIT(0) 0, /* Number of items in variable part (ob_size) */ (char *)"swigvarlink", /* Type name (tp_name) */ sizeof(swig_varlinkobject), /* Basic size (tp_basicsize) */ 0, /* Itemsize (tp_itemsize) */ 0, /* Deallocator (tp_dealloc) */ (printfunc) swig_varlink_print, /* Print (tp_print) */ (getattrfunc) swig_varlink_getattr, /* get attr (tp_getattr) */ (setattrfunc) swig_varlink_setattr, /* Set attr (tp_setattr) */ 0, /* tp_compare */ (reprfunc) swig_varlink_repr, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ 0, /* tp_hash */ 0, /* tp_call */ 0, /* tp_str */ 0, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ 0, /* tp_flags */ 0, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ #if PY_VERSION_HEX >= 0x02020000 0, /* tp_iter */ 0, /* tp_iternext */ 0, /* tp_methods */ 0, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ 0, /* tp_dictoffset */ 0, /* tp_init */ 0, /* tp_alloc */ 0, /* tp_new */ 0, /* tp_free */ 0, /* tp_is_gc */ 0, /* tp_bases */ 0, /* tp_mro */ 0, /* tp_cache */ 0, /* tp_subclasses */ 0, /* tp_weaklist */ #endif #if PY_VERSION_HEX >= 0x02030000 0, /* tp_del */ #endif #ifdef COUNT_ALLOCS /* these must be last */ 0, /* tp_alloc */ 0, /* tp_free */ 0, /* tp_maxalloc */ 0, /* tp_next */ #endif }; /* Create a variable linking object for use later */ static PyObject * SWIG_Python_newvarlink(void) { swig_varlinkobject *result = 0; result = PyMem_NEW(swig_varlinkobject,1); varlinktype.ob_type = &PyType_Type; /* Patch varlinktype into a PyType */ result->ob_type = &varlinktype; result->vars = 0; result->ob_refcnt = 0; Py_XINCREF((PyObject *) result); return ((PyObject*) result); } static void SWIG_Python_addvarlink(PyObject *p, char *name, PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) { swig_varlinkobject *v; swig_globalvar *gv; v= (swig_varlinkobject *) p; gv = (swig_globalvar *) malloc(sizeof(swig_globalvar)); gv->name = (char *) malloc(strlen(name)+1); strcpy(gv->name,name); gv->get_attr = get_attr; gv->set_attr = set_attr; gv->next = v->vars; v->vars = gv; } /* ----------------------------------------------------------------------------- * errors manipulation * ----------------------------------------------------------------------------- */ static void SWIG_Python_TypeError(const char *type, PyObject *obj) { if (type) { if (!PyCObject_Check(obj)) { const char *otype = (obj ? obj->ob_type->tp_name : 0); if (otype) { PyObject *str = PyObject_Str(obj); const char *cstr = str ? PyString_AsString(str) : 0; if (cstr) { PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s(%s)' is received", type, otype, cstr); } else { PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received", type, otype); } Py_DECREF(str); return; } } else { const char *otype = (char *) PyCObject_GetDesc(obj); if (otype) { PyErr_Format(PyExc_TypeError, "a '%s' is expected, 'PyCObject(%s)' is received", type, otype); return; } } PyErr_Format(PyExc_TypeError, "a '%s' is expected", type); } else { PyErr_Format(PyExc_TypeError, "unexpected type is received"); } } static SWIGINLINE void SWIG_Python_NullRef(const char *type) { if (type) { PyErr_Format(PyExc_TypeError, "null reference of type '%s' was received",type); } else { PyErr_Format(PyExc_TypeError, "null reference was received"); } } static int SWIG_Python_AddErrMesg(const char* mesg, int infront) { if (PyErr_Occurred()) { PyObject *type = 0; PyObject *value = 0; PyObject *traceback = 0; PyErr_Fetch(&type, &value, &traceback); if (value) { PyObject *old_str = PyObject_Str(value); Py_XINCREF(type); PyErr_Clear(); if (infront) { PyErr_Format(type, "%s %s", mesg, PyString_AsString(old_str)); } else { PyErr_Format(type, "%s %s", PyString_AsString(old_str), mesg); } Py_DECREF(old_str); } return 1; } else { return 0; } } static int SWIG_Python_ArgFail(int argnum) { if (PyErr_Occurred()) { /* add information about failing argument */ char mesg[256]; sprintf(mesg, "argument number %d:", argnum); return SWIG_Python_AddErrMesg(mesg, 1); } else { return 0; } } /* ----------------------------------------------------------------------------- * pointers/data manipulation * ----------------------------------------------------------------------------- */ /* Convert a pointer value */ static int SWIG_Python_ConvertPtr(PyObject *obj, void **ptr, swig_type_info *ty, int flags) { swig_type_info *tc; char *c = 0; static PyObject *SWIG_this = 0; int newref = 0; PyObject *pyobj = 0; void *vptr; if (!obj) return 0; if (obj == Py_None) { *ptr = 0; return 0; } #ifdef SWIG_COBJECT_TYPES if (!(PyCObject_Check(obj))) { if (!SWIG_this) SWIG_this = PyString_FromString("this"); pyobj = obj; obj = PyObject_GetAttr(obj,SWIG_this); newref = 1; if (!obj) goto type_error; if (!PyCObject_Check(obj)) { Py_DECREF(obj); goto type_error; } } vptr = PyCObject_AsVoidPtr(obj); c = (char *) PyCObject_GetDesc(obj); if (newref) Py_DECREF(obj); goto type_check; #else if (!(PyString_Check(obj))) { if (!SWIG_this) SWIG_this = PyString_FromString("this"); pyobj = obj; obj = PyObject_GetAttr(obj,SWIG_this); newref = 1; if (!obj) goto type_error; if (!PyString_Check(obj)) { Py_DECREF(obj); goto type_error; } } c = PyString_AS_STRING(obj); /* Pointer values must start with leading underscore */ if (*c != '_') { if (strcmp(c,"NULL") == 0) { if (newref) { Py_DECREF(obj); } *ptr = (void *) 0; return 0; } else { if (newref) { Py_DECREF(obj); } goto type_error; } } c++; c = SWIG_UnpackData(c,&vptr,sizeof(void *)); if (newref) { Py_DECREF(obj); } #endif type_check: if (ty) { tc = SWIG_TypeCheck(c,ty); if (!tc) goto type_error; *ptr = SWIG_TypeCast(tc,vptr); } if ((pyobj) && (flags & SWIG_POINTER_DISOWN)) { PyObject_SetAttrString(pyobj,(char*)"thisown",Py_False); } return 0; type_error: PyErr_Clear(); if (pyobj && !obj) { obj = pyobj; if (PyCFunction_Check(obj)) { /* here we get the method pointer for callbacks */ char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc); c = doc ? strstr(doc, "swig_ptr: ") : 0; if (c) { c += 10; if (*c == '_') { c++; c = SWIG_UnpackData(c,&vptr,sizeof(void *)); goto type_check; } } } } if (flags & SWIG_POINTER_EXCEPTION) { if (ty) { SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj); } else { SWIG_Python_TypeError("C/C++ pointer", obj); } } return -1; } /* Convert a pointer value, signal an exception on a type mismatch */ static void * SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags) { void *result; if (SWIG_Python_ConvertPtr(obj, &result, ty, flags) == -1) { PyErr_Clear(); if (flags & SWIG_POINTER_EXCEPTION) { SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj); SWIG_Python_ArgFail(argnum); } } return result; } /* Convert a packed value value */ static int SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t sz, swig_type_info *ty, int flags) { swig_type_info *tc; char *c = 0; if ((!obj) || (!PyString_Check(obj))) goto type_error; c = PyString_AS_STRING(obj); /* Pointer values must start with leading underscore */ if (*c != '_') goto type_error; c++; c = SWIG_UnpackData(c,ptr,sz); if (ty) { tc = SWIG_TypeCheck(c,ty); if (!tc) goto type_error; } return 0; type_error: PyErr_Clear(); if (flags & SWIG_POINTER_EXCEPTION) { if (ty) { SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj); } else { SWIG_Python_TypeError("C/C++ packed data", obj); } } return -1; } /* Create a new pointer string */ static char * SWIG_Python_PointerStr(char *buff, void *ptr, const char *name, size_t bsz) { char *r = buff; if ((2*sizeof(void *) + 2) > bsz) return 0; *(r++) = '_'; r = SWIG_PackData(r,&ptr,sizeof(void *)); if (strlen(name) + 1 > (bsz - (r - buff))) return 0; strcpy(r,name); return buff; } /* Create a new pointer object */ static PyObject * SWIG_Python_NewPointerObj(void *ptr, swig_type_info *type, int own) { PyObject *robj; if (!ptr) { Py_INCREF(Py_None); return Py_None; } #ifdef SWIG_COBJECT_TYPES robj = PyCObject_FromVoidPtrAndDesc((void *) ptr, (char *) type->name, NULL); #else { char result[1024]; SWIG_Python_PointerStr(result, ptr, type->name, 1024); robj = PyString_FromString(result); } #endif if (!robj || (robj == Py_None)) return robj; if (type->clientdata) { PyObject *inst; PyObject *args = Py_BuildValue((char*)"(O)", robj); Py_DECREF(robj); inst = PyObject_CallObject((PyObject *) type->clientdata, args); Py_DECREF(args); if (inst) { if (own) { PyObject_SetAttrString(inst,(char*)"thisown",Py_True); } robj = inst; } } return robj; } static PyObject * SWIG_Python_NewPackedObj(void *ptr, size_t sz, swig_type_info *type) { char result[1024]; char *r = result; if ((2*sz + 2 + strlen(type->name)) > 1024) return 0; *(r++) = '_'; r = SWIG_PackData(r,ptr,sz); strcpy(r,type->name); return PyString_FromString(result); } /* ----------------------------------------------------------------------------- * constants/methods manipulation * ----------------------------------------------------------------------------- */ /* Install Constants */ static void SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[]) { int i; PyObject *obj; for (i = 0; constants[i].type; i++) { switch(constants[i].type) { case SWIG_PY_INT: obj = PyInt_FromLong(constants[i].lvalue); break; case SWIG_PY_FLOAT: obj = PyFloat_FromDouble(constants[i].dvalue); break; case SWIG_PY_STRING: if (constants[i].pvalue) { obj = PyString_FromString((char *) constants[i].pvalue); } else { Py_INCREF(Py_None); obj = Py_None; } break; case SWIG_PY_POINTER: obj = SWIG_NewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0); break; case SWIG_PY_BINARY: obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype)); break; default: obj = 0; break; } if (obj) { PyDict_SetItemString(d,constants[i].name,obj); Py_DECREF(obj); } } } /* Fix SwigMethods to carry the callback ptrs when needed */ static void SWIG_Python_FixMethods(PyMethodDef *methods, swig_const_info *const_table, swig_type_info **types, swig_type_info **types_initial) { int i; for (i = 0; methods[i].ml_name; ++i) { char *c = methods[i].ml_doc; if (c && (c = strstr(c, "swig_ptr: "))) { int j; swig_const_info *ci = 0; char *name = c + 10; for (j = 0; const_table[j].type; j++) { if (strncmp(const_table[j].name, name, strlen(const_table[j].name)) == 0) { ci = &(const_table[j]); break; } } if (ci) { size_t shift = (ci->ptype) - types; swig_type_info *ty = types_initial[shift]; size_t ldoc = (c - methods[i].ml_doc); size_t lptr = strlen(ty->name)+2*sizeof(void*)+2; char *ndoc = (char*)malloc(ldoc + lptr + 10); char *buff = ndoc; void *ptr = (ci->type == SWIG_PY_POINTER) ? ci->pvalue: (void *)(ci->lvalue); strncpy(buff, methods[i].ml_doc, ldoc); buff += ldoc; strncpy(buff, "swig_ptr: ", 10); buff += 10; SWIG_Python_PointerStr(buff, ptr, ty->name, lptr); methods[i].ml_doc = ndoc; } } } } /* ----------------------------------------------------------------------------- * Lookup type pointer * ----------------------------------------------------------------------------- */ #if PY_MAJOR_VERSION < 2 /* PyModule_AddObject function was introduced in Python 2.0. The following function is copied out of Python/modsupport.c in python version 2.3.4 */ static int PyModule_AddObject(PyObject *m, char *name, PyObject *o) { PyObject *dict; if (!PyModule_Check(m)) { PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs module as first arg"); return -1; } if (!o) { PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs non-NULL value"); return -1; } dict = PyModule_GetDict(m); if (dict == NULL) { /* Internal error -- modules must have a dict! */ PyErr_Format(PyExc_SystemError, "module '%s' has no __dict__", PyModule_GetName(m)); return -1; } if (PyDict_SetItemString(dict, name, o)) return -1; Py_DECREF(o); return 0; } #endif static PyMethodDef swig_empty_runtime_method_table[] = { {NULL, NULL, 0, NULL} /* Sentinel */ }; static void SWIG_Python_LookupTypePointer(swig_type_info ***type_list_handle) { PyObject *module, *pointer; void *type_pointer; /* first check if module already created */ type_pointer = PyCObject_Import((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME); if (type_pointer) { *type_list_handle = (swig_type_info **) type_pointer; } else { PyErr_Clear(); /* create a new module and variable */ module = Py_InitModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION, swig_empty_runtime_method_table); pointer = PyCObject_FromVoidPtr((void *) (*type_list_handle), NULL); if (pointer && module) { PyModule_AddObject(module, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME, pointer); } } } #ifdef __cplusplus } #endif /* -------- TYPES TABLE (BEGIN) -------- */ #define SWIGTYPE_p_GLsizei swig_types[0] #define SWIGTYPE_p_GLshort swig_types[1] #define SWIGTYPE_p_GLboolean swig_types[2] #define SWIGTYPE_size_t swig_types[3] #define SWIGTYPE_p_GLushort swig_types[4] #define SWIGTYPE_p_GLenum swig_types[5] #define SWIGTYPE_p_GLvoid swig_types[6] #define SWIGTYPE_p_GLint swig_types[7] #define SWIGTYPE_p_char swig_types[8] #define SWIGTYPE_p_GLclampd swig_types[9] #define SWIGTYPE_p_GLclampf swig_types[10] #define SWIGTYPE_p_GLuint swig_types[11] #define SWIGTYPE_ptrdiff_t swig_types[12] #define SWIGTYPE_p_GLbyte swig_types[13] #define SWIGTYPE_p_GLbitfield swig_types[14] #define SWIGTYPE_p_GLfloat swig_types[15] #define SWIGTYPE_p_GLubyte swig_types[16] #define SWIGTYPE_p_GLdouble swig_types[17] static swig_type_info *swig_types[19]; /* -------- TYPES TABLE (END) -------- */ /*----------------------------------------------- @(target):= _vertex_array_object.so ------------------------------------------------*/ #define SWIG_init init_vertex_array_object #define SWIG_name "_vertex_array_object" SWIGINTERN PyObject * SWIG_FromCharPtr(const char* cptr) { if (cptr) { size_t size = strlen(cptr); if (size > INT_MAX) { return SWIG_NewPointerObj((char*)(cptr), SWIG_TypeQuery("char *"), 0); } else { if (size != 0) { return PyString_FromStringAndSize(cptr, size); } else { return PyString_FromString(cptr); } } } Py_INCREF(Py_None); return Py_None; } /*@C:\\bin\\SWIG-1.3.23\\Lib\\python\\pymacros.swg,66,SWIG_define@*/ #define SWIG_From_int PyInt_FromLong /*@@*/ /** * * GL.ATI.vertex_array_object Module for PyOpenGL * * Date: September 2001 * * Authors: Mike C. Fletcher * ***/ GLint PyOpenGL_round(double x) { if (x >= 0) { return (GLint) (x+0.5); } else { return (GLint) (x-0.5); } } int __PyObject_AsArray_Size(PyObject* x); #ifdef NUMERIC #define _PyObject_AsArray_Size(x) ((x == Py_None) ? 0 : ((PyArray_Check(x)) ? PyArray_Size(x) : __PyObject_AsArray_Size(x))) #else /* NUMERIC */ #define _PyObject_AsArray_Size(x) ((x == Py_None) ? 0 : __PyObject_AsArray_Size(x)) #endif /* NUMERIC */ #define _PyObject_As(NAME, BASE) BASE* _PyObject_As##NAME(PyObject* source, PyObject** temp, int* len); #define _PyObject_AsArray_Cleanup(target, temp) if (temp) Py_XDECREF(temp); else PyMem_Del(target) _PyObject_As(FloatArray, float) _PyObject_As(DoubleArray, double) _PyObject_As(CharArray, signed char) _PyObject_As(UnsignedCharArray, unsigned char) _PyObject_As(ShortArray, short) _PyObject_As(UnsignedShortArray, unsigned short) _PyObject_As(IntArray, int) _PyObject_As(UnsignedIntArray, unsigned int) void* _PyObject_AsArray(GLenum type, PyObject* source, PyObject** temp, int* len); #define PyErr_XPrint() if (PyErr_Occurred()) PyErr_Print() #if HAS_DYNAMIC_EXT #define DECLARE_EXT(PROC_NAME, RET, ERROR_RET, PROTO, CALL)\ RET PROC_NAME PROTO\ {\ typedef RET (APIENTRY *proc_##PROC_NAME) PROTO;\ proc_##PROC_NAME proc = (proc_##PROC_NAME)GL_GetProcAddress(#PROC_NAME);\ if (proc) return proc CALL;\ PyErr_SetGLErrorMessage( GL_INVALID_OPERATION, "Dynamic function loading not implemented/supported on this platform" );\ return ERROR_RET;\ } #define DECLARE_VOID_EXT(PROC_NAME, PROTO, CALL)\ void PROC_NAME PROTO\ {\ typedef void (APIENTRY *proc_##PROC_NAME) PROTO;\ proc_##PROC_NAME proc = (proc_##PROC_NAME)GL_GetProcAddress(#PROC_NAME);\ if (proc) proc CALL;\ else {\ PyErr_SetGLErrorMessage( GL_INVALID_OPERATION, "Dynamic function loading not implemented/supported on this platform" );\ }\ } #else #define DECLARE_EXT(PROC_NAME, RET, ERROR_RET, PROTO, CALL)\ RET PROC_NAME PROTO\ {\ PyErr_SetGLErrorMessage( GL_INVALID_OPERATION, "Dynamic function loading not implemented/supported on this platform" );\ return ERROR_RET;\ } #define DECLARE_VOID_EXT(PROC_NAME, PROTO, CALL)\ void PROC_NAME PROTO\ {\ PyErr_SetGLErrorMessage( GL_INVALID_OPERATION, "Dynamic function loading not implemented/supported on this platform" );\ } #endif #define _PyTuple_From(NAME, BASE) PyObject* _PyTuple_From##NAME(int len, BASE* data); _PyTuple_From(UnsignedCharArray, unsigned char) _PyTuple_From(CharArray, signed char) _PyTuple_From(UnsignedShortArray, unsigned short) _PyTuple_From(ShortArray, short) _PyTuple_From(UnsignedIntArray, unsigned int) _PyTuple_From(IntArray, int) _PyTuple_From(FloatArray, float) _PyTuple_From(DoubleArray, double) #define _PyObject_From(NAME, BASE) PyObject* _PyObject_From##NAME(int nd, int* dims, BASE* data, int own); _PyObject_From(UnsignedCharArray, unsigned char) _PyObject_From(CharArray, signed char) _PyObject_From(UnsignedShortArray, unsigned short) _PyObject_From(ShortArray, short) _PyObject_From(UnsignedIntArray, unsigned int) _PyObject_From(IntArray, int) _PyObject_From(FloatArray, float) _PyObject_From(DoubleArray, double) PyObject* _PyObject_FromArray(GLenum type, int nd, int *dims, void* data, int own); void* SetupPixelRead(int rank, GLenum format, GLenum type, int *dims); void SetupPixelWrite(int rank); void* SetupRawPixelRead(GLenum format, GLenum type, int n, const int *dims, int* size); void* _PyObject_AsPointer(PyObject* x); /* The following line causes a warning on linux and cygwin The function is defined in interface_utils.c, which is linked to each extension module. For some reason, though, this declaration doesn't get recognised as a declaration prototype for that function. */ void init_util(); typedef void *PTR; typedef struct { void (*_decrement)(void* pointer); void (*_decrementPointer)(GLenum pname); int (*_incrementLock)(void *pointer); int (*_incrementPointerLock)(GLenum pname); void (*_acquire)(void* pointer); void (*_acquirePointer)(GLenum pname); #if HAS_DYNAMIC_EXT PTR (*GL_GetProcAddress)(const char* name); #endif int (*InitExtension)(const char *name, const char** procs); PyObject *_GLerror; PyObject *_GLUerror; } util_API; static util_API *_util_API = NULL; #define decrementLock(x) (*_util_API)._decrement(x) #define decrementPointerLock(x) (*_util_API)._decrementPointer(x) #define incrementLock(x) (*_util_API)._incrementLock(x) #define incrementPointerLock(x) (*_util_API)._incrementPointerLock(x) #define acquire(x) (*_util_API)._acquire(x) #define acquirePointer(x) (*_util_API)._acquirePointer(x) #define GLerror (*_util_API)._GLerror #define GLUerror (*_util_API)._GLUerror #if HAS_DYNAMIC_EXT #define GL_GetProcAddress(x) (*_util_API).GL_GetProcAddress(x) #endif #define InitExtension(x, y) (*_util_API).InitExtension(x, (const char**)y) #define PyErr_SetGLerror(code) PyErr_SetObject(GLerror, Py_BuildValue("is", code, gluErrorString(code))); #define PyErr_SetGLUerror(code) PyErr_SetObject(GLUerror, Py_BuildValue("is", code, gluErrorString(code))); int _PyObject_Dimension(PyObject* x, int rank); #define ERROR_MSG_SEP ", " #define ERROR_MSG_SEP_LEN 2 int GLErrOccurred() { if (PyErr_Occurred()) return 1; if (CurrentContextIsValid()) { GLenum error, *errors = NULL; char *msg = NULL; const char *this_msg; int count = 0; error = glGetError(); while (error != GL_NO_ERROR) { this_msg = gluErrorString(error); if (count) { msg = realloc(msg, (strlen(msg) + strlen(this_msg) + ERROR_MSG_SEP_LEN + 1)*sizeof(char)); strcat(msg, ERROR_MSG_SEP); strcat(msg, this_msg); errors = realloc(errors, (count + 1)*sizeof(GLenum)); } else { msg = malloc((strlen(this_msg) + 1)*sizeof(char)); strcpy(msg, this_msg); errors = malloc(sizeof(GLenum)); } errors[count++] = error; error = glGetError(); } if (count) { PyErr_SetObject(GLerror, Py_BuildValue("Os", _PyTuple_FromIntArray(count, (int*)errors), msg)); free(errors); free(msg); return 1; } } return 0; } void PyErr_SetGLErrorMessage( int id, char * message ) { /* set a GLerror with an ID and string message This tries pretty hard to look just like a regular error as produced by GLErrOccurred()'s formatter, save that there's only the single error being reported. Using id 0 is probably best for any future use where there isn't a good match for the exception description in the error-enumeration set. */ PyObject * args = NULL; args = Py_BuildValue( "(i)s", id, message ); if (args) { PyErr_SetObject( GLerror, args ); Py_XDECREF( args ); } else { PyErr_SetGLerror(id); } } #if !EXT_DEFINES_PROTO || !defined(GL_ATI_vertex_array_object) DECLARE_EXT( glNewObjectBufferATI, GLuint, 0, (GLsizei size, const GLvoid * pointer, GLenum usage), (size, pointer, usage )); DECLARE_EXT( glIsObjectBufferATI, GLboolean, GL_FALSE, (GLuint buffer), (buffer)); DECLARE_VOID_EXT(glUpdateObjectBufferATI, (GLuint buffer, GLuint offset, GLsizei size, const GLvoid * pointer, GLenum preserve), (buffer, offset, size, pointer, preserve)); DECLARE_VOID_EXT(glGetObjectBufferfvATI, (GLuint buffer, GLenum pname, GLfloat * params), (buffer, pname, params)); DECLARE_VOID_EXT(glGetObjectBufferivATI, (GLuint buffer, GLenum pname, GLint * params), (buffer, pname, params)); DECLARE_VOID_EXT(glDeleteObjectBufferATI, (GLuint buffer), (buffer)); DECLARE_VOID_EXT(glArrayObjectATI, (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset), (array, size, type, stride, buffer, offset)); DECLARE_VOID_EXT(glGetArrayObjectfvATI, (GLenum array, GLenum pname, GLfloat * params), (array, pname, params)); DECLARE_VOID_EXT(glGetArrayObjectivATI, (GLenum array, GLenum pname, GLint * params), (array, pname, params)); #ifdef GL_EXT_vertex_shader /* XXX I don't have this extension, so haven't checked that anything works */ DECLARE_VOID_EXT(glVariantArrayObjectATI, (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset), (id,type, stride, buffer, offset)); DECLARE_VOID_EXT(glGetVariantArrayObjectfvATI, (GLuint id, GLenum pname, GLfloat * params), (id, pname, params)); DECLARE_VOID_EXT(glGetVariantArrayObjectivATI, (GLuint id, GLenum pname, GLint * params), (id, pname, params)); #endif GL_EXT_vertex_shader #endif /* EXT_DEFINES_PROTO */ /* need a function to convert Python sequences to raw void * values */ #include SWIGINTERN int SWIG_CheckLongInRange(long value, long min_value, long max_value, const char *errmsg) { if (value < min_value) { if (errmsg) { PyErr_Format(PyExc_OverflowError, "value %ld is less than '%s' minimum %ld", value, errmsg, min_value); } return 0; } else if (value > max_value) { if (errmsg) { PyErr_Format(PyExc_OverflowError, "value %ld is greater than '%s' maximum %ld", value, errmsg, max_value); } return 0; } return 1; } SWIGINTERN int SWIG_AsVal_long(PyObject * obj, long* val) { if (PyInt_Check(obj)) { if (val) *val = PyInt_AS_LONG(obj); return 1; } if (PyLong_Check(obj)) { long v = PyLong_AsLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return 1; } else { if (!val) PyErr_Clear(); return 0; } } if (val) { SWIG_type_error("long", obj); } return 0; } #if INT_MAX != LONG_MAX SWIGINTERN int SWIG_AsVal_int(PyObject *obj, int *val) { const char* errmsg = val ? "int" : (char*)0; long v; if (SWIG_AsVal_long(obj, &v)) { if (SWIG_CheckLongInRange(v, INT_MIN,INT_MAX, errmsg)) { if (val) *val = (int)(v); return 1; } else { return 0; } } else { PyErr_Clear(); } if (val) { SWIG_type_error(errmsg, obj); } return 0; } #else SWIGINTERNSHORT int SWIG_AsVal_int(PyObject *obj, int *val) { return SWIG_AsVal_long(obj,(long*)val); } #endif SWIGINTERNSHORT int SWIG_As_int(PyObject* obj) { int v; if (!SWIG_AsVal_int(obj, &v)) { /* this is needed to make valgrind/purify happier. */ memset((void*)&v, 0, sizeof(int)); } return v; } SWIGINTERNSHORT int SWIG_CheckUnsignedLongInRange(unsigned long value, unsigned long max_value, const char *errmsg) { if (value > max_value) { if (errmsg) { PyErr_Format(PyExc_OverflowError, "value %lu is greater than '%s' minimum %lu", value, errmsg, max_value); } return 0; } return 1; } SWIGINTERN int SWIG_AsVal_unsigned_SS_long(PyObject *obj, unsigned long *val) { if (PyInt_Check(obj)) { long v = PyInt_AS_LONG(obj); if (v >= 0) { if (val) *val = v; return 1; } } if (PyLong_Check(obj)) { unsigned long v = PyLong_AsUnsignedLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return 1; } else { if (!val) PyErr_Clear(); return 0; } } if (val) { SWIG_type_error("unsigned long", obj); } return 0; } #if UINT_MAX != ULONG_MAX SWIGINTERN int SWIG_AsVal_unsigned_SS_int(PyObject *obj, unsigned int *val) { const char* errmsg = val ? "unsigned int" : (char*)0; unsigned long v; if (SWIG_AsVal_unsigned_SS_long(obj, &v)) { if (SWIG_CheckUnsignedLongInRange(v, INT_MAX, errmsg)) { if (val) *val = (unsigned int)(v); return 1; } } else { PyErr_Clear(); } if (val) { SWIG_type_error(errmsg, obj); } return 0; } #else SWIGINTERNSHORT unsigned int SWIG_AsVal_unsigned_SS_int(PyObject *obj, unsigned int *val) { return SWIG_AsVal_unsigned_SS_long(obj,(unsigned long *)val); } #endif SWIGINTERNSHORT unsigned int SWIG_As_unsigned_SS_int(PyObject* obj) { unsigned int v; if (!SWIG_AsVal_unsigned_SS_int(obj, &v)) { /* this is needed to make valgrind/purify happier. */ memset((void*)&v, 0, sizeof(unsigned int)); } return v; } SWIGINTERNSHORT int SWIG_Check_int(PyObject* obj) { return SWIG_AsVal_int(obj, (int*)0); } SWIGINTERNSHORT int SWIG_Check_unsigned_SS_int(PyObject* obj) { return SWIG_AsVal_unsigned_SS_int(obj, (unsigned int*)0); } /*@C:\\bin\\SWIG-1.3.23\\Lib\\python\\pymacros.swg,66,SWIG_define@*/ #define SWIG_From_long PyInt_FromLong /*@@*/ SWIGINTERNSHORT PyObject* SWIG_From_unsigned_SS_long(unsigned long value) { return (value > LONG_MAX) ? PyLong_FromUnsignedLong(value) : PyInt_FromLong((long)(value)); } #if UINT_MAX < LONG_MAX /*@C:\\bin\\SWIG-1.3.23\\Lib\\python\\pymacros.swg,66,SWIG_define@*/ #define SWIG_From_unsigned_SS_int SWIG_From_long /*@@*/ #else /*@C:\\bin\\SWIG-1.3.23\\Lib\\python\\pymacros.swg,66,SWIG_define@*/ #define SWIG_From_unsigned_SS_int SWIG_From_unsigned_SS_long /*@@*/ #endif static char _doc_glNewObjectBufferATI[] = "glNewObjectBufferATI(size, pointer, usage ) -> buffername\n\ \n\ size -- minimum size of the buffer, implementation may\n\ use a larger buffer, but not smaller.\n\ pointer -- data with which to initialise the buffer. May be\n\ a string, or None to avoid initialisation of the buffer.\n\ usage -- (enumeration) GL_STATIC_ATI or GL_DYNAMIC_ATI, \n\ indicating to the system whether this data is likely to\n\ be updated or not (i.e. an optimisation hint)\n\ \n\ returns the unsigned integer 'name' of the buffer which\n\ must be used to refer to the buffer for all calls."; /*@C:\\bin\\SWIG-1.3.23\\Lib\\python\\pymacros.swg,66,SWIG_define@*/ #define SWIG_From_unsigned_SS_char PyInt_FromLong /*@@*/ static char _doc_glIsObjectBufferATI[] = "glIsObjectBufferATI( buffer ) -> bool\n\ \n\ buffer -- buffer 'name' (an unsigned integer) being referenced\n\ (returned by glNewObjectBufferATI)\n\ \n\ returns boolean indicating whether given integer specifies a\n\ valid server-side buffer."; static char _doc_glUpdateObjectBufferATI[] = "glUpdateObjectBufferATI(buffer, offset, size, pointer, preserve) -> None\n\ \n\ buffer -- buffer 'name' (an unsigned integer) being referenced\n\ (returned by glNewObjectBufferATI)\n\ offset -- (integer) offset into the buffer at which to begin copying\n\ size -- amount of data to copy\n\ pointer -- string from which to copy the data"; SWIGINTERN PyObject* t_output_helper(PyObject* target, PyObject* o) { if (!target) { target = o; } else if (target == Py_None) { Py_DECREF(target); target = o; } else { if (!PyList_Check(target)) { PyObject *o2 = target; target = PyList_New(1); PyList_SetItem(target, 0, o2); } PyList_Append(target,o); } return target; } /*@C:\\bin\\SWIG-1.3.23\\Lib\\python\\pymacros.swg,66,SWIG_define@*/ #define SWIG_From_float PyFloat_FromDouble /*@@*/ static char _doc_glGetObjectBufferfvATI[] = "glGetObjectBufferfvATI(buffer, pname) -> float\n\ \n\ buffer -- buffer 'name' (an unsigned integer) being referenced\n\ (returned by glNewObjectBufferATI)\n\ pname -- (enumeration) GL_OBJECT_BUFFER_SIZE_ATI or GL_OBJECT_BUFFER_USAGE_ATI\n\ what property of the buffer to query\n\ \n\ for GL_OBJECT_BUFFER_SIZE_ATI returns size of the server-\n\ side buffer, which is at least the size of the size argument to\n\ glNewObjectBufferATI, and will likely be larger.\n\ for GL_OBJECT_BUFFER_USAGE_ATI returns either GL_STATIC_ATI or\n\ GL_DYNAMIC_ATI"; static char _doc_glGetObjectBufferivATI[] = "glGetObjectBufferivATI(buffer, pname) -> int\n\ \n\ buffer -- buffer 'name' (an unsigned integer) being referenced\n\ (returned by glNewObjectBufferATI)\n\ pname -- (enumeration) GL_OBJECT_BUFFER_SIZE_ATI or GL_OBJECT_BUFFER_USAGE_ATI\n\ what property of the buffer to query\n\ \n\ for GL_OBJECT_BUFFER_SIZE_ATI returns size of the server-\n\ side buffer, which is at least the size of the size argument to\n\ glNewObjectBufferATI, and will likely be larger.\n\ for GL_OBJECT_BUFFER_USAGE_ATI returns either GL_STATIC_ATI or\n\ GL_DYNAMIC_ATI"; static char _doc_glDeleteObjectBufferATI[] = "glDeleteObjectBufferATI(buffer) -> None\n\ \n\ buffer -- buffer 'name' (an unsigned integer) being referenced\n\ (returned by glNewObjectBufferATI)\n\ \n\ Deallocates the server-side buffer"; static char _doc_glArrayObjectATI[] = "glArrayObjectATI(array, size, type, stride, buffer, offset) -> None\n\ \n\ array -- the drawing array-type to enable, acceptable values are\n\ those seen in glEnableClientState: GL_COLOR_ARRAY, \n\ GL_VERTEX_ARRAY, GL_NORMAL_ARRAY, etceteras\n\ size -- number of elements to read from buffer into array, note\n\ that these are in array-type units, not generally bytes, as\n\ used to specify the size of the underlying buffer!\n\ type -- base data-types to read from the buffer, GL_FLOAT, \n\ GL_DOUBLE, GL_INT, etceteras\n\ stride -- as seen in all vertex-array definition calls\n\ buffer -- buffer 'name' (an unsigned integer) being referenced\n\ as the source for the data in the array.\n\ offset -- offset from the start of the buffer at which to begin\n\ reading (in bytes)\n\ \n\ Defines an array-drawing array using data from a server-side\n\ buffer.\n\ \n\ See:\n\ glVertexArray,glColorArray,glNormalArray"; static char _doc_glGetArrayObjectfvATI[] = "glGetArrayObjectfvATI(array, pname) -> float\n\ \n\ array -- the drawing array-type to query, acceptable values are\n\ those seen in glEnableClientState: GL_COLOR_ARRAY, \n\ GL_VERTEX_ARRAY, GL_NORMAL_ARRAY, etceteras\n\ pname -- (enumeration) ARRAY_OBJECT_BUFFER_ATI, or \n\ ARRAY_OBJECT_OFFSET_ATI\n\ \n\ for ARRAY_OBJECT_BUFFER_ATI, returns the buffer name of the buffer\n\ bound to the given array\n\ \n\ for ARRAY_OBJECT_OFFSET_ATI, returns the offset in bytes from the\n\ start of the buffer at which the array begins reading data."; static char _doc_glGetArrayObjectivATI[] = "glGetArrayObjectivATI(array, pname) -> integer\n\ \n\ array -- the drawing array-type to query, acceptable values are\n\ those seen in glEnableClientState: GL_COLOR_ARRAY, \n\ GL_VERTEX_ARRAY, GL_NORMAL_ARRAY, etceteras\n\ pname -- (enumeration) ARRAY_OBJECT_BUFFER_ATI, or \n\ ARRAY_OBJECT_OFFSET_ATI\n\ \n\ for ARRAY_OBJECT_BUFFER_ATI, returns the buffer name of the buffer\n\ bound to the given array\n\ \n\ for ARRAY_OBJECT_OFFSET_ATI, returns the offset in bytes from the\n\ start of the buffer at which the array begins reading data."; static char *proc_names[] = { #if !EXT_DEFINES_PROTO || !defined(GL_ATI_vertex_array_object) "glNewObjectBufferATI", "glIsObjectBufferATI", "glUpdateObjectBufferATI", "glGetObjectBufferfvATI", "glGetObjectBufferivATI", "glDeleteObjectBufferATI", "glArrayObjectATI", "glGetArrayObjectfvATI", "glGetArrayObjectivATI", #ifdef GL_EXT_vertex_shader "glVariantArrayObjectATI", "glGetVariantArrayObjectfvATI", "glGetVariantArrayObjectivATI", #endif #endif NULL }; #define glInitVertexArrayObjectATI() InitExtension("GL_ATI_vertex_array_object", proc_names) static char _doc_glInitVertexArrayObjectATI[] = "glInitVertexArrayObjectATI() -> bool"; PyObject *__info() { if (glInitVertexArrayObjectATI()) { PyObject *info = PyList_New(0); return info; } Py_INCREF(Py_None); return Py_None; } #ifdef __cplusplus extern "C" { #endif static PyObject *_wrap_glNewObjectBufferATI(PyObject *self, PyObject *args) { PyObject *resultobj; GLsizei arg1 ; GLvoid *arg2 = (GLvoid *) 0 ; GLenum arg3 ; GLuint result; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if(!PyArg_ParseTuple(args,(char *)"OOO:glNewObjectBufferATI",&obj0,&obj1,&obj2)) goto fail; { arg1 = (GLsizei)(SWIG_As_int(obj0)); if (SWIG_arg_fail(1)) SWIG_fail; } { if (obj1 == Py_None) { /* XXX should disallow this for update object buffer */ arg2 = NULL; } else if (PyString_Check(obj1)) { /* strings are easy, just pass the data straight in */ arg2 = (void *)PyString_AsString( obj1 ); /* XXX should check length here against arg0 to avoid mem-access errors */ } else { PyErr_SetGLErrorMessage( GL_INVALID_VALUE, "Currently only support strings for vertex_array_object data sources"); return NULL; } } { arg3 = (GLenum)(SWIG_As_unsigned_SS_int(obj2)); if (SWIG_arg_fail(3)) SWIG_fail; } { result = (GLuint)glNewObjectBufferATI(arg1,(GLvoid const *)arg2,arg3); if (GLErrOccurred()) { return NULL; } } { resultobj = SWIG_From_unsigned_SS_int((unsigned int)(result)); } { } return resultobj; fail: { } return NULL; } static PyObject *_wrap_glIsObjectBufferATI(PyObject *self, PyObject *args) { PyObject *resultobj; GLuint arg1 ; GLboolean result; PyObject * obj0 = 0 ; if(!PyArg_ParseTuple(args,(char *)"O:glIsObjectBufferATI",&obj0)) goto fail; { arg1 = (GLuint)(SWIG_As_unsigned_SS_int(obj0)); if (SWIG_arg_fail(1)) SWIG_fail; } { result = (GLboolean)glIsObjectBufferATI(arg1); if (GLErrOccurred()) { return NULL; } } { resultobj = SWIG_From_unsigned_SS_char((unsigned char)(result)); } return resultobj; fail: return NULL; } static PyObject *_wrap_glUpdateObjectBufferATI(PyObject *self, PyObject *args) { PyObject *resultobj; GLuint arg1 ; GLuint arg2 ; GLsizei arg3 ; GLvoid *arg4 = (GLvoid *) 0 ; GLenum arg5 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; if(!PyArg_ParseTuple(args,(char *)"OOOOO:glUpdateObjectBufferATI",&obj0,&obj1,&obj2,&obj3,&obj4)) goto fail; { arg1 = (GLuint)(SWIG_As_unsigned_SS_int(obj0)); if (SWIG_arg_fail(1)) SWIG_fail; } { arg2 = (GLuint)(SWIG_As_unsigned_SS_int(obj1)); if (SWIG_arg_fail(2)) SWIG_fail; } { arg3 = (GLsizei)(SWIG_As_int(obj2)); if (SWIG_arg_fail(3)) SWIG_fail; } { if (obj3 == Py_None) { /* XXX should disallow this for update object buffer */ arg4 = NULL; } else if (PyString_Check(obj3)) { /* strings are easy, just pass the data straight in */ arg4 = (void *)PyString_AsString( obj3 ); /* XXX should check length here against arg0 to avoid mem-access errors */ } else { PyErr_SetGLErrorMessage( GL_INVALID_VALUE, "Currently only support strings for vertex_array_object data sources"); return NULL; } } { arg5 = (GLenum)(SWIG_As_unsigned_SS_int(obj4)); if (SWIG_arg_fail(5)) SWIG_fail; } { glUpdateObjectBufferATI(arg1,arg2,arg3,(GLvoid const *)arg4,arg5); if (GLErrOccurred()) { return NULL; } } Py_INCREF(Py_None); resultobj = Py_None; { } return resultobj; fail: { } return NULL; } static PyObject *_wrap_glGetObjectBufferfvATI(PyObject *self, PyObject *args) { PyObject *resultobj; GLuint arg1 ; GLenum arg2 ; GLfloat *arg3 = (GLfloat *) 0 ; GLfloat temp3 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; arg3 = &temp3; res3 = SWIG_NEWOBJ; if(!PyArg_ParseTuple(args,(char *)"OO:glGetObjectBufferfvATI",&obj0,&obj1)) goto fail; { arg1 = (GLuint)(SWIG_As_unsigned_SS_int(obj0)); if (SWIG_arg_fail(1)) SWIG_fail; } { arg2 = (GLenum)(SWIG_As_unsigned_SS_int(obj1)); if (SWIG_arg_fail(2)) SWIG_fail; } { glGetObjectBufferfvATI(arg1,arg2,arg3); if (GLErrOccurred()) { return NULL; } } Py_INCREF(Py_None); resultobj = Py_None; resultobj = t_output_helper(resultobj, ((res3 == SWIG_NEWOBJ) ? SWIG_From_float((*arg3)) : SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_GLfloat, 0))); return resultobj; fail: return NULL; } static PyObject *_wrap_glGetObjectBufferivATI(PyObject *self, PyObject *args) { PyObject *resultobj; GLuint arg1 ; GLenum arg2 ; GLint *arg3 = (GLint *) 0 ; GLint temp3 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; arg3 = &temp3; res3 = SWIG_NEWOBJ; if(!PyArg_ParseTuple(args,(char *)"OO:glGetObjectBufferivATI",&obj0,&obj1)) goto fail; { arg1 = (GLuint)(SWIG_As_unsigned_SS_int(obj0)); if (SWIG_arg_fail(1)) SWIG_fail; } { arg2 = (GLenum)(SWIG_As_unsigned_SS_int(obj1)); if (SWIG_arg_fail(2)) SWIG_fail; } { glGetObjectBufferivATI(arg1,arg2,arg3); if (GLErrOccurred()) { return NULL; } } Py_INCREF(Py_None); resultobj = Py_None; resultobj = t_output_helper(resultobj, ((res3 == SWIG_NEWOBJ) ? SWIG_From_int((*arg3)) : SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_GLint, 0))); return resultobj; fail: return NULL; } static PyObject *_wrap_glDeleteObjectBufferATI(PyObject *self, PyObject *args) { PyObject *resultobj; GLuint arg1 ; PyObject * obj0 = 0 ; if(!PyArg_ParseTuple(args,(char *)"O:glDeleteObjectBufferATI",&obj0)) goto fail; { arg1 = (GLuint)(SWIG_As_unsigned_SS_int(obj0)); if (SWIG_arg_fail(1)) SWIG_fail; } { glDeleteObjectBufferATI(arg1); if (GLErrOccurred()) { return NULL; } } Py_INCREF(Py_None); resultobj = Py_None; return resultobj; fail: return NULL; } static PyObject *_wrap_glArrayObjectATI(PyObject *self, PyObject *args) { PyObject *resultobj; GLenum arg1 ; GLint arg2 ; GLenum arg3 ; GLsizei arg4 ; GLuint arg5 ; GLuint arg6 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; PyObject * obj5 = 0 ; if(!PyArg_ParseTuple(args,(char *)"OOOOOO:glArrayObjectATI",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) goto fail; { arg1 = (GLenum)(SWIG_As_unsigned_SS_int(obj0)); if (SWIG_arg_fail(1)) SWIG_fail; } { arg2 = (GLint)(SWIG_As_int(obj1)); if (SWIG_arg_fail(2)) SWIG_fail; } { arg3 = (GLenum)(SWIG_As_unsigned_SS_int(obj2)); if (SWIG_arg_fail(3)) SWIG_fail; } { if (PyInt_Check(obj3) || PyLong_Check(obj3)) { arg4= (GLsizei)(PyInt_AsLong( obj3 )); } else if (PyFloat_Check(obj3)) { double arg4_temp_float; arg4_temp_float = PyFloat_AsDouble(obj3); if (arg4_temp_float >= (INT_MAX-0.5)) { PyErr_SetString(PyExc_ValueError, "Value too large to be converted to a size measurement"); return NULL; } else if (arg4_temp_float <= -0.5) { PyErr_SetString(PyExc_ValueError, "Value less than 0, cannot be converted to a size measurement"); return NULL; } arg4 = (GLsizei) PyOpenGL_round( arg4_temp_float ); } } { arg5 = (GLuint)(SWIG_As_unsigned_SS_int(obj4)); if (SWIG_arg_fail(5)) SWIG_fail; } { arg6 = (GLuint)(SWIG_As_unsigned_SS_int(obj5)); if (SWIG_arg_fail(6)) SWIG_fail; } { glArrayObjectATI(arg1,arg2,arg3,arg4,arg5,arg6); if (GLErrOccurred()) { return NULL; } } Py_INCREF(Py_None); resultobj = Py_None; return resultobj; fail: return NULL; } static PyObject *_wrap_glGetArrayObjectfvATI(PyObject *self, PyObject *args) { PyObject *resultobj; GLenum arg1 ; GLenum arg2 ; GLfloat *arg3 = (GLfloat *) 0 ; GLfloat temp3 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; arg3 = &temp3; res3 = SWIG_NEWOBJ; if(!PyArg_ParseTuple(args,(char *)"OO:glGetArrayObjectfvATI",&obj0,&obj1)) goto fail; { arg1 = (GLenum)(SWIG_As_unsigned_SS_int(obj0)); if (SWIG_arg_fail(1)) SWIG_fail; } { arg2 = (GLenum)(SWIG_As_unsigned_SS_int(obj1)); if (SWIG_arg_fail(2)) SWIG_fail; } { glGetArrayObjectfvATI(arg1,arg2,arg3); if (GLErrOccurred()) { return NULL; } } Py_INCREF(Py_None); resultobj = Py_None; resultobj = t_output_helper(resultobj, ((res3 == SWIG_NEWOBJ) ? SWIG_From_float((*arg3)) : SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_GLfloat, 0))); return resultobj; fail: return NULL; } static PyObject *_wrap_glGetArrayObjectivATI(PyObject *self, PyObject *args) { PyObject *resultobj; GLenum arg1 ; GLenum arg2 ; GLint *arg3 = (GLint *) 0 ; GLint temp3 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; arg3 = &temp3; res3 = SWIG_NEWOBJ; if(!PyArg_ParseTuple(args,(char *)"OO:glGetArrayObjectivATI",&obj0,&obj1)) goto fail; { arg1 = (GLenum)(SWIG_As_unsigned_SS_int(obj0)); if (SWIG_arg_fail(1)) SWIG_fail; } { arg2 = (GLenum)(SWIG_As_unsigned_SS_int(obj1)); if (SWIG_arg_fail(2)) SWIG_fail; } { glGetArrayObjectivATI(arg1,arg2,arg3); if (GLErrOccurred()) { return NULL; } } Py_INCREF(Py_None); resultobj = Py_None; resultobj = t_output_helper(resultobj, ((res3 == SWIG_NEWOBJ) ? SWIG_From_int((*arg3)) : SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_GLint, 0))); return resultobj; fail: return NULL; } static PyObject *_wrap_glInitVertexArrayObjectATI(PyObject *self, PyObject *args) { PyObject *resultobj; int result; if(!PyArg_ParseTuple(args,(char *)":glInitVertexArrayObjectATI")) goto fail; { result = (int)glInitVertexArrayObjectATI(); if (GLErrOccurred()) { return NULL; } } { resultobj = SWIG_From_int((int)(result)); } return resultobj; fail: return NULL; } static PyObject *_wrap___info(PyObject *self, PyObject *args) { PyObject *resultobj; PyObject *result; if(!PyArg_ParseTuple(args,(char *)":__info")) goto fail; { result = (PyObject *)__info(); if (GLErrOccurred()) { return NULL; } } { resultobj= result; } return resultobj; fail: return NULL; } static PyMethodDef SwigMethods[] = { { (char *)"glNewObjectBufferATI", _wrap_glNewObjectBufferATI, METH_VARARGS, NULL}, { (char *)"glIsObjectBufferATI", _wrap_glIsObjectBufferATI, METH_VARARGS, NULL}, { (char *)"glUpdateObjectBufferATI", _wrap_glUpdateObjectBufferATI, METH_VARARGS, NULL}, { (char *)"glGetObjectBufferfvATI", _wrap_glGetObjectBufferfvATI, METH_VARARGS, NULL}, { (char *)"glGetObjectBufferivATI", _wrap_glGetObjectBufferivATI, METH_VARARGS, NULL}, { (char *)"glDeleteObjectBufferATI", _wrap_glDeleteObjectBufferATI, METH_VARARGS, NULL}, { (char *)"glArrayObjectATI", _wrap_glArrayObjectATI, METH_VARARGS, NULL}, { (char *)"glGetArrayObjectfvATI", _wrap_glGetArrayObjectfvATI, METH_VARARGS, NULL}, { (char *)"glGetArrayObjectivATI", _wrap_glGetArrayObjectivATI, METH_VARARGS, NULL}, { (char *)"glInitVertexArrayObjectATI", _wrap_glInitVertexArrayObjectATI, METH_VARARGS, NULL}, { (char *)"__info", _wrap___info, METH_VARARGS, NULL}, { NULL, NULL, 0, NULL } }; /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */ static swig_type_info _swigt__p_GLsizei[] = {{"_p_GLsizei", 0, "int *|GLsizei *", 0, 0, 0, 0},{"_p_GLint", 0, 0, 0, 0, 0, 0},{"_p_GLsizei", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}}; static swig_type_info _swigt__p_GLshort[] = {{"_p_GLshort", 0, "short *|GLshort *", 0, 0, 0, 0},{"_p_GLshort", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}}; static swig_type_info _swigt__p_GLboolean[] = {{"_p_GLboolean", 0, "unsigned char *|GLboolean *", 0, 0, 0, 0},{"_p_GLboolean", 0, 0, 0, 0, 0, 0},{"_p_GLubyte", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}}; static swig_type_info _swigt__size_t[] = {{"_size_t", 0, "size_t", 0, 0, 0, 0},{"_size_t", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}}; static swig_type_info _swigt__p_GLushort[] = {{"_p_GLushort", 0, "unsigned short *|GLushort *", 0, 0, 0, 0},{"_p_GLushort", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}}; static swig_type_info _swigt__p_GLenum[] = {{"_p_GLenum", 0, "unsigned int *|GLenum *", 0, 0, 0, 0},{"_p_GLuint", 0, 0, 0, 0, 0, 0},{"_p_GLenum", 0, 0, 0, 0, 0, 0},{"_p_GLbitfield", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}}; static swig_type_info _swigt__p_GLvoid[] = {{"_p_GLvoid", 0, "void *|GLvoid *", 0, 0, 0, 0},{"_p_GLvoid", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}}; static swig_type_info _swigt__p_GLint[] = {{"_p_GLint", 0, "int *|GLint *", 0, 0, 0, 0},{"_p_GLint", 0, 0, 0, 0, 0, 0},{"_p_GLsizei", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}}; static swig_type_info _swigt__p_char[] = {{"_p_char", 0, "char *", 0, 0, 0, 0},{"_p_char", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}}; static swig_type_info _swigt__p_GLclampd[] = {{"_p_GLclampd", 0, "double *|GLclampd *", 0, 0, 0, 0},{"_p_GLclampd", 0, 0, 0, 0, 0, 0},{"_p_GLdouble", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}}; static swig_type_info _swigt__p_GLclampf[] = {{"_p_GLclampf", 0, "float *|GLclampf *", 0, 0, 0, 0},{"_p_GLfloat", 0, 0, 0, 0, 0, 0},{"_p_GLclampf", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}}; static swig_type_info _swigt__p_GLuint[] = {{"_p_GLuint", 0, "unsigned int *|GLuint *", 0, 0, 0, 0},{"_p_GLuint", 0, 0, 0, 0, 0, 0},{"_p_GLenum", 0, 0, 0, 0, 0, 0},{"_p_GLbitfield", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}}; static swig_type_info _swigt__ptrdiff_t[] = {{"_ptrdiff_t", 0, "ptrdiff_t", 0, 0, 0, 0},{"_ptrdiff_t", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}}; static swig_type_info _swigt__p_GLbyte[] = {{"_p_GLbyte", 0, "signed char *|GLbyte *", 0, 0, 0, 0},{"_p_GLbyte", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}}; static swig_type_info _swigt__p_GLbitfield[] = {{"_p_GLbitfield", 0, "unsigned int *|GLbitfield *", 0, 0, 0, 0},{"_p_GLuint", 0, 0, 0, 0, 0, 0},{"_p_GLbitfield", 0, 0, 0, 0, 0, 0},{"_p_GLenum", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}}; static swig_type_info _swigt__p_GLfloat[] = {{"_p_GLfloat", 0, "float *|GLfloat *", 0, 0, 0, 0},{"_p_GLfloat", 0, 0, 0, 0, 0, 0},{"_p_GLclampf", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}}; static swig_type_info _swigt__p_GLubyte[] = {{"_p_GLubyte", 0, "unsigned char *|GLubyte *", 0, 0, 0, 0},{"_p_GLboolean", 0, 0, 0, 0, 0, 0},{"_p_GLubyte", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}}; static swig_type_info _swigt__p_GLdouble[] = {{"_p_GLdouble", 0, "double *|GLdouble *", 0, 0, 0, 0},{"_p_GLclampd", 0, 0, 0, 0, 0, 0},{"_p_GLdouble", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}}; static swig_type_info *swig_types_initial[] = { _swigt__p_GLsizei, _swigt__p_GLshort, _swigt__p_GLboolean, _swigt__size_t, _swigt__p_GLushort, _swigt__p_GLenum, _swigt__p_GLvoid, _swigt__p_GLint, _swigt__p_char, _swigt__p_GLclampd, _swigt__p_GLclampf, _swigt__p_GLuint, _swigt__ptrdiff_t, _swigt__p_GLbyte, _swigt__p_GLbitfield, _swigt__p_GLfloat, _swigt__p_GLubyte, _swigt__p_GLdouble, 0 }; /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */ static swig_const_info swig_const_table[] = { { SWIG_PY_POINTER, (char*)"__version__", 0, 0, (void *)"1.1.4.1", &SWIGTYPE_p_char}, { SWIG_PY_POINTER, (char*)"__date__", 0, 0, (void *)"2004/11/14 23:19:50", &SWIGTYPE_p_char}, { SWIG_PY_POINTER, (char*)"__author__", 0, 0, (void *)"Mike C. Fletcher ", &SWIGTYPE_p_char}, { SWIG_PY_POINTER, (char*)"__doc__", 0, 0, (void *)"Server-side Vertex Arrays and Storage Buffers\n\n This extension defines an interface that allows multiple sets of\n vertex array data to be cached in persistent server-side memory.\n It is intended to allow client data to be stored in memory that\n can be directly accessed by graphics hardware.\n\n\tXXX Needs more error-checking and validation code!\n\nhttp://oss.sgi.com/projects/ogl-sample/registry/ATI/vertex_array_object.txt", &SWIGTYPE_p_char}, {0, 0, 0, 0.0, 0, 0}}; #ifdef __cplusplus } #endif #ifdef SWIG_LINK_RUNTIME #if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # if defined(_MSC_VER) || defined(__GNUC__) # define SWIGIMPORT(a) extern a # else # if defined(__BORLANDC__) # define SWIGIMPORT(a) a _export # else # define SWIGIMPORT(a) a # endif # endif #else # define SWIGIMPORT(a) a #endif #ifdef __cplusplus extern "C" #endif SWIGEXPORT(void *) SWIG_ReturnGlobalTypeList(void *); #endif #ifdef __cplusplus extern "C" #endif SWIGEXPORT(void) SWIG_init(void) { static PyObject *SWIG_globals = 0; static int typeinit = 0; PyObject *m, *d; int i; if (!SWIG_globals) SWIG_globals = SWIG_newvarlink(); /* Fix SwigMethods to carry the callback ptrs when needed */ SWIG_Python_FixMethods(SwigMethods, swig_const_table, swig_types, swig_types_initial); m = Py_InitModule((char *) SWIG_name, SwigMethods); d = PyModule_GetDict(m); if (!typeinit) { #ifdef SWIG_LINK_RUNTIME swig_type_list_handle = (swig_type_info **) SWIG_ReturnGlobalTypeList(swig_type_list_handle); #else # ifndef SWIG_STATIC_RUNTIME SWIG_Python_LookupTypePointer(&swig_type_list_handle); # endif #endif for (i = 0; swig_types_initial[i]; i++) { swig_types[i] = SWIG_TypeRegister(swig_types_initial[i]); } typeinit = 1; } SWIG_InstallConstants(d,swig_const_table); PyDict_SetItemString(d,"__version__", SWIG_FromCharPtr("1.1.4.1")); PyDict_SetItemString(d,"__date__", SWIG_FromCharPtr("2004/11/14 23:19:50")); { PyDict_SetItemString(d,"__api_version__", SWIG_From_int((int)(256))); } PyDict_SetItemString(d,"__author__", SWIG_FromCharPtr("Mike C. Fletcher ")); PyDict_SetItemString(d,"__doc__", SWIG_FromCharPtr("Server-side Vertex Arrays and Storage Buffers\n\n This extension defines an interface that allows multiple sets of\n vertex array data to be cached in persistent server-side memory.\n It is intended to allow client data to be stored in memory that\n can be directly accessed by graphics hardware.\n\n\tXXX Needs more error-checking and validation code!\n\nhttp://oss.sgi.com/projects/ogl-sample/registry/ATI/vertex_array_object.txt")); #ifdef NUMERIC PyArray_API = NULL; import_array(); init_util(); PyErr_Clear(); #endif { PyObject *util = PyImport_ImportModule("OpenGL.GL._GL__init__"); if (util) { PyObject *api_object = PyDict_GetItemString(PyModule_GetDict(util), "_util_API"); if (PyCObject_Check(api_object)) _util_API = (util_API*)PyCObject_AsVoidPtr(api_object); } } { PyDict_SetItemString(d,"GL_STATIC_ATI", SWIG_From_int((int)(0x8760))); } { PyDict_SetItemString(d,"GL_DYNAMIC_ATI", SWIG_From_int((int)(0x8761))); } { PyDict_SetItemString(d,"GL_PRESERVE_ATI", SWIG_From_int((int)(0x8762))); } { PyDict_SetItemString(d,"GL_DISCARD_ATI", SWIG_From_int((int)(0x8763))); } { PyDict_SetItemString(d,"GL_OBJECT_BUFFER_SIZE_ATI", SWIG_From_int((int)(0x8764))); } { PyDict_SetItemString(d,"GL_OBJECT_BUFFER_USAGE_ATI", SWIG_From_int((int)(0x8765))); } { PyDict_SetItemString(d,"GL_ARRAY_OBJECT_BUFFER_ATI", SWIG_From_int((int)(0x8766))); } { PyDict_SetItemString(d,"GL_ARRAY_OBJECT_OFFSET_ATI", SWIG_From_int((int)(0x8767))); } }