symbian-qemu-0.9.1-12/python-2.6.1/Modules/glmodule.c
changeset 1 2fb8b9db1c86
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/symbian-qemu-0.9.1-12/python-2.6.1/Modules/glmodule.c	Fri Jul 31 15:01:17 2009 +0100
@@ -0,0 +1,7633 @@
+
+/*
+Input used to generate the Python module "glmodule.c".
+The stub generator is a Python script called "cgen.py".
+
+Each definition must be contained on one line:
+
+<returntype> <name> <type> <arg> <type> <arg>
+
+<returntype> can be: void, short, long (XXX maybe others?)
+
+<type> can be: char, string, short, float, long, or double
+	string indicates a null terminated string;
+	if <type> is char and <arg> begins with a *, the * is stripped
+	and <type> is changed into string
+
+<arg> has the form <mode> or <mode>[<subscript>]
+	where <mode> can be
+		s: arg is sent
+		r: arg is received		(arg is a pointer)
+	and <subscript> can be (N and I are numbers):
+		N
+		argI
+		retval
+		N*argI
+		N*I
+		N*retval
+	In the case where the subscript consists of two parts
+	separated by *, the first part is the width of the matrix, and
+	the second part is the length of the matrix.  This order is
+	opposite from the order used in C to declare a two-dimensional
+	matrix.
+*/
+
+/*
+ * An attempt has been made to make this module switch threads on qread
+ * calls. It is far from safe, though.
+ */
+
+#include <gl.h>
+#include <device.h>
+
+#ifdef __sgi
+extern int devport();
+extern int textwritemask();
+extern int pagewritemask();
+extern int gewrite();
+extern int gettp();
+#endif
+
+#include "Python.h"
+#include "cgensupport.h"
+
+/*
+Some stubs are too complicated for the stub generator.
+We can include manually written versions of them here.
+A line starting with '%' gives the name of the function so the stub
+generator can include it in the table of functions.
+*/
+
+
+static PyObject *
+gl_qread(PyObject *self, PyObject *args)
+{
+	long retval;
+	short arg1 ;
+	Py_BEGIN_ALLOW_THREADS
+	retval = qread( & arg1 );
+	Py_END_ALLOW_THREADS
+	{ PyObject *v = PyTuple_New( 2 );
+	  if (v == NULL) return NULL;
+	  PyTuple_SetItem(v, 0, mknewlongobject(retval));
+	  PyTuple_SetItem(v, 1, mknewshortobject(arg1));
+	  return v;
+	}
+}
+
+
+/*
+varray -- an array of v.. calls.
+The argument is an array (maybe list or tuple) of points.
+Each point must be a tuple or list of coordinates (x, y, z).
+The points may be 2- or 3-dimensional but must all have the
+same dimension.  Float and int values may be mixed however.
+The points are always converted to 3D double precision points
+by assuming z=0.0 if necessary (as indicated in the man page),
+and for each point v3d() is called.
+*/
+
+
+static PyObject *
+gl_varray(PyObject *self, PyObject *args)
+{
+	PyObject *v, *w=NULL;
+	int i, n, width;
+	double vec[3];
+	PyObject * (*getitem)(PyObject *, int);
+	
+	if (!PyArg_GetObject(args, 1, 0, &v))
+		return NULL;
+	
+	if (PyList_Check(v)) {
+		n = PyList_Size(v);
+		getitem = PyList_GetItem;
+	}
+	else if (PyTuple_Check(v)) {
+		n = PyTuple_Size(v);
+		getitem = PyTuple_GetItem;
+	}
+	else {
+		PyErr_BadArgument();
+		return NULL;
+	}
+	
+	if (n == 0) {
+		Py_INCREF(Py_None);
+		return Py_None;
+	}
+	if (n > 0)
+		w = (*getitem)(v, 0);
+	
+	width = 0;
+	if (w == NULL) {
+	}
+	else if (PyList_Check(w)) {
+		width = PyList_Size(w);
+	}
+	else if (PyTuple_Check(w)) {
+		width = PyTuple_Size(w);
+	}
+	
+	switch (width) {
+	case 2:
+		vec[2] = 0.0;
+		/* Fall through */
+	case 3:
+		break;
+	default:
+		PyErr_BadArgument();
+		return NULL;
+	}
+	
+	for (i = 0; i < n; i++) {
+		w = (*getitem)(v, i);
+		if (!PyArg_GetDoubleArray(w, 1, 0, width, vec))
+			return NULL;
+		v3d(vec);
+	}
+	
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/*
+vnarray, nvarray -- an array of n3f and v3f calls.
+The argument is an array (list or tuple) of pairs of points and normals.
+Each pair is a tuple (NOT a list) of a point and a normal for that point.
+Each point or normal must be a tuple (NOT a list) of coordinates (x, y, z).
+Three coordinates must be given.  Float and int values may be mixed.
+For each pair, n3f() is called for the normal, and then v3f() is called
+for the vector.
+
+vnarray and nvarray differ only in the order of the vector and normal in
+the pair: vnarray expects (v, n) while nvarray expects (n, v).
+*/
+
+static PyObject *gen_nvarray(); /* Forward */
+
+
+static PyObject *
+gl_nvarray(PyObject *self, PyObject *args)
+{
+	return gen_nvarray(args, 0);
+}
+
+
+static PyObject *
+gl_vnarray(PyObject *self, PyObject *args)
+{
+	return gen_nvarray(args, 1);
+}
+
+/* Generic, internal version of {nv,nv}array: inorm indicates the
+   argument order, 0: normal first, 1: vector first. */
+
+static PyObject *
+gen_nvarray(PyObject *args, int inorm)
+{
+	PyObject *v, *w, *wnorm, *wvec;
+	int i, n;
+	float norm[3], vec[3];
+	PyObject * (*getitem)(PyObject *, int);
+	
+	if (!PyArg_GetObject(args, 1, 0, &v))
+		return NULL;
+	
+	if (PyList_Check(v)) {
+		n = PyList_Size(v);
+		getitem = PyList_GetItem;
+	}
+	else if (PyTuple_Check(v)) {
+		n = PyTuple_Size(v);
+		getitem = PyTuple_GetItem;
+	}
+	else {
+		PyErr_BadArgument();
+		return NULL;
+	}
+	
+	for (i = 0; i < n; i++) {
+		w = (*getitem)(v, i);
+		if (!PyTuple_Check(w) || PyTuple_Size(w) != 2) {
+			PyErr_BadArgument();
+			return NULL;
+		}
+		wnorm = PyTuple_GetItem(w, inorm);
+		wvec = PyTuple_GetItem(w, 1 - inorm);
+		if (!PyArg_GetFloatArray(wnorm, 1, 0, 3, norm) ||
+			!PyArg_GetFloatArray(wvec, 1, 0, 3, vec))
+			return NULL;
+		n3f(norm);
+		v3f(vec);
+	}
+	
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* nurbssurface(s_knots[], t_knots[], ctl[][], s_order, t_order, type).
+   The dimensions of ctl[] are computed as follows:
+   [len(s_knots) - s_order], [len(t_knots) - t_order]
+*/
+
+
+static PyObject *
+gl_nurbssurface(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	double * arg2 ;
+	long arg3 ;
+	double * arg4 ;
+	double *arg5 ;
+	long arg6 ;
+	long arg7 ;
+	long arg8 ;
+	long ncoords;
+	long s_byte_stride, t_byte_stride;
+	long s_nctl, t_nctl;
+	long s, t;
+	PyObject *v, *w, *pt;
+	double *pnext;
+	if (!PyArg_GetLongArraySize(args, 6, 0, &arg1))
+		return NULL;
+	if ((arg2 = PyMem_NEW(double, arg1 )) == NULL) {
+		return PyErr_NoMemory();
+	}
+	if (!PyArg_GetDoubleArray(args, 6, 0, arg1 , arg2))
+		return NULL;
+	if (!PyArg_GetLongArraySize(args, 6, 1, &arg3))
+		return NULL;
+	if ((arg4 = PyMem_NEW(double, arg3 )) == NULL) {
+		return PyErr_NoMemory();
+	}
+	if (!PyArg_GetDoubleArray(args, 6, 1, arg3 , arg4))
+		return NULL;
+	if (!PyArg_GetLong(args, 6, 3, &arg6))
+		return NULL;
+	if (!PyArg_GetLong(args, 6, 4, &arg7))
+		return NULL;
+	if (!PyArg_GetLong(args, 6, 5, &arg8))
+		return NULL;
+	if (arg8 == N_XYZ)
+		ncoords = 3;
+	else if (arg8 == N_XYZW)
+		ncoords = 4;
+	else {
+		PyErr_BadArgument();
+		return NULL;
+	}
+	s_nctl = arg1 - arg6;
+	t_nctl = arg3 - arg7;
+	if (!PyArg_GetObject(args, 6, 2, &v))
+		return NULL;
+	if (!PyList_Check(v) || PyList_Size(v) != s_nctl) {
+		PyErr_BadArgument();
+		return NULL;
+	}
+	if ((arg5 = PyMem_NEW(double, s_nctl*t_nctl*ncoords )) == NULL) {
+		return PyErr_NoMemory();
+	}
+	pnext = arg5;
+	for (s = 0; s < s_nctl; s++) {
+		w = PyList_GetItem(v, s);
+		if (w == NULL || !PyList_Check(w) ||
+					PyList_Size(w) != t_nctl) {
+			PyErr_BadArgument();
+			return NULL;
+		}
+		for (t = 0; t < t_nctl; t++) {
+			pt = PyList_GetItem(w, t);
+			if (!PyArg_GetDoubleArray(pt, 1, 0, ncoords, pnext))
+				return NULL;
+			pnext += ncoords;
+		}
+	}
+	s_byte_stride = sizeof(double) * ncoords;
+	t_byte_stride = s_byte_stride * s_nctl;
+	nurbssurface( arg1 , arg2 , arg3 , arg4 ,
+		s_byte_stride , t_byte_stride , arg5 , arg6 , arg7 , arg8 );
+	PyMem_DEL(arg2);
+	PyMem_DEL(arg4);
+	PyMem_DEL(arg5);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* nurbscurve(knots, ctlpoints, order, type).
+   The length of ctlpoints is len(knots)-order. */
+
+
+static PyObject *
+gl_nurbscurve(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	double * arg2 ;
+	long arg3 ;
+	double * arg4 ;
+	long arg5 ;
+	long arg6 ;
+	int ncoords, npoints;
+	int i;
+	PyObject *v;
+	double *pnext;
+	if (!PyArg_GetLongArraySize(args, 4, 0, &arg1))
+		return NULL;
+	if ((arg2 = PyMem_NEW(double, arg1 )) == NULL) {
+		return PyErr_NoMemory();
+	}
+	if (!PyArg_GetDoubleArray(args, 4, 0, arg1 , arg2))
+		return NULL;
+	if (!PyArg_GetLong(args, 4, 2, &arg5))
+		return NULL;
+	if (!PyArg_GetLong(args, 4, 3, &arg6))
+		return NULL;
+	if (arg6 == N_ST)
+		ncoords = 2;
+	else if (arg6 == N_STW)
+		ncoords = 3;
+	else {
+		PyErr_BadArgument();
+		return NULL;
+	}
+	npoints = arg1 - arg5;
+	if (!PyArg_GetObject(args, 4, 1, &v))
+		return NULL;
+	if (!PyList_Check(v) || PyList_Size(v) != npoints) {
+		PyErr_BadArgument();
+		return NULL;
+	}
+	if ((arg4 = PyMem_NEW(double, npoints*ncoords )) == NULL) {
+		return PyErr_NoMemory();
+	}
+	pnext = arg4;
+	for (i = 0; i < npoints; i++) {
+		if (!PyArg_GetDoubleArray(PyList_GetItem(v, i), 1, 0, ncoords, pnext))
+			return NULL;
+		pnext += ncoords;
+	}
+	arg3 = (sizeof(double)) * ncoords;
+	nurbscurve( arg1 , arg2 , arg3 , arg4 , arg5 , arg6 );
+	PyMem_DEL(arg2);
+	PyMem_DEL(arg4);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* pwlcurve(points, type).
+   Points is a list of points. Type must be N_ST. */
+
+
+static PyObject *
+gl_pwlcurve(PyObject *self, PyObject *args)
+{
+	PyObject *v;
+	long type;
+	double *data, *pnext;
+	long npoints, ncoords;
+	int i;
+	if (!PyArg_GetObject(args, 2, 0, &v))
+		return NULL;
+	if (!PyArg_GetLong(args, 2, 1, &type))
+		return NULL;
+	if (!PyList_Check(v)) {
+		PyErr_BadArgument();
+		return NULL;
+	}
+	npoints = PyList_Size(v);
+	if (type == N_ST)
+		ncoords = 2;
+	else {
+		PyErr_BadArgument();
+		return NULL;
+	}
+	if ((data = PyMem_NEW(double, npoints*ncoords)) == NULL) {
+		return PyErr_NoMemory();
+	}
+	pnext = data;
+	for (i = 0; i < npoints; i++) {
+		if (!PyArg_GetDoubleArray(PyList_GetItem(v, i), 1, 0, ncoords, pnext))
+			return NULL;
+		pnext += ncoords;
+	}
+	pwlcurve(npoints, data, sizeof(double)*ncoords, type);
+	PyMem_DEL(data);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+
+/* Picking and Selecting */
+
+static short *pickbuffer = NULL;
+static long pickbuffersize;
+
+static PyObject *
+pick_select(PyObject *args, void (*func)())
+{
+	if (!PyArg_GetLong(args, 1, 0, &pickbuffersize))
+		return NULL;
+	if (pickbuffer != NULL) {
+		PyErr_SetString(PyExc_RuntimeError,
+			"pick/gselect: already picking/selecting");
+		return NULL;
+	}
+	if ((pickbuffer = PyMem_NEW(short, pickbuffersize)) == NULL) {
+		return PyErr_NoMemory();
+	}
+	(*func)(pickbuffer, pickbuffersize);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+static PyObject *
+endpick_select(long (*func)())
+{
+	PyObject *v, *w;
+	int i, nhits, n;
+	if (pickbuffer == NULL) {
+		PyErr_SetString(PyExc_RuntimeError,
+			"endpick/endselect: not in pick/select mode");
+		return NULL;
+	}
+	nhits = (*func)(pickbuffer);
+	if (nhits < 0) {
+		nhits = -nhits; /* How to report buffer overflow otherwise? */
+	}
+	/* Scan the buffer to see how many integers */
+	n = 0;
+	for (; nhits > 0; nhits--) {
+		n += 1 + pickbuffer[n];
+	}
+	v = PyList_New(n);
+	if (v == NULL)
+		return NULL;
+	/* XXX Could do it nicer and interpret the data structure here,
+	   returning a list of lists. But this can be done in Python... */
+	for (i = 0; i < n; i++) {
+		w = PyInt_FromLong((long)pickbuffer[i]);
+		if (w == NULL) {
+			Py_DECREF(v);
+			return NULL;
+		}
+		PyList_SetItem(v, i, w);
+	}
+	PyMem_DEL(pickbuffer);
+	pickbuffer = NULL;
+	return v;
+}
+
+extern void pick(), gselect();
+extern long endpick(), endselect();
+
+static PyObject *gl_pick(PyObject *self, PyObject *args)
+{
+	return pick_select(args, pick);
+}
+
+static PyObject *gl_endpick(PyObject *self)
+{
+	return endpick_select(endpick);
+}
+
+static PyObject *gl_gselect(PyObject *self, PyObject *args)
+{
+	return pick_select(args, gselect);
+}
+
+static PyObject *gl_endselect(PyObject *self)
+{
+	return endpick_select(endselect);
+}
+
+
+/* XXX The generator botches this one.  Here's a quick hack to fix it. */
+
+/* XXX The generator botches this one.  Here's a quick hack to fix it. */
+
+
+static PyObject *
+gl_getmatrix(PyObject *self, PyObject *args)
+{
+	Matrix arg1;
+	PyObject *v, *w;
+	int i, j;
+	getmatrix( arg1 );
+	v = PyList_New(16);
+	if (v == NULL) {
+		return PyErr_NoMemory();
+	}
+	for (i = 0; i < 4; i++) for (j = 0; j < 4; j++) {
+		w = mknewfloatobject(arg1[i][j]);
+		if (w == NULL) {
+			Py_DECREF(v);
+			return NULL;
+		}
+		PyList_SetItem(v, i*4+j, w);
+	}
+	return v;
+}
+
+/* Here's an alternate version that returns a 4x4 matrix instead of
+   a vector.  Unfortunately it is incompatible with loadmatrix and
+   multmatrix... */
+
+
+static PyObject *
+gl_altgetmatrix(PyObject *self, PyObject *args)
+{
+	Matrix arg1;
+	PyObject *v, *w;
+	int i, j;
+	getmatrix( arg1 );
+	v = PyList_New(4);
+	if (v == NULL) {
+		return NULL;
+	}
+	for (i = 0; i < 4; i++) {
+		w = PyList_New(4);
+		if (w == NULL) {
+			Py_DECREF(v);
+			return NULL;
+		}
+		PyList_SetItem(v, i, w);
+	}
+	for (i = 0; i < 4; i++) {
+		for (j = 0; j < 4; j++) {
+			w = mknewfloatobject(arg1[i][j]);
+			if (w == NULL) {
+				Py_DECREF(v);
+				return NULL;
+			}
+			PyList_SetItem(PyList_GetItem(v, i), j, w);
+		}
+	}
+	return v;
+}
+
+
+static PyObject *
+gl_lrectwrite(PyObject *self, PyObject *args)
+{
+	short x1 ;
+	short y1 ;
+	short x2 ;
+	short y2 ;
+	string parray ;
+	PyObject *s;
+#if 0
+	int pixcount;
+#endif
+	if (!PyArg_GetShort(args, 5, 0, &x1))
+		return NULL;
+	if (!PyArg_GetShort(args, 5, 1, &y1))
+		return NULL;
+	if (!PyArg_GetShort(args, 5, 2, &x2))
+		return NULL;
+	if (!PyArg_GetShort(args, 5, 3, &y2))
+		return NULL;
+	if (!PyArg_GetString(args, 5, 4, &parray))
+		return NULL;
+	if (!PyArg_GetObject(args, 5, 4, &s))
+		return NULL;
+#if 0
+/* Don't check this, it breaks experiments with pixmode(PM_SIZE, ...) */
+	pixcount = (long)(x2+1-x1) * (long)(y2+1-y1);
+	if (!PyString_Check(s) || PyString_Size(s) != pixcount*sizeof(long)) {
+		PyErr_SetString(PyExc_RuntimeError,
+			   "string arg to lrectwrite has wrong size");
+		return NULL;
+	}
+#endif
+	lrectwrite( x1 , y1 , x2 , y2 , (unsigned long *) parray );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+
+static PyObject *
+gl_lrectread(PyObject *self, PyObject *args)
+{
+	short x1 ;
+	short y1 ;
+	short x2 ;
+	short y2 ;
+	PyObject *parray;
+	int pixcount;
+	if (!PyArg_GetShort(args, 4, 0, &x1))
+		return NULL;
+	if (!PyArg_GetShort(args, 4, 1, &y1))
+		return NULL;
+	if (!PyArg_GetShort(args, 4, 2, &x2))
+		return NULL;
+	if (!PyArg_GetShort(args, 4, 3, &y2))
+		return NULL;
+	pixcount = (long)(x2+1-x1) * (long)(y2+1-y1);
+	parray = PyString_FromStringAndSize((char *)NULL, pixcount*sizeof(long));
+	if (parray == NULL)
+		return NULL; /* No memory */
+	lrectread(x1, y1, x2, y2, (unsigned long *) PyString_AsString(parray));
+	return parray;
+}
+
+
+static PyObject *
+gl_readdisplay(PyObject *self, PyObject *args)
+{
+        short x1, y1, x2, y2;
+	unsigned long *parray, hints;
+	long size, size_ret;
+	PyObject *rv;
+
+	if ( !PyArg_Parse(args, "hhhhl", &x1, &y1, &x2, &y2, &hints) )
+	  return 0;
+	size = (long)(x2+1-x1) * (long)(y2+1-y1);
+	rv = PyString_FromStringAndSize((char *)NULL, size*sizeof(long));
+	if ( rv == NULL )
+	  return NULL;
+	parray = (unsigned long *)PyString_AsString(rv);
+	size_ret = readdisplay(x1, y1, x2, y2, parray, hints);
+	if ( size_ret != size ) {
+	    printf("gl_readdisplay: got %ld pixels, expected %ld\n",
+		   size_ret, size);
+	    PyErr_SetString(PyExc_RuntimeError, "readdisplay returned unexpected length");
+	    return NULL;
+	}
+	return rv;
+}
+
+/* Desperately needed, here are tools to compress and decompress
+   the data manipulated by lrectread/lrectwrite.
+
+   gl.packrect(width, height, packfactor, bigdata) --> smalldata
+		makes 'bigdata' 4*(packfactor**2) times smaller by:
+		- turning it into B/W (a factor 4)
+		- replacing squares of size pacfactor by one
+		  representative
+
+   gl.unpackrect(width, height, packfactor, smalldata) --> bigdata
+		is the inverse; the numeric arguments must be *the same*.
+
+   Both work best if width and height are multiples of packfactor
+   (in fact unpackrect will leave garbage bytes).
+*/
+
+
+static PyObject *
+gl_packrect(PyObject *self, PyObject *args)
+{
+	long width, height, packfactor;
+	char *s;
+	PyObject *unpacked, *packed;
+	int pixcount, packedcount, x, y, r, g, b;
+	unsigned long pixel;
+	unsigned char *p;
+	unsigned long *parray;
+	if (!PyArg_GetLong(args, 4, 0, &width))
+		return NULL;
+	if (!PyArg_GetLong(args, 4, 1, &height))
+		return NULL;
+	if (!PyArg_GetLong(args, 4, 2, &packfactor))
+		return NULL;
+	if (!PyArg_GetString(args, 4, 3, &s)) /* For type checking only */
+		return NULL;
+	if (!PyArg_GetObject(args, 4, 3, &unpacked))
+		return NULL;
+	if (width <= 0 || height <= 0 || packfactor <= 0) {
+		PyErr_SetString(PyExc_RuntimeError, "packrect args must be > 0");
+		return NULL;
+	}
+	pixcount = width*height;
+	packedcount = ((width+packfactor-1)/packfactor) *
+		((height+packfactor-1)/packfactor);
+	if (PyString_Size(unpacked) != pixcount*sizeof(long)) {
+		PyErr_SetString(PyExc_RuntimeError,
+			   "string arg to packrect has wrong size");
+		return NULL;
+	}
+	packed = PyString_FromStringAndSize((char *)NULL, packedcount);
+	if (packed == NULL)
+		return NULL;
+	parray = (unsigned long *) PyString_AsString(unpacked);
+	p = (unsigned char *) PyString_AsString(packed);
+	for (y = 0; y < height; y += packfactor, parray += packfactor*width) {
+		for (x = 0; x < width; x += packfactor) {
+			pixel = parray[x];
+			r = pixel & 0xff;
+			g = (pixel >> 8) & 0xff;
+			b = (pixel >> 16) & 0xff;
+			*p++ = (30*r+59*g+11*b) / 100;
+		}
+	}
+	return packed;
+}
+
+
+static unsigned long unpacktab[256];
+static int unpacktab_inited = 0;
+
+static PyObject *
+gl_unpackrect(PyObject *self, PyObject *args)
+{
+	long width, height, packfactor;
+	char *s;
+	PyObject *unpacked, *packed;
+	int pixcount, packedcount;
+	register unsigned char *p;
+	register unsigned long *parray;
+	if (!unpacktab_inited) {
+		register int white;
+		for (white = 256; --white >= 0; )
+			unpacktab[white] = white * 0x010101L;
+		unpacktab_inited++;
+	}
+	if (!PyArg_GetLong(args, 4, 0, &width))
+		return NULL;
+	if (!PyArg_GetLong(args, 4, 1, &height))
+		return NULL;
+	if (!PyArg_GetLong(args, 4, 2, &packfactor))
+		return NULL;
+	if (!PyArg_GetString(args, 4, 3, &s)) /* For type checking only */
+		return NULL;
+	if (!PyArg_GetObject(args, 4, 3, &packed))
+		return NULL;
+	if (width <= 0 || height <= 0 || packfactor <= 0) {
+		PyErr_SetString(PyExc_RuntimeError, "packrect args must be > 0");
+		return NULL;
+	}
+	pixcount = width*height;
+	packedcount = ((width+packfactor-1)/packfactor) *
+		((height+packfactor-1)/packfactor);
+	if (PyString_Size(packed) != packedcount) {
+		PyErr_SetString(PyExc_RuntimeError,
+			   "string arg to unpackrect has wrong size");
+		return NULL;
+	}
+	unpacked = PyString_FromStringAndSize((char *)NULL, pixcount*sizeof(long));
+	if (unpacked == NULL)
+		return NULL;
+	parray = (unsigned long *) PyString_AsString(unpacked);
+	p = (unsigned char *) PyString_AsString(packed);
+	if (packfactor == 1 && width*height > 0) {
+		/* Just expand bytes to longs */
+		register int x = width * height;
+		do {
+			*parray++ = unpacktab[*p++];
+		} while (--x >= 0);
+	}
+	else {
+		register int y;
+		for (y = 0; y < height-packfactor+1;
+		     y += packfactor, parray += packfactor*width) {
+			register int x;
+			for (x = 0; x < width-packfactor+1; x += packfactor) {
+				register unsigned long pixel = unpacktab[*p++];
+				register int i;
+				for (i = packfactor*width; (i-=width) >= 0;) {
+					register int j;
+					for (j = packfactor; --j >= 0; )
+						parray[i+x+j] = pixel;
+				}
+			}
+		}
+	}
+	return unpacked;
+}
+
+static PyObject *
+gl_gversion(PyObject *self, PyObject *args)
+{
+	char buf[20];
+	gversion(buf);
+	return PyString_FromString(buf);
+}
+
+
+/* void clear - Manual because of clash with termcap */
+static PyObject *
+gl_clear(PyObject *self, PyObject *args)
+{
+	__GLclear( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* End of manually written stubs */
+
+
+/* long getshade */
+
+static PyObject *
+gl_getshade(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getshade( );
+	return mknewlongobject(retval);
+}
+
+/* void devport short s long s */
+
+static PyObject *
+gl_devport(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	long arg2 ;
+	if (!getishortarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	devport( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rdr2i long s long s */
+
+static PyObject *
+gl_rdr2i(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	rdr2i( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rectfs short s short s short s short s */
+
+static PyObject *
+gl_rectfs(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	short arg4 ;
+	if (!getishortarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getishortarg(args, 4, 3, &arg4))
+		return NULL;
+	rectfs( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rects short s short s short s short s */
+
+static PyObject *
+gl_rects(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	short arg4 ;
+	if (!getishortarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getishortarg(args, 4, 3, &arg4))
+		return NULL;
+	rects( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rmv2i long s long s */
+
+static PyObject *
+gl_rmv2i(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	rmv2i( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void noport */
+
+static PyObject *
+gl_noport(PyObject *self, PyObject *args)
+{
+	noport( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void popviewport */
+
+static PyObject *
+gl_popviewport(PyObject *self, PyObject *args)
+{
+	popviewport( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void clearhitcode */
+
+static PyObject *
+gl_clearhitcode(PyObject *self, PyObject *args)
+{
+	clearhitcode( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void closeobj */
+
+static PyObject *
+gl_closeobj(PyObject *self, PyObject *args)
+{
+	closeobj( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void cursoff */
+
+static PyObject *
+gl_cursoff(PyObject *self, PyObject *args)
+{
+	cursoff( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void curson */
+
+static PyObject *
+gl_curson(PyObject *self, PyObject *args)
+{
+	curson( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void doublebuffer */
+
+static PyObject *
+gl_doublebuffer(PyObject *self, PyObject *args)
+{
+	doublebuffer( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void finish */
+
+static PyObject *
+gl_finish(PyObject *self, PyObject *args)
+{
+	finish( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void gconfig */
+
+static PyObject *
+gl_gconfig(PyObject *self, PyObject *args)
+{
+	gconfig( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void ginit */
+
+static PyObject *
+gl_ginit(PyObject *self, PyObject *args)
+{
+	ginit( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void greset */
+
+static PyObject *
+gl_greset(PyObject *self, PyObject *args)
+{
+	greset( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void multimap */
+
+static PyObject *
+gl_multimap(PyObject *self, PyObject *args)
+{
+	multimap( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void onemap */
+
+static PyObject *
+gl_onemap(PyObject *self, PyObject *args)
+{
+	onemap( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void popattributes */
+
+static PyObject *
+gl_popattributes(PyObject *self, PyObject *args)
+{
+	popattributes( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void popmatrix */
+
+static PyObject *
+gl_popmatrix(PyObject *self, PyObject *args)
+{
+	popmatrix( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pushattributes */
+
+static PyObject *
+gl_pushattributes(PyObject *self, PyObject *args)
+{
+	pushattributes( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pushmatrix */
+
+static PyObject *
+gl_pushmatrix(PyObject *self, PyObject *args)
+{
+	pushmatrix( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pushviewport */
+
+static PyObject *
+gl_pushviewport(PyObject *self, PyObject *args)
+{
+	pushviewport( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void qreset */
+
+static PyObject *
+gl_qreset(PyObject *self, PyObject *args)
+{
+	qreset( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void RGBmode */
+
+static PyObject *
+gl_RGBmode(PyObject *self, PyObject *args)
+{
+	RGBmode( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void singlebuffer */
+
+static PyObject *
+gl_singlebuffer(PyObject *self, PyObject *args)
+{
+	singlebuffer( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void swapbuffers */
+
+static PyObject *
+gl_swapbuffers(PyObject *self, PyObject *args)
+{
+	swapbuffers( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void gsync */
+
+static PyObject *
+gl_gsync(PyObject *self, PyObject *args)
+{
+	gsync( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void gflush */
+
+static PyObject *
+gl_gflush(PyObject *self, PyObject *args)
+{
+	gflush( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void tpon */
+
+static PyObject *
+gl_tpon(PyObject *self, PyObject *args)
+{
+	tpon( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void tpoff */
+
+static PyObject *
+gl_tpoff(PyObject *self, PyObject *args)
+{
+	tpoff( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void clkon */
+
+static PyObject *
+gl_clkon(PyObject *self, PyObject *args)
+{
+	clkon( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void clkoff */
+
+static PyObject *
+gl_clkoff(PyObject *self, PyObject *args)
+{
+	clkoff( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void ringbell */
+
+static PyObject *
+gl_ringbell(PyObject *self, PyObject *args)
+{
+	ringbell( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void gbegin */
+
+static PyObject *
+gl_gbegin(PyObject *self, PyObject *args)
+{
+	gbegin( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void textinit */
+
+static PyObject *
+gl_textinit(PyObject *self, PyObject *args)
+{
+	textinit( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void initnames */
+
+static PyObject *
+gl_initnames(PyObject *self, PyObject *args)
+{
+	initnames( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pclos */
+
+static PyObject *
+gl_pclos(PyObject *self, PyObject *args)
+{
+	pclos( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void popname */
+
+static PyObject *
+gl_popname(PyObject *self, PyObject *args)
+{
+	popname( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void spclos */
+
+static PyObject *
+gl_spclos(PyObject *self, PyObject *args)
+{
+	spclos( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void zclear */
+
+static PyObject *
+gl_zclear(PyObject *self, PyObject *args)
+{
+	zclear( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void screenspace */
+
+static PyObject *
+gl_screenspace(PyObject *self, PyObject *args)
+{
+	screenspace( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void reshapeviewport */
+
+static PyObject *
+gl_reshapeviewport(PyObject *self, PyObject *args)
+{
+	reshapeviewport( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void winpush */
+
+static PyObject *
+gl_winpush(PyObject *self, PyObject *args)
+{
+	winpush( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void winpop */
+
+static PyObject *
+gl_winpop(PyObject *self, PyObject *args)
+{
+	winpop( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void foreground */
+
+static PyObject *
+gl_foreground(PyObject *self, PyObject *args)
+{
+	foreground( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void endfullscrn */
+
+static PyObject *
+gl_endfullscrn(PyObject *self, PyObject *args)
+{
+	endfullscrn( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void endpupmode */
+
+static PyObject *
+gl_endpupmode(PyObject *self, PyObject *args)
+{
+	endpupmode( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void fullscrn */
+
+static PyObject *
+gl_fullscrn(PyObject *self, PyObject *args)
+{
+	fullscrn( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pupmode */
+
+static PyObject *
+gl_pupmode(PyObject *self, PyObject *args)
+{
+	pupmode( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void winconstraints */
+
+static PyObject *
+gl_winconstraints(PyObject *self, PyObject *args)
+{
+	winconstraints( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pagecolor short s */
+
+static PyObject *
+gl_pagecolor(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	pagecolor( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void textcolor short s */
+
+static PyObject *
+gl_textcolor(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	textcolor( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void color short s */
+
+static PyObject *
+gl_color(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	color( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void curveit short s */
+
+static PyObject *
+gl_curveit(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	curveit( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void font short s */
+
+static PyObject *
+gl_font(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	font( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void linewidth short s */
+
+static PyObject *
+gl_linewidth(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	linewidth( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void setlinestyle short s */
+
+static PyObject *
+gl_setlinestyle(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	setlinestyle( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void setmap short s */
+
+static PyObject *
+gl_setmap(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	setmap( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void swapinterval short s */
+
+static PyObject *
+gl_swapinterval(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	swapinterval( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void writemask short s */
+
+static PyObject *
+gl_writemask(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	writemask( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void textwritemask short s */
+
+static PyObject *
+gl_textwritemask(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	textwritemask( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void qdevice short s */
+
+static PyObject *
+gl_qdevice(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	qdevice( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void unqdevice short s */
+
+static PyObject *
+gl_unqdevice(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	unqdevice( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void curvebasis short s */
+
+static PyObject *
+gl_curvebasis(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	curvebasis( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void curveprecision short s */
+
+static PyObject *
+gl_curveprecision(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	curveprecision( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void loadname short s */
+
+static PyObject *
+gl_loadname(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	loadname( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void passthrough short s */
+
+static PyObject *
+gl_passthrough(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	passthrough( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pushname short s */
+
+static PyObject *
+gl_pushname(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	pushname( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void setmonitor short s */
+
+static PyObject *
+gl_setmonitor(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	setmonitor( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void setshade short s */
+
+static PyObject *
+gl_setshade(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	setshade( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void setpattern short s */
+
+static PyObject *
+gl_setpattern(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	setpattern( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pagewritemask short s */
+
+static PyObject *
+gl_pagewritemask(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	pagewritemask( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void callobj long s */
+
+static PyObject *
+gl_callobj(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	callobj( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void delobj long s */
+
+static PyObject *
+gl_delobj(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	delobj( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void editobj long s */
+
+static PyObject *
+gl_editobj(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	editobj( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void makeobj long s */
+
+static PyObject *
+gl_makeobj(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	makeobj( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void maketag long s */
+
+static PyObject *
+gl_maketag(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	maketag( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void chunksize long s */
+
+static PyObject *
+gl_chunksize(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	chunksize( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void compactify long s */
+
+static PyObject *
+gl_compactify(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	compactify( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void deltag long s */
+
+static PyObject *
+gl_deltag(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	deltag( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void lsrepeat long s */
+
+static PyObject *
+gl_lsrepeat(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	lsrepeat( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void objinsert long s */
+
+static PyObject *
+gl_objinsert(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	objinsert( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void objreplace long s */
+
+static PyObject *
+gl_objreplace(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	objreplace( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void winclose long s */
+
+static PyObject *
+gl_winclose(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	winclose( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void blanktime long s */
+
+static PyObject *
+gl_blanktime(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	blanktime( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void freepup long s */
+
+static PyObject *
+gl_freepup(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	freepup( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void backbuffer long s */
+
+static PyObject *
+gl_backbuffer(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	backbuffer( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void frontbuffer long s */
+
+static PyObject *
+gl_frontbuffer(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	frontbuffer( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void lsbackup long s */
+
+static PyObject *
+gl_lsbackup(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	lsbackup( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void resetls long s */
+
+static PyObject *
+gl_resetls(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	resetls( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void lampon long s */
+
+static PyObject *
+gl_lampon(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	lampon( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void lampoff long s */
+
+static PyObject *
+gl_lampoff(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	lampoff( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void setbell long s */
+
+static PyObject *
+gl_setbell(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	setbell( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void blankscreen long s */
+
+static PyObject *
+gl_blankscreen(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	blankscreen( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void depthcue long s */
+
+static PyObject *
+gl_depthcue(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	depthcue( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void zbuffer long s */
+
+static PyObject *
+gl_zbuffer(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	zbuffer( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void backface long s */
+
+static PyObject *
+gl_backface(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	backface( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void cmov2i long s long s */
+
+static PyObject *
+gl_cmov2i(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	cmov2i( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void draw2i long s long s */
+
+static PyObject *
+gl_draw2i(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	draw2i( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void move2i long s long s */
+
+static PyObject *
+gl_move2i(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	move2i( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pnt2i long s long s */
+
+static PyObject *
+gl_pnt2i(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	pnt2i( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void patchbasis long s long s */
+
+static PyObject *
+gl_patchbasis(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	patchbasis( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void patchprecision long s long s */
+
+static PyObject *
+gl_patchprecision(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	patchprecision( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pdr2i long s long s */
+
+static PyObject *
+gl_pdr2i(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	pdr2i( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pmv2i long s long s */
+
+static PyObject *
+gl_pmv2i(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	pmv2i( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rpdr2i long s long s */
+
+static PyObject *
+gl_rpdr2i(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	rpdr2i( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rpmv2i long s long s */
+
+static PyObject *
+gl_rpmv2i(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	rpmv2i( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void xfpt2i long s long s */
+
+static PyObject *
+gl_xfpt2i(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	xfpt2i( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void objdelete long s long s */
+
+static PyObject *
+gl_objdelete(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	objdelete( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void patchcurves long s long s */
+
+static PyObject *
+gl_patchcurves(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	patchcurves( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void minsize long s long s */
+
+static PyObject *
+gl_minsize(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	minsize( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void maxsize long s long s */
+
+static PyObject *
+gl_maxsize(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	maxsize( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void keepaspect long s long s */
+
+static PyObject *
+gl_keepaspect(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	keepaspect( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void prefsize long s long s */
+
+static PyObject *
+gl_prefsize(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	prefsize( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void stepunit long s long s */
+
+static PyObject *
+gl_stepunit(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	stepunit( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void fudge long s long s */
+
+static PyObject *
+gl_fudge(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	fudge( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void winmove long s long s */
+
+static PyObject *
+gl_winmove(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	winmove( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void attachcursor short s short s */
+
+static PyObject *
+gl_attachcursor(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	if (!getishortarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 2, 1, &arg2))
+		return NULL;
+	attachcursor( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void deflinestyle short s short s */
+
+static PyObject *
+gl_deflinestyle(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	if (!getishortarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 2, 1, &arg2))
+		return NULL;
+	deflinestyle( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void noise short s short s */
+
+static PyObject *
+gl_noise(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	if (!getishortarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 2, 1, &arg2))
+		return NULL;
+	noise( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void picksize short s short s */
+
+static PyObject *
+gl_picksize(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	if (!getishortarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 2, 1, &arg2))
+		return NULL;
+	picksize( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void qenter short s short s */
+
+static PyObject *
+gl_qenter(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	if (!getishortarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 2, 1, &arg2))
+		return NULL;
+	qenter( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void setdepth short s short s */
+
+static PyObject *
+gl_setdepth(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	if (!getishortarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 2, 1, &arg2))
+		return NULL;
+	setdepth( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void cmov2s short s short s */
+
+static PyObject *
+gl_cmov2s(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	if (!getishortarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 2, 1, &arg2))
+		return NULL;
+	cmov2s( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void draw2s short s short s */
+
+static PyObject *
+gl_draw2s(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	if (!getishortarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 2, 1, &arg2))
+		return NULL;
+	draw2s( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void move2s short s short s */
+
+static PyObject *
+gl_move2s(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	if (!getishortarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 2, 1, &arg2))
+		return NULL;
+	move2s( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pdr2s short s short s */
+
+static PyObject *
+gl_pdr2s(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	if (!getishortarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 2, 1, &arg2))
+		return NULL;
+	pdr2s( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pmv2s short s short s */
+
+static PyObject *
+gl_pmv2s(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	if (!getishortarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 2, 1, &arg2))
+		return NULL;
+	pmv2s( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pnt2s short s short s */
+
+static PyObject *
+gl_pnt2s(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	if (!getishortarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 2, 1, &arg2))
+		return NULL;
+	pnt2s( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rdr2s short s short s */
+
+static PyObject *
+gl_rdr2s(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	if (!getishortarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 2, 1, &arg2))
+		return NULL;
+	rdr2s( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rmv2s short s short s */
+
+static PyObject *
+gl_rmv2s(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	if (!getishortarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 2, 1, &arg2))
+		return NULL;
+	rmv2s( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rpdr2s short s short s */
+
+static PyObject *
+gl_rpdr2s(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	if (!getishortarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 2, 1, &arg2))
+		return NULL;
+	rpdr2s( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rpmv2s short s short s */
+
+static PyObject *
+gl_rpmv2s(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	if (!getishortarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 2, 1, &arg2))
+		return NULL;
+	rpmv2s( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void xfpt2s short s short s */
+
+static PyObject *
+gl_xfpt2s(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	if (!getishortarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 2, 1, &arg2))
+		return NULL;
+	xfpt2s( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void cmov2 float s float s */
+
+static PyObject *
+gl_cmov2(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	if (!getifloatarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 2, 1, &arg2))
+		return NULL;
+	cmov2( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void draw2 float s float s */
+
+static PyObject *
+gl_draw2(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	if (!getifloatarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 2, 1, &arg2))
+		return NULL;
+	draw2( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void move2 float s float s */
+
+static PyObject *
+gl_move2(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	if (!getifloatarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 2, 1, &arg2))
+		return NULL;
+	move2( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pnt2 float s float s */
+
+static PyObject *
+gl_pnt2(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	if (!getifloatarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 2, 1, &arg2))
+		return NULL;
+	pnt2( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pdr2 float s float s */
+
+static PyObject *
+gl_pdr2(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	if (!getifloatarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 2, 1, &arg2))
+		return NULL;
+	pdr2( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pmv2 float s float s */
+
+static PyObject *
+gl_pmv2(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	if (!getifloatarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 2, 1, &arg2))
+		return NULL;
+	pmv2( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rdr2 float s float s */
+
+static PyObject *
+gl_rdr2(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	if (!getifloatarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 2, 1, &arg2))
+		return NULL;
+	rdr2( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rmv2 float s float s */
+
+static PyObject *
+gl_rmv2(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	if (!getifloatarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 2, 1, &arg2))
+		return NULL;
+	rmv2( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rpdr2 float s float s */
+
+static PyObject *
+gl_rpdr2(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	if (!getifloatarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 2, 1, &arg2))
+		return NULL;
+	rpdr2( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rpmv2 float s float s */
+
+static PyObject *
+gl_rpmv2(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	if (!getifloatarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 2, 1, &arg2))
+		return NULL;
+	rpmv2( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void xfpt2 float s float s */
+
+static PyObject *
+gl_xfpt2(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	if (!getifloatarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 2, 1, &arg2))
+		return NULL;
+	xfpt2( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void loadmatrix float s[4*4] */
+
+static PyObject *
+gl_loadmatrix(PyObject *self, PyObject *args)
+{
+	float arg1 [ 4 ] [ 4 ] ;
+	if (!getifloatarray(args, 1, 0, 4 * 4 , (float *) arg1))
+		return NULL;
+	loadmatrix( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void multmatrix float s[4*4] */
+
+static PyObject *
+gl_multmatrix(PyObject *self, PyObject *args)
+{
+	float arg1 [ 4 ] [ 4 ] ;
+	if (!getifloatarray(args, 1, 0, 4 * 4 , (float *) arg1))
+		return NULL;
+	multmatrix( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void crv float s[3*4] */
+
+static PyObject *
+gl_crv(PyObject *self, PyObject *args)
+{
+	float arg1 [ 4 ] [ 3 ] ;
+	if (!getifloatarray(args, 1, 0, 3 * 4 , (float *) arg1))
+		return NULL;
+	crv( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rcrv float s[4*4] */
+
+static PyObject *
+gl_rcrv(PyObject *self, PyObject *args)
+{
+	float arg1 [ 4 ] [ 4 ] ;
+	if (!getifloatarray(args, 1, 0, 4 * 4 , (float *) arg1))
+		return NULL;
+	rcrv( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void addtopup long s char *s long s */
+
+static PyObject *
+gl_addtopup(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	string arg2 ;
+	long arg3 ;
+	if (!getilongarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getistringarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 3, 2, &arg3))
+		return NULL;
+	addtopup( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void charstr char *s */
+
+static PyObject *
+gl_charstr(PyObject *self, PyObject *args)
+{
+	string arg1 ;
+	if (!getistringarg(args, 1, 0, &arg1))
+		return NULL;
+	charstr( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void getport char *s */
+
+static PyObject *
+gl_getport(PyObject *self, PyObject *args)
+{
+	string arg1 ;
+	if (!getistringarg(args, 1, 0, &arg1))
+		return NULL;
+	getport( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* long strwidth char *s */
+
+static PyObject *
+gl_strwidth(PyObject *self, PyObject *args)
+{
+	long retval;
+	string arg1 ;
+	if (!getistringarg(args, 1, 0, &arg1))
+		return NULL;
+	retval = strwidth( arg1 );
+	return mknewlongobject(retval);
+}
+
+/* long winopen char *s */
+
+static PyObject *
+gl_winopen(PyObject *self, PyObject *args)
+{
+	long retval;
+	string arg1 ;
+	if (!getistringarg(args, 1, 0, &arg1))
+		return NULL;
+	retval = winopen( arg1 );
+	return mknewlongobject(retval);
+}
+
+/* void wintitle char *s */
+
+static PyObject *
+gl_wintitle(PyObject *self, PyObject *args)
+{
+	string arg1 ;
+	if (!getistringarg(args, 1, 0, &arg1))
+		return NULL;
+	wintitle( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void polf long s float s[3*arg1] */
+
+static PyObject *
+gl_polf(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	float (* arg2) [ 3 ] ;
+	if (!getilongarraysize(args, 1, 0, &arg1))
+		return NULL;
+	arg1 = arg1 / 3;
+	if ((arg2 = (float(*)[3]) PyMem_NEW(float , 3 * arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getifloatarray(args, 1, 0, 3 * arg1 , (float *) arg2))
+		return NULL;
+	polf( arg1 , arg2 );
+	PyMem_DEL(arg2);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void polf2 long s float s[2*arg1] */
+
+static PyObject *
+gl_polf2(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	float (* arg2) [ 2 ] ;
+	if (!getilongarraysize(args, 1, 0, &arg1))
+		return NULL;
+	arg1 = arg1 / 2;
+	if ((arg2 = (float(*)[2]) PyMem_NEW(float , 2 * arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getifloatarray(args, 1, 0, 2 * arg1 , (float *) arg2))
+		return NULL;
+	polf2( arg1 , arg2 );
+	PyMem_DEL(arg2);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void poly long s float s[3*arg1] */
+
+static PyObject *
+gl_poly(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	float (* arg2) [ 3 ] ;
+	if (!getilongarraysize(args, 1, 0, &arg1))
+		return NULL;
+	arg1 = arg1 / 3;
+	if ((arg2 = (float(*)[3]) PyMem_NEW(float , 3 * arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getifloatarray(args, 1, 0, 3 * arg1 , (float *) arg2))
+		return NULL;
+	poly( arg1 , arg2 );
+	PyMem_DEL(arg2);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void poly2 long s float s[2*arg1] */
+
+static PyObject *
+gl_poly2(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	float (* arg2) [ 2 ] ;
+	if (!getilongarraysize(args, 1, 0, &arg1))
+		return NULL;
+	arg1 = arg1 / 2;
+	if ((arg2 = (float(*)[2]) PyMem_NEW(float , 2 * arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getifloatarray(args, 1, 0, 2 * arg1 , (float *) arg2))
+		return NULL;
+	poly2( arg1 , arg2 );
+	PyMem_DEL(arg2);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void crvn long s float s[3*arg1] */
+
+static PyObject *
+gl_crvn(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	float (* arg2) [ 3 ] ;
+	if (!getilongarraysize(args, 1, 0, &arg1))
+		return NULL;
+	arg1 = arg1 / 3;
+	if ((arg2 = (float(*)[3]) PyMem_NEW(float , 3 * arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getifloatarray(args, 1, 0, 3 * arg1 , (float *) arg2))
+		return NULL;
+	crvn( arg1 , arg2 );
+	PyMem_DEL(arg2);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rcrvn long s float s[4*arg1] */
+
+static PyObject *
+gl_rcrvn(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	float (* arg2) [ 4 ] ;
+	if (!getilongarraysize(args, 1, 0, &arg1))
+		return NULL;
+	arg1 = arg1 / 4;
+	if ((arg2 = (float(*)[4]) PyMem_NEW(float , 4 * arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getifloatarray(args, 1, 0, 4 * arg1 , (float *) arg2))
+		return NULL;
+	rcrvn( arg1 , arg2 );
+	PyMem_DEL(arg2);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void polf2i long s long s[2*arg1] */
+
+static PyObject *
+gl_polf2i(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long (* arg2) [ 2 ] ;
+	if (!getilongarraysize(args, 1, 0, &arg1))
+		return NULL;
+	arg1 = arg1 / 2;
+	if ((arg2 = (long(*)[2]) PyMem_NEW(long , 2 * arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getilongarray(args, 1, 0, 2 * arg1 , (long *) arg2))
+		return NULL;
+	polf2i( arg1 , arg2 );
+	PyMem_DEL(arg2);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void polfi long s long s[3*arg1] */
+
+static PyObject *
+gl_polfi(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long (* arg2) [ 3 ] ;
+	if (!getilongarraysize(args, 1, 0, &arg1))
+		return NULL;
+	arg1 = arg1 / 3;
+	if ((arg2 = (long(*)[3]) PyMem_NEW(long , 3 * arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getilongarray(args, 1, 0, 3 * arg1 , (long *) arg2))
+		return NULL;
+	polfi( arg1 , arg2 );
+	PyMem_DEL(arg2);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void poly2i long s long s[2*arg1] */
+
+static PyObject *
+gl_poly2i(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long (* arg2) [ 2 ] ;
+	if (!getilongarraysize(args, 1, 0, &arg1))
+		return NULL;
+	arg1 = arg1 / 2;
+	if ((arg2 = (long(*)[2]) PyMem_NEW(long , 2 * arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getilongarray(args, 1, 0, 2 * arg1 , (long *) arg2))
+		return NULL;
+	poly2i( arg1 , arg2 );
+	PyMem_DEL(arg2);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void polyi long s long s[3*arg1] */
+
+static PyObject *
+gl_polyi(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long (* arg2) [ 3 ] ;
+	if (!getilongarraysize(args, 1, 0, &arg1))
+		return NULL;
+	arg1 = arg1 / 3;
+	if ((arg2 = (long(*)[3]) PyMem_NEW(long , 3 * arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getilongarray(args, 1, 0, 3 * arg1 , (long *) arg2))
+		return NULL;
+	polyi( arg1 , arg2 );
+	PyMem_DEL(arg2);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void polf2s long s short s[2*arg1] */
+
+static PyObject *
+gl_polf2s(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	short (* arg2) [ 2 ] ;
+	if (!getilongarraysize(args, 1, 0, &arg1))
+		return NULL;
+	arg1 = arg1 / 2;
+	if ((arg2 = (short(*)[2]) PyMem_NEW(short , 2 * arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getishortarray(args, 1, 0, 2 * arg1 , (short *) arg2))
+		return NULL;
+	polf2s( arg1 , arg2 );
+	PyMem_DEL(arg2);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void polfs long s short s[3*arg1] */
+
+static PyObject *
+gl_polfs(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	short (* arg2) [ 3 ] ;
+	if (!getilongarraysize(args, 1, 0, &arg1))
+		return NULL;
+	arg1 = arg1 / 3;
+	if ((arg2 = (short(*)[3]) PyMem_NEW(short , 3 * arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getishortarray(args, 1, 0, 3 * arg1 , (short *) arg2))
+		return NULL;
+	polfs( arg1 , arg2 );
+	PyMem_DEL(arg2);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void polys long s short s[3*arg1] */
+
+static PyObject *
+gl_polys(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	short (* arg2) [ 3 ] ;
+	if (!getilongarraysize(args, 1, 0, &arg1))
+		return NULL;
+	arg1 = arg1 / 3;
+	if ((arg2 = (short(*)[3]) PyMem_NEW(short , 3 * arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getishortarray(args, 1, 0, 3 * arg1 , (short *) arg2))
+		return NULL;
+	polys( arg1 , arg2 );
+	PyMem_DEL(arg2);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void poly2s long s short s[2*arg1] */
+
+static PyObject *
+gl_poly2s(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	short (* arg2) [ 2 ] ;
+	if (!getilongarraysize(args, 1, 0, &arg1))
+		return NULL;
+	arg1 = arg1 / 2;
+	if ((arg2 = (short(*)[2]) PyMem_NEW(short , 2 * arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getishortarray(args, 1, 0, 2 * arg1 , (short *) arg2))
+		return NULL;
+	poly2s( arg1 , arg2 );
+	PyMem_DEL(arg2);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void defcursor short s u_short s[128] */
+
+static PyObject *
+gl_defcursor(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	unsigned short arg2 [ 128 ] ;
+	if (!getishortarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getishortarray(args, 2, 1, 128 , (short *) arg2))
+		return NULL;
+	defcursor( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void writepixels short s u_short s[arg1] */
+
+static PyObject *
+gl_writepixels(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	unsigned short * arg2 ;
+	if (!getishortarraysize(args, 1, 0, &arg1))
+		return NULL;
+	if ((arg2 = PyMem_NEW(unsigned short , arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getishortarray(args, 1, 0, arg1 , (short *) arg2))
+		return NULL;
+	writepixels( arg1 , arg2 );
+	PyMem_DEL(arg2);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void defbasis long s float s[4*4] */
+
+static PyObject *
+gl_defbasis(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	float arg2 [ 4 ] [ 4 ] ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getifloatarray(args, 2, 1, 4 * 4 , (float *) arg2))
+		return NULL;
+	defbasis( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void gewrite short s short s[arg1] */
+
+static PyObject *
+gl_gewrite(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short * arg2 ;
+	if (!getishortarraysize(args, 1, 0, &arg1))
+		return NULL;
+	if ((arg2 = PyMem_NEW(short , arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getishortarray(args, 1, 0, arg1 , arg2))
+		return NULL;
+	gewrite( arg1 , arg2 );
+	PyMem_DEL(arg2);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rotate short s char s */
+
+static PyObject *
+gl_rotate(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	char arg2 ;
+	if (!getishortarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getichararg(args, 2, 1, &arg2))
+		return NULL;
+	rotate( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rot float s char s */
+
+static PyObject *
+gl_rot(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	char arg2 ;
+	if (!getifloatarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getichararg(args, 2, 1, &arg2))
+		return NULL;
+	rot( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void circfi long s long s long s */
+
+static PyObject *
+gl_circfi(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	if (!getilongarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 3, 2, &arg3))
+		return NULL;
+	circfi( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void circi long s long s long s */
+
+static PyObject *
+gl_circi(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	if (!getilongarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 3, 2, &arg3))
+		return NULL;
+	circi( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void cmovi long s long s long s */
+
+static PyObject *
+gl_cmovi(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	if (!getilongarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 3, 2, &arg3))
+		return NULL;
+	cmovi( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void drawi long s long s long s */
+
+static PyObject *
+gl_drawi(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	if (!getilongarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 3, 2, &arg3))
+		return NULL;
+	drawi( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void movei long s long s long s */
+
+static PyObject *
+gl_movei(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	if (!getilongarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 3, 2, &arg3))
+		return NULL;
+	movei( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pnti long s long s long s */
+
+static PyObject *
+gl_pnti(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	if (!getilongarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 3, 2, &arg3))
+		return NULL;
+	pnti( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void newtag long s long s long s */
+
+static PyObject *
+gl_newtag(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	if (!getilongarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 3, 2, &arg3))
+		return NULL;
+	newtag( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pdri long s long s long s */
+
+static PyObject *
+gl_pdri(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	if (!getilongarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 3, 2, &arg3))
+		return NULL;
+	pdri( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pmvi long s long s long s */
+
+static PyObject *
+gl_pmvi(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	if (!getilongarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 3, 2, &arg3))
+		return NULL;
+	pmvi( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rdri long s long s long s */
+
+static PyObject *
+gl_rdri(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	if (!getilongarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 3, 2, &arg3))
+		return NULL;
+	rdri( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rmvi long s long s long s */
+
+static PyObject *
+gl_rmvi(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	if (!getilongarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 3, 2, &arg3))
+		return NULL;
+	rmvi( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rpdri long s long s long s */
+
+static PyObject *
+gl_rpdri(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	if (!getilongarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 3, 2, &arg3))
+		return NULL;
+	rpdri( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rpmvi long s long s long s */
+
+static PyObject *
+gl_rpmvi(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	if (!getilongarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 3, 2, &arg3))
+		return NULL;
+	rpmvi( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void xfpti long s long s long s */
+
+static PyObject *
+gl_xfpti(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	if (!getilongarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 3, 2, &arg3))
+		return NULL;
+	xfpti( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void circ float s float s float s */
+
+static PyObject *
+gl_circ(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	if (!getifloatarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 3, 2, &arg3))
+		return NULL;
+	circ( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void circf float s float s float s */
+
+static PyObject *
+gl_circf(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	if (!getifloatarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 3, 2, &arg3))
+		return NULL;
+	circf( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void cmov float s float s float s */
+
+static PyObject *
+gl_cmov(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	if (!getifloatarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 3, 2, &arg3))
+		return NULL;
+	cmov( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void draw float s float s float s */
+
+static PyObject *
+gl_draw(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	if (!getifloatarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 3, 2, &arg3))
+		return NULL;
+	draw( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void move float s float s float s */
+
+static PyObject *
+gl_move(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	if (!getifloatarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 3, 2, &arg3))
+		return NULL;
+	move( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pnt float s float s float s */
+
+static PyObject *
+gl_pnt(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	if (!getifloatarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 3, 2, &arg3))
+		return NULL;
+	pnt( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void scale float s float s float s */
+
+static PyObject *
+gl_scale(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	if (!getifloatarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 3, 2, &arg3))
+		return NULL;
+	scale( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void translate float s float s float s */
+
+static PyObject *
+gl_translate(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	if (!getifloatarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 3, 2, &arg3))
+		return NULL;
+	translate( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pdr float s float s float s */
+
+static PyObject *
+gl_pdr(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	if (!getifloatarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 3, 2, &arg3))
+		return NULL;
+	pdr( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pmv float s float s float s */
+
+static PyObject *
+gl_pmv(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	if (!getifloatarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 3, 2, &arg3))
+		return NULL;
+	pmv( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rdr float s float s float s */
+
+static PyObject *
+gl_rdr(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	if (!getifloatarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 3, 2, &arg3))
+		return NULL;
+	rdr( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rmv float s float s float s */
+
+static PyObject *
+gl_rmv(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	if (!getifloatarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 3, 2, &arg3))
+		return NULL;
+	rmv( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rpdr float s float s float s */
+
+static PyObject *
+gl_rpdr(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	if (!getifloatarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 3, 2, &arg3))
+		return NULL;
+	rpdr( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rpmv float s float s float s */
+
+static PyObject *
+gl_rpmv(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	if (!getifloatarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 3, 2, &arg3))
+		return NULL;
+	rpmv( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void xfpt float s float s float s */
+
+static PyObject *
+gl_xfpt(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	if (!getifloatarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 3, 2, &arg3))
+		return NULL;
+	xfpt( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void RGBcolor short s short s short s */
+
+static PyObject *
+gl_RGBcolor(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	if (!getishortarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 3, 2, &arg3))
+		return NULL;
+	RGBcolor( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void RGBwritemask short s short s short s */
+
+static PyObject *
+gl_RGBwritemask(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	if (!getishortarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 3, 2, &arg3))
+		return NULL;
+	RGBwritemask( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void setcursor short s short s short s */
+
+static PyObject *
+gl_setcursor(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	if (!getishortarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 3, 2, &arg3))
+		return NULL;
+	setcursor( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void tie short s short s short s */
+
+static PyObject *
+gl_tie(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	if (!getishortarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 3, 2, &arg3))
+		return NULL;
+	tie( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void circfs short s short s short s */
+
+static PyObject *
+gl_circfs(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	if (!getishortarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 3, 2, &arg3))
+		return NULL;
+	circfs( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void circs short s short s short s */
+
+static PyObject *
+gl_circs(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	if (!getishortarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 3, 2, &arg3))
+		return NULL;
+	circs( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void cmovs short s short s short s */
+
+static PyObject *
+gl_cmovs(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	if (!getishortarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 3, 2, &arg3))
+		return NULL;
+	cmovs( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void draws short s short s short s */
+
+static PyObject *
+gl_draws(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	if (!getishortarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 3, 2, &arg3))
+		return NULL;
+	draws( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void moves short s short s short s */
+
+static PyObject *
+gl_moves(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	if (!getishortarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 3, 2, &arg3))
+		return NULL;
+	moves( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pdrs short s short s short s */
+
+static PyObject *
+gl_pdrs(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	if (!getishortarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 3, 2, &arg3))
+		return NULL;
+	pdrs( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pmvs short s short s short s */
+
+static PyObject *
+gl_pmvs(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	if (!getishortarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 3, 2, &arg3))
+		return NULL;
+	pmvs( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pnts short s short s short s */
+
+static PyObject *
+gl_pnts(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	if (!getishortarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 3, 2, &arg3))
+		return NULL;
+	pnts( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rdrs short s short s short s */
+
+static PyObject *
+gl_rdrs(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	if (!getishortarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 3, 2, &arg3))
+		return NULL;
+	rdrs( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rmvs short s short s short s */
+
+static PyObject *
+gl_rmvs(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	if (!getishortarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 3, 2, &arg3))
+		return NULL;
+	rmvs( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rpdrs short s short s short s */
+
+static PyObject *
+gl_rpdrs(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	if (!getishortarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 3, 2, &arg3))
+		return NULL;
+	rpdrs( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rpmvs short s short s short s */
+
+static PyObject *
+gl_rpmvs(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	if (!getishortarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 3, 2, &arg3))
+		return NULL;
+	rpmvs( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void xfpts short s short s short s */
+
+static PyObject *
+gl_xfpts(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	if (!getishortarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 3, 2, &arg3))
+		return NULL;
+	xfpts( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void curorigin short s short s short s */
+
+static PyObject *
+gl_curorigin(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	if (!getishortarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 3, 2, &arg3))
+		return NULL;
+	curorigin( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void cyclemap short s short s short s */
+
+static PyObject *
+gl_cyclemap(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	if (!getishortarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 3, 2, &arg3))
+		return NULL;
+	cyclemap( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void patch float s[4*4] float s[4*4] float s[4*4] */
+
+static PyObject *
+gl_patch(PyObject *self, PyObject *args)
+{
+	float arg1 [ 4 ] [ 4 ] ;
+	float arg2 [ 4 ] [ 4 ] ;
+	float arg3 [ 4 ] [ 4 ] ;
+	if (!getifloatarray(args, 3, 0, 4 * 4 , (float *) arg1))
+		return NULL;
+	if (!getifloatarray(args, 3, 1, 4 * 4 , (float *) arg2))
+		return NULL;
+	if (!getifloatarray(args, 3, 2, 4 * 4 , (float *) arg3))
+		return NULL;
+	patch( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void splf long s float s[3*arg1] u_short s[arg1] */
+
+static PyObject *
+gl_splf(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	float (* arg2) [ 3 ] ;
+	unsigned short * arg3 ;
+	if (!getilongarraysize(args, 2, 0, &arg1))
+		return NULL;
+	arg1 = arg1 / 3;
+	if ((arg2 = (float(*)[3]) PyMem_NEW(float , 3 * arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getifloatarray(args, 2, 0, 3 * arg1 , (float *) arg2))
+		return NULL;
+	if ((arg3 = PyMem_NEW(unsigned short , arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getishortarray(args, 2, 1, arg1 , (short *) arg3))
+		return NULL;
+	splf( arg1 , arg2 , arg3 );
+	PyMem_DEL(arg2);
+	PyMem_DEL(arg3);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void splf2 long s float s[2*arg1] u_short s[arg1] */
+
+static PyObject *
+gl_splf2(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	float (* arg2) [ 2 ] ;
+	unsigned short * arg3 ;
+	if (!getilongarraysize(args, 2, 0, &arg1))
+		return NULL;
+	arg1 = arg1 / 2;
+	if ((arg2 = (float(*)[2]) PyMem_NEW(float , 2 * arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getifloatarray(args, 2, 0, 2 * arg1 , (float *) arg2))
+		return NULL;
+	if ((arg3 = PyMem_NEW(unsigned short , arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getishortarray(args, 2, 1, arg1 , (short *) arg3))
+		return NULL;
+	splf2( arg1 , arg2 , arg3 );
+	PyMem_DEL(arg2);
+	PyMem_DEL(arg3);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void splfi long s long s[3*arg1] u_short s[arg1] */
+
+static PyObject *
+gl_splfi(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long (* arg2) [ 3 ] ;
+	unsigned short * arg3 ;
+	if (!getilongarraysize(args, 2, 0, &arg1))
+		return NULL;
+	arg1 = arg1 / 3;
+	if ((arg2 = (long(*)[3]) PyMem_NEW(long , 3 * arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getilongarray(args, 2, 0, 3 * arg1 , (long *) arg2))
+		return NULL;
+	if ((arg3 = PyMem_NEW(unsigned short , arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getishortarray(args, 2, 1, arg1 , (short *) arg3))
+		return NULL;
+	splfi( arg1 , arg2 , arg3 );
+	PyMem_DEL(arg2);
+	PyMem_DEL(arg3);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void splf2i long s long s[2*arg1] u_short s[arg1] */
+
+static PyObject *
+gl_splf2i(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long (* arg2) [ 2 ] ;
+	unsigned short * arg3 ;
+	if (!getilongarraysize(args, 2, 0, &arg1))
+		return NULL;
+	arg1 = arg1 / 2;
+	if ((arg2 = (long(*)[2]) PyMem_NEW(long , 2 * arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getilongarray(args, 2, 0, 2 * arg1 , (long *) arg2))
+		return NULL;
+	if ((arg3 = PyMem_NEW(unsigned short , arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getishortarray(args, 2, 1, arg1 , (short *) arg3))
+		return NULL;
+	splf2i( arg1 , arg2 , arg3 );
+	PyMem_DEL(arg2);
+	PyMem_DEL(arg3);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void splfs long s short s[3*arg1] u_short s[arg1] */
+
+static PyObject *
+gl_splfs(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	short (* arg2) [ 3 ] ;
+	unsigned short * arg3 ;
+	if (!getilongarraysize(args, 2, 0, &arg1))
+		return NULL;
+	arg1 = arg1 / 3;
+	if ((arg2 = (short(*)[3]) PyMem_NEW(short , 3 * arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getishortarray(args, 2, 0, 3 * arg1 , (short *) arg2))
+		return NULL;
+	if ((arg3 = PyMem_NEW(unsigned short , arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getishortarray(args, 2, 1, arg1 , (short *) arg3))
+		return NULL;
+	splfs( arg1 , arg2 , arg3 );
+	PyMem_DEL(arg2);
+	PyMem_DEL(arg3);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void splf2s long s short s[2*arg1] u_short s[arg1] */
+
+static PyObject *
+gl_splf2s(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	short (* arg2) [ 2 ] ;
+	unsigned short * arg3 ;
+	if (!getilongarraysize(args, 2, 0, &arg1))
+		return NULL;
+	arg1 = arg1 / 2;
+	if ((arg2 = (short(*)[2]) PyMem_NEW(short , 2 * arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getishortarray(args, 2, 0, 2 * arg1 , (short *) arg2))
+		return NULL;
+	if ((arg3 = PyMem_NEW(unsigned short , arg1 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getishortarray(args, 2, 1, arg1 , (short *) arg3))
+		return NULL;
+	splf2s( arg1 , arg2 , arg3 );
+	PyMem_DEL(arg2);
+	PyMem_DEL(arg3);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rpatch float s[4*4] float s[4*4] float s[4*4] float s[4*4] */
+
+static PyObject *
+gl_rpatch(PyObject *self, PyObject *args)
+{
+	float arg1 [ 4 ] [ 4 ] ;
+	float arg2 [ 4 ] [ 4 ] ;
+	float arg3 [ 4 ] [ 4 ] ;
+	float arg4 [ 4 ] [ 4 ] ;
+	if (!getifloatarray(args, 4, 0, 4 * 4 , (float *) arg1))
+		return NULL;
+	if (!getifloatarray(args, 4, 1, 4 * 4 , (float *) arg2))
+		return NULL;
+	if (!getifloatarray(args, 4, 2, 4 * 4 , (float *) arg3))
+		return NULL;
+	if (!getifloatarray(args, 4, 3, 4 * 4 , (float *) arg4))
+		return NULL;
+	rpatch( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void ortho2 float s float s float s float s */
+
+static PyObject *
+gl_ortho2(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	float arg4 ;
+	if (!getifloatarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getifloatarg(args, 4, 3, &arg4))
+		return NULL;
+	ortho2( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rect float s float s float s float s */
+
+static PyObject *
+gl_rect(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	float arg4 ;
+	if (!getifloatarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getifloatarg(args, 4, 3, &arg4))
+		return NULL;
+	rect( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rectf float s float s float s float s */
+
+static PyObject *
+gl_rectf(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	float arg4 ;
+	if (!getifloatarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getifloatarg(args, 4, 3, &arg4))
+		return NULL;
+	rectf( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void xfpt4 float s float s float s float s */
+
+static PyObject *
+gl_xfpt4(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	float arg4 ;
+	if (!getifloatarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getifloatarg(args, 4, 3, &arg4))
+		return NULL;
+	xfpt4( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void textport short s short s short s short s */
+
+static PyObject *
+gl_textport(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	short arg4 ;
+	if (!getishortarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getishortarg(args, 4, 3, &arg4))
+		return NULL;
+	textport( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void mapcolor short s short s short s short s */
+
+static PyObject *
+gl_mapcolor(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	short arg4 ;
+	if (!getishortarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getishortarg(args, 4, 3, &arg4))
+		return NULL;
+	mapcolor( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void scrmask short s short s short s short s */
+
+static PyObject *
+gl_scrmask(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	short arg4 ;
+	if (!getishortarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getishortarg(args, 4, 3, &arg4))
+		return NULL;
+	scrmask( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void setvaluator short s short s short s short s */
+
+static PyObject *
+gl_setvaluator(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	short arg4 ;
+	if (!getishortarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getishortarg(args, 4, 3, &arg4))
+		return NULL;
+	setvaluator( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void viewport short s short s short s short s */
+
+static PyObject *
+gl_viewport(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	short arg4 ;
+	if (!getishortarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getishortarg(args, 4, 3, &arg4))
+		return NULL;
+	viewport( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void shaderange short s short s short s short s */
+
+static PyObject *
+gl_shaderange(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	short arg4 ;
+	if (!getishortarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getishortarg(args, 4, 3, &arg4))
+		return NULL;
+	shaderange( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void xfpt4s short s short s short s short s */
+
+static PyObject *
+gl_xfpt4s(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	short arg4 ;
+	if (!getishortarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getishortarg(args, 4, 3, &arg4))
+		return NULL;
+	xfpt4s( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rectfi long s long s long s long s */
+
+static PyObject *
+gl_rectfi(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	long arg4 ;
+	if (!getilongarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getilongarg(args, 4, 3, &arg4))
+		return NULL;
+	rectfi( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void recti long s long s long s long s */
+
+static PyObject *
+gl_recti(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	long arg4 ;
+	if (!getilongarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getilongarg(args, 4, 3, &arg4))
+		return NULL;
+	recti( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void xfpt4i long s long s long s long s */
+
+static PyObject *
+gl_xfpt4i(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	long arg4 ;
+	if (!getilongarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getilongarg(args, 4, 3, &arg4))
+		return NULL;
+	xfpt4i( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void prefposition long s long s long s long s */
+
+static PyObject *
+gl_prefposition(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	long arg4 ;
+	if (!getilongarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getilongarg(args, 4, 3, &arg4))
+		return NULL;
+	prefposition( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void arc float s float s float s short s short s */
+
+static PyObject *
+gl_arc(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	short arg4 ;
+	short arg5 ;
+	if (!getifloatarg(args, 5, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 5, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 5, 2, &arg3))
+		return NULL;
+	if (!getishortarg(args, 5, 3, &arg4))
+		return NULL;
+	if (!getishortarg(args, 5, 4, &arg5))
+		return NULL;
+	arc( arg1 , arg2 , arg3 , arg4 , arg5 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void arcf float s float s float s short s short s */
+
+static PyObject *
+gl_arcf(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	short arg4 ;
+	short arg5 ;
+	if (!getifloatarg(args, 5, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 5, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 5, 2, &arg3))
+		return NULL;
+	if (!getishortarg(args, 5, 3, &arg4))
+		return NULL;
+	if (!getishortarg(args, 5, 4, &arg5))
+		return NULL;
+	arcf( arg1 , arg2 , arg3 , arg4 , arg5 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void arcfi long s long s long s short s short s */
+
+static PyObject *
+gl_arcfi(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	short arg4 ;
+	short arg5 ;
+	if (!getilongarg(args, 5, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 5, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 5, 2, &arg3))
+		return NULL;
+	if (!getishortarg(args, 5, 3, &arg4))
+		return NULL;
+	if (!getishortarg(args, 5, 4, &arg5))
+		return NULL;
+	arcfi( arg1 , arg2 , arg3 , arg4 , arg5 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void arci long s long s long s short s short s */
+
+static PyObject *
+gl_arci(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	short arg4 ;
+	short arg5 ;
+	if (!getilongarg(args, 5, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 5, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 5, 2, &arg3))
+		return NULL;
+	if (!getishortarg(args, 5, 3, &arg4))
+		return NULL;
+	if (!getishortarg(args, 5, 4, &arg5))
+		return NULL;
+	arci( arg1 , arg2 , arg3 , arg4 , arg5 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void bbox2 short s short s float s float s float s float s */
+
+static PyObject *
+gl_bbox2(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	float arg3 ;
+	float arg4 ;
+	float arg5 ;
+	float arg6 ;
+	if (!getishortarg(args, 6, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 6, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 6, 2, &arg3))
+		return NULL;
+	if (!getifloatarg(args, 6, 3, &arg4))
+		return NULL;
+	if (!getifloatarg(args, 6, 4, &arg5))
+		return NULL;
+	if (!getifloatarg(args, 6, 5, &arg6))
+		return NULL;
+	bbox2( arg1 , arg2 , arg3 , arg4 , arg5 , arg6 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void bbox2i short s short s long s long s long s long s */
+
+static PyObject *
+gl_bbox2i(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	long arg3 ;
+	long arg4 ;
+	long arg5 ;
+	long arg6 ;
+	if (!getishortarg(args, 6, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 6, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 6, 2, &arg3))
+		return NULL;
+	if (!getilongarg(args, 6, 3, &arg4))
+		return NULL;
+	if (!getilongarg(args, 6, 4, &arg5))
+		return NULL;
+	if (!getilongarg(args, 6, 5, &arg6))
+		return NULL;
+	bbox2i( arg1 , arg2 , arg3 , arg4 , arg5 , arg6 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void bbox2s short s short s short s short s short s short s */
+
+static PyObject *
+gl_bbox2s(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	short arg4 ;
+	short arg5 ;
+	short arg6 ;
+	if (!getishortarg(args, 6, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 6, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 6, 2, &arg3))
+		return NULL;
+	if (!getishortarg(args, 6, 3, &arg4))
+		return NULL;
+	if (!getishortarg(args, 6, 4, &arg5))
+		return NULL;
+	if (!getishortarg(args, 6, 5, &arg6))
+		return NULL;
+	bbox2s( arg1 , arg2 , arg3 , arg4 , arg5 , arg6 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void blink short s short s short s short s short s */
+
+static PyObject *
+gl_blink(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	short arg4 ;
+	short arg5 ;
+	if (!getishortarg(args, 5, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 5, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 5, 2, &arg3))
+		return NULL;
+	if (!getishortarg(args, 5, 3, &arg4))
+		return NULL;
+	if (!getishortarg(args, 5, 4, &arg5))
+		return NULL;
+	blink( arg1 , arg2 , arg3 , arg4 , arg5 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void ortho float s float s float s float s float s float s */
+
+static PyObject *
+gl_ortho(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	float arg4 ;
+	float arg5 ;
+	float arg6 ;
+	if (!getifloatarg(args, 6, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 6, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 6, 2, &arg3))
+		return NULL;
+	if (!getifloatarg(args, 6, 3, &arg4))
+		return NULL;
+	if (!getifloatarg(args, 6, 4, &arg5))
+		return NULL;
+	if (!getifloatarg(args, 6, 5, &arg6))
+		return NULL;
+	ortho( arg1 , arg2 , arg3 , arg4 , arg5 , arg6 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void window float s float s float s float s float s float s */
+
+static PyObject *
+gl_window(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	float arg4 ;
+	float arg5 ;
+	float arg6 ;
+	if (!getifloatarg(args, 6, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 6, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 6, 2, &arg3))
+		return NULL;
+	if (!getifloatarg(args, 6, 3, &arg4))
+		return NULL;
+	if (!getifloatarg(args, 6, 4, &arg5))
+		return NULL;
+	if (!getifloatarg(args, 6, 5, &arg6))
+		return NULL;
+	window( arg1 , arg2 , arg3 , arg4 , arg5 , arg6 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void lookat float s float s float s float s float s float s short s */
+
+static PyObject *
+gl_lookat(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	float arg4 ;
+	float arg5 ;
+	float arg6 ;
+	short arg7 ;
+	if (!getifloatarg(args, 7, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 7, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 7, 2, &arg3))
+		return NULL;
+	if (!getifloatarg(args, 7, 3, &arg4))
+		return NULL;
+	if (!getifloatarg(args, 7, 4, &arg5))
+		return NULL;
+	if (!getifloatarg(args, 7, 5, &arg6))
+		return NULL;
+	if (!getishortarg(args, 7, 6, &arg7))
+		return NULL;
+	lookat( arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void perspective short s float s float s float s */
+
+static PyObject *
+gl_perspective(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	float arg2 ;
+	float arg3 ;
+	float arg4 ;
+	if (!getishortarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getifloatarg(args, 4, 3, &arg4))
+		return NULL;
+	perspective( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void polarview float s short s short s short s */
+
+static PyObject *
+gl_polarview(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	short arg2 ;
+	short arg3 ;
+	short arg4 ;
+	if (!getifloatarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getishortarg(args, 4, 3, &arg4))
+		return NULL;
+	polarview( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void arcfs short s short s short s short s short s */
+
+static PyObject *
+gl_arcfs(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	short arg4 ;
+	short arg5 ;
+	if (!getishortarg(args, 5, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 5, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 5, 2, &arg3))
+		return NULL;
+	if (!getishortarg(args, 5, 3, &arg4))
+		return NULL;
+	if (!getishortarg(args, 5, 4, &arg5))
+		return NULL;
+	arcfs( arg1 , arg2 , arg3 , arg4 , arg5 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void arcs short s short s short s short s short s */
+
+static PyObject *
+gl_arcs(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	short arg4 ;
+	short arg5 ;
+	if (!getishortarg(args, 5, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 5, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 5, 2, &arg3))
+		return NULL;
+	if (!getishortarg(args, 5, 3, &arg4))
+		return NULL;
+	if (!getishortarg(args, 5, 4, &arg5))
+		return NULL;
+	arcs( arg1 , arg2 , arg3 , arg4 , arg5 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rectcopy short s short s short s short s short s short s */
+
+static PyObject *
+gl_rectcopy(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	short arg4 ;
+	short arg5 ;
+	short arg6 ;
+	if (!getishortarg(args, 6, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 6, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 6, 2, &arg3))
+		return NULL;
+	if (!getishortarg(args, 6, 3, &arg4))
+		return NULL;
+	if (!getishortarg(args, 6, 4, &arg5))
+		return NULL;
+	if (!getishortarg(args, 6, 5, &arg6))
+		return NULL;
+	rectcopy( arg1 , arg2 , arg3 , arg4 , arg5 , arg6 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void RGBcursor short s short s short s short s short s short s short s */
+
+static PyObject *
+gl_RGBcursor(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	short arg4 ;
+	short arg5 ;
+	short arg6 ;
+	short arg7 ;
+	if (!getishortarg(args, 7, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 7, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 7, 2, &arg3))
+		return NULL;
+	if (!getishortarg(args, 7, 3, &arg4))
+		return NULL;
+	if (!getishortarg(args, 7, 4, &arg5))
+		return NULL;
+	if (!getishortarg(args, 7, 5, &arg6))
+		return NULL;
+	if (!getishortarg(args, 7, 6, &arg7))
+		return NULL;
+	RGBcursor( arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* long getbutton short s */
+
+static PyObject *
+gl_getbutton(PyObject *self, PyObject *args)
+{
+	long retval;
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	retval = getbutton( arg1 );
+	return mknewlongobject(retval);
+}
+
+/* long getcmmode */
+
+static PyObject *
+gl_getcmmode(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getcmmode( );
+	return mknewlongobject(retval);
+}
+
+/* long getlsbackup */
+
+static PyObject *
+gl_getlsbackup(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getlsbackup( );
+	return mknewlongobject(retval);
+}
+
+/* long getresetls */
+
+static PyObject *
+gl_getresetls(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getresetls( );
+	return mknewlongobject(retval);
+}
+
+/* long getdcm */
+
+static PyObject *
+gl_getdcm(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getdcm( );
+	return mknewlongobject(retval);
+}
+
+/* long getzbuffer */
+
+static PyObject *
+gl_getzbuffer(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getzbuffer( );
+	return mknewlongobject(retval);
+}
+
+/* long ismex */
+
+static PyObject *
+gl_ismex(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = ismex( );
+	return mknewlongobject(retval);
+}
+
+/* long isobj long s */
+
+static PyObject *
+gl_isobj(PyObject *self, PyObject *args)
+{
+	long retval;
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	retval = isobj( arg1 );
+	return mknewlongobject(retval);
+}
+
+/* long isqueued short s */
+
+static PyObject *
+gl_isqueued(PyObject *self, PyObject *args)
+{
+	long retval;
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	retval = isqueued( arg1 );
+	return mknewlongobject(retval);
+}
+
+/* long istag long s */
+
+static PyObject *
+gl_istag(PyObject *self, PyObject *args)
+{
+	long retval;
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	retval = istag( arg1 );
+	return mknewlongobject(retval);
+}
+
+/* long genobj */
+
+static PyObject *
+gl_genobj(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = genobj( );
+	return mknewlongobject(retval);
+}
+
+/* long gentag */
+
+static PyObject *
+gl_gentag(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = gentag( );
+	return mknewlongobject(retval);
+}
+
+/* long getbuffer */
+
+static PyObject *
+gl_getbuffer(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getbuffer( );
+	return mknewlongobject(retval);
+}
+
+/* long getcolor */
+
+static PyObject *
+gl_getcolor(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getcolor( );
+	return mknewlongobject(retval);
+}
+
+/* long getdisplaymode */
+
+static PyObject *
+gl_getdisplaymode(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getdisplaymode( );
+	return mknewlongobject(retval);
+}
+
+/* long getfont */
+
+static PyObject *
+gl_getfont(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getfont( );
+	return mknewlongobject(retval);
+}
+
+/* long getheight */
+
+static PyObject *
+gl_getheight(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getheight( );
+	return mknewlongobject(retval);
+}
+
+/* long gethitcode */
+
+static PyObject *
+gl_gethitcode(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = gethitcode( );
+	return mknewlongobject(retval);
+}
+
+/* long getlstyle */
+
+static PyObject *
+gl_getlstyle(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getlstyle( );
+	return mknewlongobject(retval);
+}
+
+/* long getlwidth */
+
+static PyObject *
+gl_getlwidth(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getlwidth( );
+	return mknewlongobject(retval);
+}
+
+/* long getmap */
+
+static PyObject *
+gl_getmap(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getmap( );
+	return mknewlongobject(retval);
+}
+
+/* long getplanes */
+
+static PyObject *
+gl_getplanes(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getplanes( );
+	return mknewlongobject(retval);
+}
+
+/* long getwritemask */
+
+static PyObject *
+gl_getwritemask(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getwritemask( );
+	return mknewlongobject(retval);
+}
+
+/* long qtest */
+
+static PyObject *
+gl_qtest(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = qtest( );
+	return mknewlongobject(retval);
+}
+
+/* long getlsrepeat */
+
+static PyObject *
+gl_getlsrepeat(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getlsrepeat( );
+	return mknewlongobject(retval);
+}
+
+/* long getmonitor */
+
+static PyObject *
+gl_getmonitor(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getmonitor( );
+	return mknewlongobject(retval);
+}
+
+/* long getopenobj */
+
+static PyObject *
+gl_getopenobj(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getopenobj( );
+	return mknewlongobject(retval);
+}
+
+/* long getpattern */
+
+static PyObject *
+gl_getpattern(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getpattern( );
+	return mknewlongobject(retval);
+}
+
+/* long winget */
+
+static PyObject *
+gl_winget(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = winget( );
+	return mknewlongobject(retval);
+}
+
+/* long winattach */
+
+static PyObject *
+gl_winattach(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = winattach( );
+	return mknewlongobject(retval);
+}
+
+/* long getothermonitor */
+
+static PyObject *
+gl_getothermonitor(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getothermonitor( );
+	return mknewlongobject(retval);
+}
+
+/* long newpup */
+
+static PyObject *
+gl_newpup(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = newpup( );
+	return mknewlongobject(retval);
+}
+
+/* long getvaluator short s */
+
+static PyObject *
+gl_getvaluator(PyObject *self, PyObject *args)
+{
+	long retval;
+	short arg1 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	retval = getvaluator( arg1 );
+	return mknewlongobject(retval);
+}
+
+/* void winset long s */
+
+static PyObject *
+gl_winset(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	winset( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* long dopup long s */
+
+static PyObject *
+gl_dopup(PyObject *self, PyObject *args)
+{
+	long retval;
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	retval = dopup( arg1 );
+	return mknewlongobject(retval);
+}
+
+/* void getdepth short r short r */
+
+static PyObject *
+gl_getdepth(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	getdepth( & arg1 , & arg2 );
+	{ PyObject *v = PyTuple_New( 2 );
+	  if (v == NULL) return NULL;
+	  PyTuple_SetItem(v, 0, mknewshortobject(arg1));
+	  PyTuple_SetItem(v, 1, mknewshortobject(arg2));
+	  return v;
+	}
+}
+
+/* void getcpos short r short r */
+
+static PyObject *
+gl_getcpos(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	getcpos( & arg1 , & arg2 );
+	{ PyObject *v = PyTuple_New( 2 );
+	  if (v == NULL) return NULL;
+	  PyTuple_SetItem(v, 0, mknewshortobject(arg1));
+	  PyTuple_SetItem(v, 1, mknewshortobject(arg2));
+	  return v;
+	}
+}
+
+/* void getsize long r long r */
+
+static PyObject *
+gl_getsize(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	getsize( & arg1 , & arg2 );
+	{ PyObject *v = PyTuple_New( 2 );
+	  if (v == NULL) return NULL;
+	  PyTuple_SetItem(v, 0, mknewlongobject(arg1));
+	  PyTuple_SetItem(v, 1, mknewlongobject(arg2));
+	  return v;
+	}
+}
+
+/* void getorigin long r long r */
+
+static PyObject *
+gl_getorigin(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	getorigin( & arg1 , & arg2 );
+	{ PyObject *v = PyTuple_New( 2 );
+	  if (v == NULL) return NULL;
+	  PyTuple_SetItem(v, 0, mknewlongobject(arg1));
+	  PyTuple_SetItem(v, 1, mknewlongobject(arg2));
+	  return v;
+	}
+}
+
+/* void getviewport short r short r short r short r */
+
+static PyObject *
+gl_getviewport(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	short arg4 ;
+	getviewport( & arg1 , & arg2 , & arg3 , & arg4 );
+	{ PyObject *v = PyTuple_New( 4 );
+	  if (v == NULL) return NULL;
+	  PyTuple_SetItem(v, 0, mknewshortobject(arg1));
+	  PyTuple_SetItem(v, 1, mknewshortobject(arg2));
+	  PyTuple_SetItem(v, 2, mknewshortobject(arg3));
+	  PyTuple_SetItem(v, 3, mknewshortobject(arg4));
+	  return v;
+	}
+}
+
+/* void gettp short r short r short r short r */
+
+static PyObject *
+gl_gettp(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	short arg4 ;
+	gettp( & arg1 , & arg2 , & arg3 , & arg4 );
+	{ PyObject *v = PyTuple_New( 4 );
+	  if (v == NULL) return NULL;
+	  PyTuple_SetItem(v, 0, mknewshortobject(arg1));
+	  PyTuple_SetItem(v, 1, mknewshortobject(arg2));
+	  PyTuple_SetItem(v, 2, mknewshortobject(arg3));
+	  PyTuple_SetItem(v, 3, mknewshortobject(arg4));
+	  return v;
+	}
+}
+
+/* void getgpos float r float r float r float r */
+
+static PyObject *
+gl_getgpos(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	float arg4 ;
+	getgpos( & arg1 , & arg2 , & arg3 , & arg4 );
+	{ PyObject *v = PyTuple_New( 4 );
+	  if (v == NULL) return NULL;
+	  PyTuple_SetItem(v, 0, mknewfloatobject(arg1));
+	  PyTuple_SetItem(v, 1, mknewfloatobject(arg2));
+	  PyTuple_SetItem(v, 2, mknewfloatobject(arg3));
+	  PyTuple_SetItem(v, 3, mknewfloatobject(arg4));
+	  return v;
+	}
+}
+
+/* void winposition long s long s long s long s */
+
+static PyObject *
+gl_winposition(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	long arg4 ;
+	if (!getilongarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getilongarg(args, 4, 3, &arg4))
+		return NULL;
+	winposition( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void gRGBcolor short r short r short r */
+
+static PyObject *
+gl_gRGBcolor(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	gRGBcolor( & arg1 , & arg2 , & arg3 );
+	{ PyObject *v = PyTuple_New( 3 );
+	  if (v == NULL) return NULL;
+	  PyTuple_SetItem(v, 0, mknewshortobject(arg1));
+	  PyTuple_SetItem(v, 1, mknewshortobject(arg2));
+	  PyTuple_SetItem(v, 2, mknewshortobject(arg3));
+	  return v;
+	}
+}
+
+/* void gRGBmask short r short r short r */
+
+static PyObject *
+gl_gRGBmask(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	gRGBmask( & arg1 , & arg2 , & arg3 );
+	{ PyObject *v = PyTuple_New( 3 );
+	  if (v == NULL) return NULL;
+	  PyTuple_SetItem(v, 0, mknewshortobject(arg1));
+	  PyTuple_SetItem(v, 1, mknewshortobject(arg2));
+	  PyTuple_SetItem(v, 2, mknewshortobject(arg3));
+	  return v;
+	}
+}
+
+/* void getscrmask short r short r short r short r */
+
+static PyObject *
+gl_getscrmask(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	short arg4 ;
+	getscrmask( & arg1 , & arg2 , & arg3 , & arg4 );
+	{ PyObject *v = PyTuple_New( 4 );
+	  if (v == NULL) return NULL;
+	  PyTuple_SetItem(v, 0, mknewshortobject(arg1));
+	  PyTuple_SetItem(v, 1, mknewshortobject(arg2));
+	  PyTuple_SetItem(v, 2, mknewshortobject(arg3));
+	  PyTuple_SetItem(v, 3, mknewshortobject(arg4));
+	  return v;
+	}
+}
+
+/* void getmcolor short s short r short r short r */
+
+static PyObject *
+gl_getmcolor(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	short arg4 ;
+	if (!getishortarg(args, 1, 0, &arg1))
+		return NULL;
+	getmcolor( arg1 , & arg2 , & arg3 , & arg4 );
+	{ PyObject *v = PyTuple_New( 3 );
+	  if (v == NULL) return NULL;
+	  PyTuple_SetItem(v, 0, mknewshortobject(arg2));
+	  PyTuple_SetItem(v, 1, mknewshortobject(arg3));
+	  PyTuple_SetItem(v, 2, mknewshortobject(arg4));
+	  return v;
+	}
+}
+
+/* void mapw long s short s short s float r float r float r float r float r float r */
+
+static PyObject *
+gl_mapw(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	short arg2 ;
+	short arg3 ;
+	float arg4 ;
+	float arg5 ;
+	float arg6 ;
+	float arg7 ;
+	float arg8 ;
+	float arg9 ;
+	if (!getilongarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 3, 2, &arg3))
+		return NULL;
+	mapw( arg1 , arg2 , arg3 , & arg4 , & arg5 , & arg6 , & arg7 , & arg8 , & arg9 );
+	{ PyObject *v = PyTuple_New( 6 );
+	  if (v == NULL) return NULL;
+	  PyTuple_SetItem(v, 0, mknewfloatobject(arg4));
+	  PyTuple_SetItem(v, 1, mknewfloatobject(arg5));
+	  PyTuple_SetItem(v, 2, mknewfloatobject(arg6));
+	  PyTuple_SetItem(v, 3, mknewfloatobject(arg7));
+	  PyTuple_SetItem(v, 4, mknewfloatobject(arg8));
+	  PyTuple_SetItem(v, 5, mknewfloatobject(arg9));
+	  return v;
+	}
+}
+
+/* void mapw2 long s short s short s float r float r */
+
+static PyObject *
+gl_mapw2(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	short arg2 ;
+	short arg3 ;
+	float arg4 ;
+	float arg5 ;
+	if (!getilongarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 3, 2, &arg3))
+		return NULL;
+	mapw2( arg1 , arg2 , arg3 , & arg4 , & arg5 );
+	{ PyObject *v = PyTuple_New( 2 );
+	  if (v == NULL) return NULL;
+	  PyTuple_SetItem(v, 0, mknewfloatobject(arg4));
+	  PyTuple_SetItem(v, 1, mknewfloatobject(arg5));
+	  return v;
+	}
+}
+
+/* void getcursor short r u_short r u_short r long r */
+
+static PyObject *
+gl_getcursor(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	unsigned short arg2 ;
+	unsigned short arg3 ;
+	long arg4 ;
+	getcursor( & arg1 , & arg2 , & arg3 , & arg4 );
+	{ PyObject *v = PyTuple_New( 4 );
+	  if (v == NULL) return NULL;
+	  PyTuple_SetItem(v, 0, mknewshortobject(arg1));
+	  PyTuple_SetItem(v, 1, mknewshortobject((short) arg2));
+	  PyTuple_SetItem(v, 2, mknewshortobject((short) arg3));
+	  PyTuple_SetItem(v, 3, mknewlongobject(arg4));
+	  return v;
+	}
+}
+
+/* void cmode */
+
+static PyObject *
+gl_cmode(PyObject *self, PyObject *args)
+{
+	cmode( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void concave long s */
+
+static PyObject *
+gl_concave(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	concave( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void curstype long s */
+
+static PyObject *
+gl_curstype(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	curstype( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void drawmode long s */
+
+static PyObject *
+gl_drawmode(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	drawmode( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void gammaramp short s[256] short s[256] short s[256] */
+
+static PyObject *
+gl_gammaramp(PyObject *self, PyObject *args)
+{
+	short arg1 [ 256 ] ;
+	short arg2 [ 256 ] ;
+	short arg3 [ 256 ] ;
+	if (!getishortarray(args, 3, 0, 256 , arg1))
+		return NULL;
+	if (!getishortarray(args, 3, 1, 256 , arg2))
+		return NULL;
+	if (!getishortarray(args, 3, 2, 256 , arg3))
+		return NULL;
+	gammaramp( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* long getbackface */
+
+static PyObject *
+gl_getbackface(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getbackface( );
+	return mknewlongobject(retval);
+}
+
+/* long getdescender */
+
+static PyObject *
+gl_getdescender(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getdescender( );
+	return mknewlongobject(retval);
+}
+
+/* long getdrawmode */
+
+static PyObject *
+gl_getdrawmode(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getdrawmode( );
+	return mknewlongobject(retval);
+}
+
+/* long getmmode */
+
+static PyObject *
+gl_getmmode(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getmmode( );
+	return mknewlongobject(retval);
+}
+
+/* long getsm */
+
+static PyObject *
+gl_getsm(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = getsm( );
+	return mknewlongobject(retval);
+}
+
+/* long getvideo long s */
+
+static PyObject *
+gl_getvideo(PyObject *self, PyObject *args)
+{
+	long retval;
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	retval = getvideo( arg1 );
+	return mknewlongobject(retval);
+}
+
+/* void imakebackground */
+
+static PyObject *
+gl_imakebackground(PyObject *self, PyObject *args)
+{
+	imakebackground( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void lmbind short s short s */
+
+static PyObject *
+gl_lmbind(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	if (!getishortarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 2, 1, &arg2))
+		return NULL;
+	lmbind( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void lmdef long s long s long s float s[arg3] */
+
+static PyObject *
+gl_lmdef(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	float * arg4 ;
+	if (!getilongarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getilongarraysize(args, 3, 2, &arg3))
+		return NULL;
+	if ((arg4 = PyMem_NEW(float , arg3 )) == NULL)
+		return PyErr_NoMemory();
+	if (!getifloatarray(args, 3, 2, arg3 , arg4))
+		return NULL;
+	lmdef( arg1 , arg2 , arg3 , arg4 );
+	PyMem_DEL(arg4);
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void mmode long s */
+
+static PyObject *
+gl_mmode(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	mmode( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void normal float s[3] */
+
+static PyObject *
+gl_normal(PyObject *self, PyObject *args)
+{
+	float arg1 [ 3 ] ;
+	if (!getifloatarray(args, 1, 0, 3 , arg1))
+		return NULL;
+	normal( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void overlay long s */
+
+static PyObject *
+gl_overlay(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	overlay( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void RGBrange short s short s short s short s short s short s short s short s */
+
+static PyObject *
+gl_RGBrange(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	short arg4 ;
+	short arg5 ;
+	short arg6 ;
+	short arg7 ;
+	short arg8 ;
+	if (!getishortarg(args, 8, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 8, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 8, 2, &arg3))
+		return NULL;
+	if (!getishortarg(args, 8, 3, &arg4))
+		return NULL;
+	if (!getishortarg(args, 8, 4, &arg5))
+		return NULL;
+	if (!getishortarg(args, 8, 5, &arg6))
+		return NULL;
+	if (!getishortarg(args, 8, 6, &arg7))
+		return NULL;
+	if (!getishortarg(args, 8, 7, &arg8))
+		return NULL;
+	RGBrange( arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void setvideo long s long s */
+
+static PyObject *
+gl_setvideo(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	setvideo( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void shademodel long s */
+
+static PyObject *
+gl_shademodel(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	shademodel( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void underlay long s */
+
+static PyObject *
+gl_underlay(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	underlay( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void bgnclosedline */
+
+static PyObject *
+gl_bgnclosedline(PyObject *self, PyObject *args)
+{
+	bgnclosedline( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void bgnline */
+
+static PyObject *
+gl_bgnline(PyObject *self, PyObject *args)
+{
+	bgnline( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void bgnpoint */
+
+static PyObject *
+gl_bgnpoint(PyObject *self, PyObject *args)
+{
+	bgnpoint( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void bgnpolygon */
+
+static PyObject *
+gl_bgnpolygon(PyObject *self, PyObject *args)
+{
+	bgnpolygon( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void bgnsurface */
+
+static PyObject *
+gl_bgnsurface(PyObject *self, PyObject *args)
+{
+	bgnsurface( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void bgntmesh */
+
+static PyObject *
+gl_bgntmesh(PyObject *self, PyObject *args)
+{
+	bgntmesh( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void bgntrim */
+
+static PyObject *
+gl_bgntrim(PyObject *self, PyObject *args)
+{
+	bgntrim( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void endclosedline */
+
+static PyObject *
+gl_endclosedline(PyObject *self, PyObject *args)
+{
+	endclosedline( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void endline */
+
+static PyObject *
+gl_endline(PyObject *self, PyObject *args)
+{
+	endline( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void endpoint */
+
+static PyObject *
+gl_endpoint(PyObject *self, PyObject *args)
+{
+	endpoint( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void endpolygon */
+
+static PyObject *
+gl_endpolygon(PyObject *self, PyObject *args)
+{
+	endpolygon( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void endsurface */
+
+static PyObject *
+gl_endsurface(PyObject *self, PyObject *args)
+{
+	endsurface( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void endtmesh */
+
+static PyObject *
+gl_endtmesh(PyObject *self, PyObject *args)
+{
+	endtmesh( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void endtrim */
+
+static PyObject *
+gl_endtrim(PyObject *self, PyObject *args)
+{
+	endtrim( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void blendfunction long s long s */
+
+static PyObject *
+gl_blendfunction(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	blendfunction( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void c3f float s[3] */
+
+static PyObject *
+gl_c3f(PyObject *self, PyObject *args)
+{
+	float arg1 [ 3 ] ;
+	if (!getifloatarray(args, 1, 0, 3 , arg1))
+		return NULL;
+	c3f( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void c3i long s[3] */
+
+static PyObject *
+gl_c3i(PyObject *self, PyObject *args)
+{
+	long arg1 [ 3 ] ;
+	if (!getilongarray(args, 1, 0, 3 , arg1))
+		return NULL;
+	c3i( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void c3s short s[3] */
+
+static PyObject *
+gl_c3s(PyObject *self, PyObject *args)
+{
+	short arg1 [ 3 ] ;
+	if (!getishortarray(args, 1, 0, 3 , arg1))
+		return NULL;
+	c3s( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void c4f float s[4] */
+
+static PyObject *
+gl_c4f(PyObject *self, PyObject *args)
+{
+	float arg1 [ 4 ] ;
+	if (!getifloatarray(args, 1, 0, 4 , arg1))
+		return NULL;
+	c4f( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void c4i long s[4] */
+
+static PyObject *
+gl_c4i(PyObject *self, PyObject *args)
+{
+	long arg1 [ 4 ] ;
+	if (!getilongarray(args, 1, 0, 4 , arg1))
+		return NULL;
+	c4i( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void c4s short s[4] */
+
+static PyObject *
+gl_c4s(PyObject *self, PyObject *args)
+{
+	short arg1 [ 4 ] ;
+	if (!getishortarray(args, 1, 0, 4 , arg1))
+		return NULL;
+	c4s( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void colorf float s */
+
+static PyObject *
+gl_colorf(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	if (!getifloatarg(args, 1, 0, &arg1))
+		return NULL;
+	colorf( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void cpack long s */
+
+static PyObject *
+gl_cpack(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	cpack( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void czclear long s long s */
+
+static PyObject *
+gl_czclear(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	czclear( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void dglclose long s */
+
+static PyObject *
+gl_dglclose(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	dglclose( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* long dglopen char *s long s */
+
+static PyObject *
+gl_dglopen(PyObject *self, PyObject *args)
+{
+	long retval;
+	string arg1 ;
+	long arg2 ;
+	if (!getistringarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	retval = dglopen( arg1 , arg2 );
+	return mknewlongobject(retval);
+}
+
+/* long getgdesc long s */
+
+static PyObject *
+gl_getgdesc(PyObject *self, PyObject *args)
+{
+	long retval;
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	retval = getgdesc( arg1 );
+	return mknewlongobject(retval);
+}
+
+/* void getnurbsproperty long s float r */
+
+static PyObject *
+gl_getnurbsproperty(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	float arg2 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	getnurbsproperty( arg1 , & arg2 );
+	return mknewfloatobject(arg2);
+}
+
+/* void glcompat long s long s */
+
+static PyObject *
+gl_glcompat(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	glcompat( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void iconsize long s long s */
+
+static PyObject *
+gl_iconsize(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	iconsize( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void icontitle char *s */
+
+static PyObject *
+gl_icontitle(PyObject *self, PyObject *args)
+{
+	string arg1 ;
+	if (!getistringarg(args, 1, 0, &arg1))
+		return NULL;
+	icontitle( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void lRGBrange short s short s short s short s short s short s long s long s */
+
+static PyObject *
+gl_lRGBrange(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	short arg4 ;
+	short arg5 ;
+	short arg6 ;
+	long arg7 ;
+	long arg8 ;
+	if (!getishortarg(args, 8, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 8, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 8, 2, &arg3))
+		return NULL;
+	if (!getishortarg(args, 8, 3, &arg4))
+		return NULL;
+	if (!getishortarg(args, 8, 4, &arg5))
+		return NULL;
+	if (!getishortarg(args, 8, 5, &arg6))
+		return NULL;
+	if (!getilongarg(args, 8, 6, &arg7))
+		return NULL;
+	if (!getilongarg(args, 8, 7, &arg8))
+		return NULL;
+	lRGBrange( arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void linesmooth long s */
+
+static PyObject *
+gl_linesmooth(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	linesmooth( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void lmcolor long s */
+
+static PyObject *
+gl_lmcolor(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	lmcolor( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void logicop long s */
+
+static PyObject *
+gl_logicop(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	logicop( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void lsetdepth long s long s */
+
+static PyObject *
+gl_lsetdepth(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	lsetdepth( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void lshaderange short s short s long s long s */
+
+static PyObject *
+gl_lshaderange(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	long arg3 ;
+	long arg4 ;
+	if (!getishortarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getilongarg(args, 4, 3, &arg4))
+		return NULL;
+	lshaderange( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void n3f float s[3] */
+
+static PyObject *
+gl_n3f(PyObject *self, PyObject *args)
+{
+	float arg1 [ 3 ] ;
+	if (!getifloatarray(args, 1, 0, 3 , arg1))
+		return NULL;
+	n3f( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void noborder */
+
+static PyObject *
+gl_noborder(PyObject *self, PyObject *args)
+{
+	noborder( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pntsmooth long s */
+
+static PyObject *
+gl_pntsmooth(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	pntsmooth( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void readsource long s */
+
+static PyObject *
+gl_readsource(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	readsource( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void rectzoom float s float s */
+
+static PyObject *
+gl_rectzoom(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	if (!getifloatarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 2, 1, &arg2))
+		return NULL;
+	rectzoom( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void sbox float s float s float s float s */
+
+static PyObject *
+gl_sbox(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	float arg4 ;
+	if (!getifloatarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getifloatarg(args, 4, 3, &arg4))
+		return NULL;
+	sbox( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void sboxi long s long s long s long s */
+
+static PyObject *
+gl_sboxi(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	long arg4 ;
+	if (!getilongarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getilongarg(args, 4, 3, &arg4))
+		return NULL;
+	sboxi( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void sboxs short s short s short s short s */
+
+static PyObject *
+gl_sboxs(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	short arg4 ;
+	if (!getishortarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getishortarg(args, 4, 3, &arg4))
+		return NULL;
+	sboxs( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void sboxf float s float s float s float s */
+
+static PyObject *
+gl_sboxf(PyObject *self, PyObject *args)
+{
+	float arg1 ;
+	float arg2 ;
+	float arg3 ;
+	float arg4 ;
+	if (!getifloatarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getifloatarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getifloatarg(args, 4, 3, &arg4))
+		return NULL;
+	sboxf( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void sboxfi long s long s long s long s */
+
+static PyObject *
+gl_sboxfi(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	long arg4 ;
+	if (!getilongarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getilongarg(args, 4, 3, &arg4))
+		return NULL;
+	sboxfi( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void sboxfs short s short s short s short s */
+
+static PyObject *
+gl_sboxfs(PyObject *self, PyObject *args)
+{
+	short arg1 ;
+	short arg2 ;
+	short arg3 ;
+	short arg4 ;
+	if (!getishortarg(args, 4, 0, &arg1))
+		return NULL;
+	if (!getishortarg(args, 4, 1, &arg2))
+		return NULL;
+	if (!getishortarg(args, 4, 2, &arg3))
+		return NULL;
+	if (!getishortarg(args, 4, 3, &arg4))
+		return NULL;
+	sboxfs( arg1 , arg2 , arg3 , arg4 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void setnurbsproperty long s float s */
+
+static PyObject *
+gl_setnurbsproperty(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	float arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getifloatarg(args, 2, 1, &arg2))
+		return NULL;
+	setnurbsproperty( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void setpup long s long s long s */
+
+static PyObject *
+gl_setpup(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	long arg3 ;
+	if (!getilongarg(args, 3, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 3, 1, &arg2))
+		return NULL;
+	if (!getilongarg(args, 3, 2, &arg3))
+		return NULL;
+	setpup( arg1 , arg2 , arg3 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void smoothline long s */
+
+static PyObject *
+gl_smoothline(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	smoothline( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void subpixel long s */
+
+static PyObject *
+gl_subpixel(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	subpixel( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void swaptmesh */
+
+static PyObject *
+gl_swaptmesh(PyObject *self, PyObject *args)
+{
+	swaptmesh( );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* long swinopen long s */
+
+static PyObject *
+gl_swinopen(PyObject *self, PyObject *args)
+{
+	long retval;
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	retval = swinopen( arg1 );
+	return mknewlongobject(retval);
+}
+
+/* void v2f float s[2] */
+
+static PyObject *
+gl_v2f(PyObject *self, PyObject *args)
+{
+	float arg1 [ 2 ] ;
+	if (!getifloatarray(args, 1, 0, 2 , arg1))
+		return NULL;
+	v2f( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void v2i long s[2] */
+
+static PyObject *
+gl_v2i(PyObject *self, PyObject *args)
+{
+	long arg1 [ 2 ] ;
+	if (!getilongarray(args, 1, 0, 2 , arg1))
+		return NULL;
+	v2i( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void v2s short s[2] */
+
+static PyObject *
+gl_v2s(PyObject *self, PyObject *args)
+{
+	short arg1 [ 2 ] ;
+	if (!getishortarray(args, 1, 0, 2 , arg1))
+		return NULL;
+	v2s( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void v3f float s[3] */
+
+static PyObject *
+gl_v3f(PyObject *self, PyObject *args)
+{
+	float arg1 [ 3 ] ;
+	if (!getifloatarray(args, 1, 0, 3 , arg1))
+		return NULL;
+	v3f( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void v3i long s[3] */
+
+static PyObject *
+gl_v3i(PyObject *self, PyObject *args)
+{
+	long arg1 [ 3 ] ;
+	if (!getilongarray(args, 1, 0, 3 , arg1))
+		return NULL;
+	v3i( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void v3s short s[3] */
+
+static PyObject *
+gl_v3s(PyObject *self, PyObject *args)
+{
+	short arg1 [ 3 ] ;
+	if (!getishortarray(args, 1, 0, 3 , arg1))
+		return NULL;
+	v3s( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void v4f float s[4] */
+
+static PyObject *
+gl_v4f(PyObject *self, PyObject *args)
+{
+	float arg1 [ 4 ] ;
+	if (!getifloatarray(args, 1, 0, 4 , arg1))
+		return NULL;
+	v4f( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void v4i long s[4] */
+
+static PyObject *
+gl_v4i(PyObject *self, PyObject *args)
+{
+	long arg1 [ 4 ] ;
+	if (!getilongarray(args, 1, 0, 4 , arg1))
+		return NULL;
+	v4i( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void v4s short s[4] */
+
+static PyObject *
+gl_v4s(PyObject *self, PyObject *args)
+{
+	short arg1 [ 4 ] ;
+	if (!getishortarray(args, 1, 0, 4 , arg1))
+		return NULL;
+	v4s( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void videocmd long s */
+
+static PyObject *
+gl_videocmd(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	videocmd( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* long windepth long s */
+
+static PyObject *
+gl_windepth(PyObject *self, PyObject *args)
+{
+	long retval;
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	retval = windepth( arg1 );
+	return mknewlongobject(retval);
+}
+
+/* void wmpack long s */
+
+static PyObject *
+gl_wmpack(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	wmpack( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void zdraw long s */
+
+static PyObject *
+gl_zdraw(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	zdraw( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void zfunction long s */
+
+static PyObject *
+gl_zfunction(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	zfunction( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void zsource long s */
+
+static PyObject *
+gl_zsource(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	zsource( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void zwritemask long s */
+
+static PyObject *
+gl_zwritemask(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	zwritemask( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void v2d double s[2] */
+
+static PyObject *
+gl_v2d(PyObject *self, PyObject *args)
+{
+	double arg1 [ 2 ] ;
+	if (!getidoublearray(args, 1, 0, 2 , arg1))
+		return NULL;
+	v2d( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void v3d double s[3] */
+
+static PyObject *
+gl_v3d(PyObject *self, PyObject *args)
+{
+	double arg1 [ 3 ] ;
+	if (!getidoublearray(args, 1, 0, 3 , arg1))
+		return NULL;
+	v3d( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void v4d double s[4] */
+
+static PyObject *
+gl_v4d(PyObject *self, PyObject *args)
+{
+	double arg1 [ 4 ] ;
+	if (!getidoublearray(args, 1, 0, 4 , arg1))
+		return NULL;
+	v4d( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* void pixmode long s long s */
+
+static PyObject *
+gl_pixmode(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	long arg2 ;
+	if (!getilongarg(args, 2, 0, &arg1))
+		return NULL;
+	if (!getilongarg(args, 2, 1, &arg2))
+		return NULL;
+	pixmode( arg1 , arg2 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/* long qgetfd */
+
+static PyObject *
+gl_qgetfd(PyObject *self, PyObject *args)
+{
+	long retval;
+	retval = qgetfd( );
+	return mknewlongobject(retval);
+}
+
+/* void dither long s */
+
+static PyObject *
+gl_dither(PyObject *self, PyObject *args)
+{
+	long arg1 ;
+	if (!getilongarg(args, 1, 0, &arg1))
+		return NULL;
+	dither( arg1 );
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+static struct PyMethodDef gl_methods[] = {
+	{"qread", gl_qread,                  METH_OLDARGS},
+	{"varray", gl_varray,                METH_OLDARGS},
+	{"nvarray", gl_nvarray,              METH_OLDARGS},
+	{"vnarray", gl_vnarray,              METH_OLDARGS},
+	{"nurbssurface", gl_nurbssurface,    METH_OLDARGS},
+	{"nurbscurve", gl_nurbscurve,        METH_OLDARGS},
+	{"pwlcurve", gl_pwlcurve,            METH_OLDARGS},
+	{"pick", gl_pick,                    METH_OLDARGS},
+	{"endpick", gl_endpick,              METH_NOARGS},
+	{"gselect", gl_gselect,              METH_OLDARGS},
+	{"endselect", gl_endselect,          METH_NOARGS},
+	{"getmatrix", gl_getmatrix,          METH_OLDARGS},
+	{"altgetmatrix", gl_altgetmatrix,    METH_OLDARGS},
+	{"lrectwrite", gl_lrectwrite,        METH_OLDARGS},
+	{"lrectread", gl_lrectread,          METH_OLDARGS},
+	{"readdisplay", gl_readdisplay,      METH_OLDARGS},
+	{"packrect", gl_packrect,            METH_OLDARGS},
+	{"unpackrect", gl_unpackrect,        METH_OLDARGS},
+	{"gversion", gl_gversion,            METH_OLDARGS},
+	{"clear", gl_clear,                  METH_OLDARGS},
+	{"getshade", gl_getshade,            METH_OLDARGS},
+	{"devport", gl_devport,              METH_OLDARGS},
+	{"rdr2i", gl_rdr2i,                  METH_OLDARGS},
+	{"rectfs", gl_rectfs,                METH_OLDARGS},
+	{"rects", gl_rects,                  METH_OLDARGS},
+	{"rmv2i", gl_rmv2i,                  METH_OLDARGS},
+	{"noport", gl_noport,                METH_OLDARGS},
+	{"popviewport", gl_popviewport,      METH_OLDARGS},
+	{"clearhitcode", gl_clearhitcode,    METH_OLDARGS},
+	{"closeobj", gl_closeobj,            METH_OLDARGS},
+	{"cursoff", gl_cursoff,              METH_OLDARGS},
+	{"curson", gl_curson,                METH_OLDARGS},
+	{"doublebuffer", gl_doublebuffer,    METH_OLDARGS},
+	{"finish", gl_finish,                METH_OLDARGS},
+	{"gconfig", gl_gconfig,              METH_OLDARGS},
+	{"ginit", gl_ginit,                  METH_OLDARGS},
+	{"greset", gl_greset,                METH_OLDARGS},
+	{"multimap", gl_multimap,            METH_OLDARGS},
+	{"onemap", gl_onemap,                METH_OLDARGS},
+	{"popattributes", gl_popattributes,  METH_OLDARGS},
+	{"popmatrix", gl_popmatrix,          METH_OLDARGS},
+	{"pushattributes", gl_pushattributes,METH_OLDARGS},
+	{"pushmatrix", gl_pushmatrix,        METH_OLDARGS},
+	{"pushviewport", gl_pushviewport,    METH_OLDARGS},
+	{"qreset", gl_qreset,                METH_OLDARGS},
+	{"RGBmode", gl_RGBmode,              METH_OLDARGS},
+	{"singlebuffer", gl_singlebuffer,    METH_OLDARGS},
+	{"swapbuffers", gl_swapbuffers,      METH_OLDARGS},
+	{"gsync", gl_gsync,                  METH_OLDARGS},
+	{"gflush", gl_gflush,                METH_OLDARGS},
+	{"tpon", gl_tpon,                    METH_OLDARGS},
+	{"tpoff", gl_tpoff,                  METH_OLDARGS},
+	{"clkon", gl_clkon,                  METH_OLDARGS},
+	{"clkoff", gl_clkoff,                METH_OLDARGS},
+	{"ringbell", gl_ringbell,            METH_OLDARGS},
+	{"gbegin", gl_gbegin,                METH_OLDARGS},
+	{"textinit", gl_textinit,            METH_OLDARGS},
+	{"initnames", gl_initnames,          METH_OLDARGS},
+	{"pclos", gl_pclos,                  METH_OLDARGS},
+	{"popname", gl_popname,              METH_OLDARGS},
+	{"spclos", gl_spclos,                METH_OLDARGS},
+	{"zclear", gl_zclear,                METH_OLDARGS},
+	{"screenspace", gl_screenspace,      METH_OLDARGS},
+	{"reshapeviewport", gl_reshapeviewport, METH_OLDARGS},
+	{"winpush", gl_winpush,              METH_OLDARGS},
+	{"winpop", gl_winpop,                METH_OLDARGS},
+	{"foreground", gl_foreground,        METH_OLDARGS},
+	{"endfullscrn", gl_endfullscrn,      METH_OLDARGS},
+	{"endpupmode", gl_endpupmode,        METH_OLDARGS},
+	{"fullscrn", gl_fullscrn,            METH_OLDARGS},
+	{"pupmode", gl_pupmode,              METH_OLDARGS},
+	{"winconstraints", gl_winconstraints, METH_OLDARGS},
+	{"pagecolor", gl_pagecolor,          METH_OLDARGS},
+	{"textcolor", gl_textcolor,          METH_OLDARGS},
+	{"color", gl_color,                  METH_OLDARGS},
+	{"curveit", gl_curveit,              METH_OLDARGS},
+	{"font", gl_font,                    METH_OLDARGS},
+	{"linewidth", gl_linewidth,          METH_OLDARGS},
+	{"setlinestyle", gl_setlinestyle,    METH_OLDARGS},
+	{"setmap", gl_setmap,                METH_OLDARGS},
+	{"swapinterval", gl_swapinterval,    METH_OLDARGS},
+	{"writemask", gl_writemask,          METH_OLDARGS},
+	{"textwritemask", gl_textwritemask,  METH_OLDARGS},
+	{"qdevice", gl_qdevice,              METH_OLDARGS},
+	{"unqdevice", gl_unqdevice,          METH_OLDARGS},
+	{"curvebasis", gl_curvebasis,        METH_OLDARGS},
+	{"curveprecision", gl_curveprecision,METH_OLDARGS},
+	{"loadname", gl_loadname,            METH_OLDARGS},
+	{"passthrough", gl_passthrough,      METH_OLDARGS},
+	{"pushname", gl_pushname,            METH_OLDARGS},
+	{"setmonitor", gl_setmonitor,        METH_OLDARGS},
+	{"setshade", gl_setshade,            METH_OLDARGS},
+	{"setpattern", gl_setpattern,        METH_OLDARGS},
+	{"pagewritemask", gl_pagewritemask,  METH_OLDARGS},
+	{"callobj", gl_callobj,              METH_OLDARGS},
+	{"delobj", gl_delobj,                METH_OLDARGS},
+	{"editobj", gl_editobj,              METH_OLDARGS},
+	{"makeobj", gl_makeobj,              METH_OLDARGS},
+	{"maketag", gl_maketag,              METH_OLDARGS},
+	{"chunksize", gl_chunksize,          METH_OLDARGS},
+	{"compactify", gl_compactify,        METH_OLDARGS},
+	{"deltag", gl_deltag,                METH_OLDARGS},
+	{"lsrepeat", gl_lsrepeat,            METH_OLDARGS},
+	{"objinsert", gl_objinsert,          METH_OLDARGS},
+	{"objreplace", gl_objreplace,        METH_OLDARGS},
+	{"winclose", gl_winclose,            METH_OLDARGS},
+	{"blanktime", gl_blanktime,          METH_OLDARGS},
+	{"freepup", gl_freepup,              METH_OLDARGS},
+	{"backbuffer", gl_backbuffer,        METH_OLDARGS},
+	{"frontbuffer", gl_frontbuffer,      METH_OLDARGS},
+	{"lsbackup", gl_lsbackup,            METH_OLDARGS},
+	{"resetls", gl_resetls,              METH_OLDARGS},
+	{"lampon", gl_lampon,                METH_OLDARGS},
+	{"lampoff", gl_lampoff,              METH_OLDARGS},
+	{"setbell", gl_setbell,              METH_OLDARGS},
+	{"blankscreen", gl_blankscreen,      METH_OLDARGS},
+	{"depthcue", gl_depthcue,            METH_OLDARGS},
+	{"zbuffer", gl_zbuffer,              METH_OLDARGS},
+	{"backface", gl_backface,            METH_OLDARGS},
+	{"cmov2i", gl_cmov2i,                METH_OLDARGS},
+	{"draw2i", gl_draw2i,                METH_OLDARGS},
+	{"move2i", gl_move2i,                METH_OLDARGS},
+	{"pnt2i", gl_pnt2i,                  METH_OLDARGS},
+	{"patchbasis", gl_patchbasis,        METH_OLDARGS},
+	{"patchprecision", gl_patchprecision, METH_OLDARGS},
+	{"pdr2i", gl_pdr2i,                  METH_OLDARGS},
+	{"pmv2i", gl_pmv2i,                  METH_OLDARGS},
+	{"rpdr2i", gl_rpdr2i,                METH_OLDARGS},
+	{"rpmv2i", gl_rpmv2i,                METH_OLDARGS},
+	{"xfpt2i", gl_xfpt2i,                METH_OLDARGS},
+	{"objdelete", gl_objdelete,          METH_OLDARGS},
+	{"patchcurves", gl_patchcurves,      METH_OLDARGS},
+	{"minsize", gl_minsize,              METH_OLDARGS},
+	{"maxsize", gl_maxsize,              METH_OLDARGS},
+	{"keepaspect", gl_keepaspect,        METH_OLDARGS},
+	{"prefsize", gl_prefsize,            METH_OLDARGS},
+	{"stepunit", gl_stepunit,            METH_OLDARGS},
+	{"fudge", gl_fudge,                  METH_OLDARGS},
+	{"winmove", gl_winmove,              METH_OLDARGS},
+	{"attachcursor", gl_attachcursor,    METH_OLDARGS},
+	{"deflinestyle", gl_deflinestyle,    METH_OLDARGS},
+	{"noise", gl_noise,                  METH_OLDARGS},
+	{"picksize", gl_picksize,            METH_OLDARGS},
+	{"qenter", gl_qenter,                METH_OLDARGS},
+	{"setdepth", gl_setdepth,            METH_OLDARGS},
+	{"cmov2s", gl_cmov2s,                METH_OLDARGS},
+	{"draw2s", gl_draw2s,                METH_OLDARGS},
+	{"move2s", gl_move2s,                METH_OLDARGS},
+	{"pdr2s", gl_pdr2s,                  METH_OLDARGS},
+	{"pmv2s", gl_pmv2s,                  METH_OLDARGS},
+	{"pnt2s", gl_pnt2s,                  METH_OLDARGS},
+	{"rdr2s", gl_rdr2s,                  METH_OLDARGS},
+	{"rmv2s", gl_rmv2s,                  METH_OLDARGS},
+	{"rpdr2s", gl_rpdr2s,                METH_OLDARGS},
+	{"rpmv2s", gl_rpmv2s,                METH_OLDARGS},
+	{"xfpt2s", gl_xfpt2s,                METH_OLDARGS},
+	{"cmov2", gl_cmov2,                  METH_OLDARGS},
+	{"draw2", gl_draw2,                  METH_OLDARGS},
+	{"move2", gl_move2,                  METH_OLDARGS},
+	{"pnt2", gl_pnt2,                    METH_OLDARGS},
+	{"pdr2", gl_pdr2,                    METH_OLDARGS},
+	{"pmv2", gl_pmv2,                    METH_OLDARGS},
+	{"rdr2", gl_rdr2,                    METH_OLDARGS},
+	{"rmv2", gl_rmv2,                    METH_OLDARGS},
+	{"rpdr2", gl_rpdr2,                  METH_OLDARGS},
+	{"rpmv2", gl_rpmv2,                  METH_OLDARGS},
+	{"xfpt2", gl_xfpt2,                  METH_OLDARGS},
+	{"loadmatrix", gl_loadmatrix,        METH_OLDARGS},
+	{"multmatrix", gl_multmatrix,        METH_OLDARGS},
+	{"crv", gl_crv,                      METH_OLDARGS},
+	{"rcrv", gl_rcrv,                    METH_OLDARGS},
+	{"addtopup", gl_addtopup,            METH_OLDARGS},
+	{"charstr", gl_charstr,              METH_OLDARGS},
+	{"getport", gl_getport,              METH_OLDARGS},
+	{"strwidth", gl_strwidth,            METH_OLDARGS},
+	{"winopen", gl_winopen,              METH_OLDARGS},
+	{"wintitle", gl_wintitle,            METH_OLDARGS},
+	{"polf", gl_polf,                    METH_OLDARGS},
+	{"polf2", gl_polf2,                  METH_OLDARGS},
+	{"poly", gl_poly,                    METH_OLDARGS},
+	{"poly2", gl_poly2,                  METH_OLDARGS},
+	{"crvn", gl_crvn,                    METH_OLDARGS},
+	{"rcrvn", gl_rcrvn,                  METH_OLDARGS},
+	{"polf2i", gl_polf2i,                METH_OLDARGS},
+	{"polfi", gl_polfi,                  METH_OLDARGS},
+	{"poly2i", gl_poly2i,                METH_OLDARGS},
+	{"polyi", gl_polyi,                  METH_OLDARGS},
+	{"polf2s", gl_polf2s,                METH_OLDARGS},
+	{"polfs", gl_polfs,                  METH_OLDARGS},
+	{"polys", gl_polys,                  METH_OLDARGS},
+	{"poly2s", gl_poly2s,                METH_OLDARGS},
+	{"defcursor", gl_defcursor,          METH_OLDARGS},
+	{"writepixels", gl_writepixels,      METH_OLDARGS},
+	{"defbasis", gl_defbasis,            METH_OLDARGS},
+	{"gewrite", gl_gewrite,              METH_OLDARGS},
+	{"rotate", gl_rotate,                METH_OLDARGS},
+	{"rot", gl_rot,                      METH_OLDARGS},
+	{"circfi", gl_circfi,                METH_OLDARGS},
+	{"circi", gl_circi,                  METH_OLDARGS},
+	{"cmovi", gl_cmovi,                  METH_OLDARGS},
+	{"drawi", gl_drawi,                  METH_OLDARGS},
+	{"movei", gl_movei,                  METH_OLDARGS},
+	{"pnti", gl_pnti,                    METH_OLDARGS},
+	{"newtag", gl_newtag,                METH_OLDARGS},
+	{"pdri", gl_pdri,                    METH_OLDARGS},
+	{"pmvi", gl_pmvi,                    METH_OLDARGS},
+	{"rdri", gl_rdri,                    METH_OLDARGS},
+	{"rmvi", gl_rmvi,                    METH_OLDARGS},
+	{"rpdri", gl_rpdri,                  METH_OLDARGS},
+	{"rpmvi", gl_rpmvi,                  METH_OLDARGS},
+	{"xfpti", gl_xfpti,                  METH_OLDARGS},
+	{"circ", gl_circ,                    METH_OLDARGS},
+	{"circf", gl_circf,                  METH_OLDARGS},
+	{"cmov", gl_cmov,                    METH_OLDARGS},
+	{"draw", gl_draw,                    METH_OLDARGS},
+	{"move", gl_move,                    METH_OLDARGS},
+	{"pnt", gl_pnt,                      METH_OLDARGS},
+	{"scale", gl_scale,                  METH_OLDARGS},
+	{"translate", gl_translate,          METH_OLDARGS},
+	{"pdr", gl_pdr,                      METH_OLDARGS},
+	{"pmv", gl_pmv,                      METH_OLDARGS},
+	{"rdr", gl_rdr,                      METH_OLDARGS},
+	{"rmv", gl_rmv,                      METH_OLDARGS},
+	{"rpdr", gl_rpdr,                    METH_OLDARGS},
+	{"rpmv", gl_rpmv,                    METH_OLDARGS},
+	{"xfpt", gl_xfpt,                    METH_OLDARGS},
+	{"RGBcolor", gl_RGBcolor,            METH_OLDARGS},
+	{"RGBwritemask", gl_RGBwritemask,    METH_OLDARGS},
+	{"setcursor", gl_setcursor,          METH_OLDARGS},
+	{"tie", gl_tie,                      METH_OLDARGS},
+	{"circfs", gl_circfs,                METH_OLDARGS},
+	{"circs", gl_circs,                  METH_OLDARGS},
+	{"cmovs", gl_cmovs,                  METH_OLDARGS},
+	{"draws", gl_draws,                  METH_OLDARGS},
+	{"moves", gl_moves,                  METH_OLDARGS},
+	{"pdrs", gl_pdrs,                    METH_OLDARGS},
+	{"pmvs", gl_pmvs,                    METH_OLDARGS},
+	{"pnts", gl_pnts,                    METH_OLDARGS},
+	{"rdrs", gl_rdrs,                    METH_OLDARGS},
+	{"rmvs", gl_rmvs,                    METH_OLDARGS},
+	{"rpdrs", gl_rpdrs,                  METH_OLDARGS},
+	{"rpmvs", gl_rpmvs,                  METH_OLDARGS},
+	{"xfpts", gl_xfpts,                  METH_OLDARGS},
+	{"curorigin", gl_curorigin,          METH_OLDARGS},
+	{"cyclemap", gl_cyclemap,            METH_OLDARGS},
+	{"patch", gl_patch,                  METH_OLDARGS},
+	{"splf", gl_splf,                    METH_OLDARGS},
+	{"splf2", gl_splf2,                  METH_OLDARGS},
+	{"splfi", gl_splfi,                  METH_OLDARGS},
+	{"splf2i", gl_splf2i,                METH_OLDARGS},
+	{"splfs", gl_splfs,                  METH_OLDARGS},
+	{"splf2s", gl_splf2s,                METH_OLDARGS},
+	{"rpatch", gl_rpatch,                METH_OLDARGS},
+	{"ortho2", gl_ortho2,                METH_OLDARGS},
+	{"rect", gl_rect,                    METH_OLDARGS},
+	{"rectf", gl_rectf,                  METH_OLDARGS},
+	{"xfpt4", gl_xfpt4,                  METH_OLDARGS},
+	{"textport", gl_textport,            METH_OLDARGS},
+	{"mapcolor", gl_mapcolor,            METH_OLDARGS},
+	{"scrmask", gl_scrmask,              METH_OLDARGS},
+	{"setvaluator", gl_setvaluator,      METH_OLDARGS},
+	{"viewport", gl_viewport,            METH_OLDARGS},
+	{"shaderange", gl_shaderange,        METH_OLDARGS},
+	{"xfpt4s", gl_xfpt4s,                METH_OLDARGS},
+	{"rectfi", gl_rectfi,                METH_OLDARGS},
+	{"recti", gl_recti,                  METH_OLDARGS},
+	{"xfpt4i", gl_xfpt4i,                METH_OLDARGS},
+	{"prefposition", gl_prefposition,    METH_OLDARGS},
+	{"arc", gl_arc,                      METH_OLDARGS},
+	{"arcf", gl_arcf,                    METH_OLDARGS},
+	{"arcfi", gl_arcfi,                  METH_OLDARGS},
+	{"arci", gl_arci,                    METH_OLDARGS},
+	{"bbox2", gl_bbox2,                  METH_OLDARGS},
+	{"bbox2i", gl_bbox2i,                METH_OLDARGS},
+	{"bbox2s", gl_bbox2s,                METH_OLDARGS},
+	{"blink", gl_blink,                  METH_OLDARGS},
+	{"ortho", gl_ortho,                  METH_OLDARGS},
+	{"window", gl_window,                METH_OLDARGS},
+	{"lookat", gl_lookat,                METH_OLDARGS},
+	{"perspective", gl_perspective,      METH_OLDARGS},
+	{"polarview", gl_polarview,          METH_OLDARGS},
+	{"arcfs", gl_arcfs,                  METH_OLDARGS},
+	{"arcs", gl_arcs,                    METH_OLDARGS},
+	{"rectcopy", gl_rectcopy,            METH_OLDARGS},
+	{"RGBcursor", gl_RGBcursor,          METH_OLDARGS},
+	{"getbutton", gl_getbutton,          METH_OLDARGS},
+	{"getcmmode", gl_getcmmode,          METH_OLDARGS},
+	{"getlsbackup", gl_getlsbackup,      METH_OLDARGS},
+	{"getresetls", gl_getresetls,        METH_OLDARGS},
+	{"getdcm", gl_getdcm,                METH_OLDARGS},
+	{"getzbuffer", gl_getzbuffer,        METH_OLDARGS},
+	{"ismex", gl_ismex,                  METH_OLDARGS},
+	{"isobj", gl_isobj,                  METH_OLDARGS},
+	{"isqueued", gl_isqueued,            METH_OLDARGS},
+	{"istag", gl_istag,                  METH_OLDARGS},
+	{"genobj", gl_genobj,                METH_OLDARGS},
+	{"gentag", gl_gentag,                METH_OLDARGS},
+	{"getbuffer", gl_getbuffer,          METH_OLDARGS},
+	{"getcolor", gl_getcolor,            METH_OLDARGS},
+	{"getdisplaymode", gl_getdisplaymode, METH_OLDARGS},
+	{"getfont", gl_getfont,              METH_OLDARGS},
+	{"getheight", gl_getheight,          METH_OLDARGS},
+	{"gethitcode", gl_gethitcode,        METH_OLDARGS},
+	{"getlstyle", gl_getlstyle,          METH_OLDARGS},
+	{"getlwidth", gl_getlwidth,          METH_OLDARGS},
+	{"getmap", gl_getmap,                METH_OLDARGS},
+	{"getplanes", gl_getplanes,          METH_OLDARGS},
+	{"getwritemask", gl_getwritemask,    METH_OLDARGS},
+	{"qtest", gl_qtest,                  METH_OLDARGS},
+	{"getlsrepeat", gl_getlsrepeat,      METH_OLDARGS},
+	{"getmonitor", gl_getmonitor,        METH_OLDARGS},
+	{"getopenobj", gl_getopenobj,        METH_OLDARGS},
+	{"getpattern", gl_getpattern,        METH_OLDARGS},
+	{"winget", gl_winget,                METH_OLDARGS},
+	{"winattach", gl_winattach,          METH_OLDARGS},
+	{"getothermonitor", gl_getothermonitor, METH_OLDARGS},
+	{"newpup", gl_newpup,                METH_OLDARGS},
+	{"getvaluator", gl_getvaluator,      METH_OLDARGS},
+	{"winset", gl_winset,                METH_OLDARGS},
+	{"dopup", gl_dopup,                  METH_OLDARGS},
+	{"getdepth", gl_getdepth,            METH_OLDARGS},
+	{"getcpos", gl_getcpos,              METH_OLDARGS},
+	{"getsize", gl_getsize,              METH_OLDARGS},
+	{"getorigin", gl_getorigin,          METH_OLDARGS},
+	{"getviewport", gl_getviewport,      METH_OLDARGS},
+	{"gettp", gl_gettp,                  METH_OLDARGS},
+	{"getgpos", gl_getgpos,              METH_OLDARGS},
+	{"winposition", gl_winposition,      METH_OLDARGS},
+	{"gRGBcolor", gl_gRGBcolor,          METH_OLDARGS},
+	{"gRGBmask", gl_gRGBmask,            METH_OLDARGS},
+	{"getscrmask", gl_getscrmask,        METH_OLDARGS},
+	{"getmcolor", gl_getmcolor,          METH_OLDARGS},
+	{"mapw", gl_mapw,                    METH_OLDARGS},
+	{"mapw2", gl_mapw2,                  METH_OLDARGS},
+	{"getcursor", gl_getcursor,          METH_OLDARGS},
+	{"cmode", gl_cmode,                  METH_OLDARGS},
+	{"concave", gl_concave,              METH_OLDARGS},
+	{"curstype", gl_curstype,            METH_OLDARGS},
+	{"drawmode", gl_drawmode,            METH_OLDARGS},
+	{"gammaramp", gl_gammaramp,          METH_OLDARGS},
+	{"getbackface", gl_getbackface,      METH_OLDARGS},
+	{"getdescender", gl_getdescender,    METH_OLDARGS},
+	{"getdrawmode", gl_getdrawmode,      METH_OLDARGS},
+	{"getmmode", gl_getmmode,            METH_OLDARGS},
+	{"getsm", gl_getsm,                  METH_OLDARGS},
+	{"getvideo", gl_getvideo,            METH_OLDARGS},
+	{"imakebackground", gl_imakebackground, METH_OLDARGS},
+	{"lmbind", gl_lmbind,                METH_OLDARGS},
+	{"lmdef", gl_lmdef,                  METH_OLDARGS},
+	{"mmode", gl_mmode,                  METH_OLDARGS},
+	{"normal", gl_normal,                METH_OLDARGS},
+	{"overlay", gl_overlay,              METH_OLDARGS},
+	{"RGBrange", gl_RGBrange,            METH_OLDARGS},
+	{"setvideo", gl_setvideo,            METH_OLDARGS},
+	{"shademodel", gl_shademodel,        METH_OLDARGS},
+	{"underlay", gl_underlay,            METH_OLDARGS},
+	{"bgnclosedline", gl_bgnclosedline,  METH_OLDARGS},
+	{"bgnline", gl_bgnline,              METH_OLDARGS},
+	{"bgnpoint", gl_bgnpoint,            METH_OLDARGS},
+	{"bgnpolygon", gl_bgnpolygon,        METH_OLDARGS},
+	{"bgnsurface", gl_bgnsurface,        METH_OLDARGS},
+	{"bgntmesh", gl_bgntmesh,            METH_OLDARGS},
+	{"bgntrim", gl_bgntrim,              METH_OLDARGS},
+	{"endclosedline", gl_endclosedline,  METH_OLDARGS},
+	{"endline", gl_endline,              METH_OLDARGS},
+	{"endpoint", gl_endpoint,            METH_OLDARGS},
+	{"endpolygon", gl_endpolygon,        METH_OLDARGS},
+	{"endsurface", gl_endsurface,        METH_OLDARGS},
+	{"endtmesh", gl_endtmesh,            METH_OLDARGS},
+	{"endtrim", gl_endtrim,              METH_OLDARGS},
+	{"blendfunction", gl_blendfunction,  METH_OLDARGS},
+	{"c3f", gl_c3f,                      METH_OLDARGS},
+	{"c3i", gl_c3i,                      METH_OLDARGS},
+	{"c3s", gl_c3s,                      METH_OLDARGS},
+	{"c4f", gl_c4f,                      METH_OLDARGS},
+	{"c4i", gl_c4i,                      METH_OLDARGS},
+	{"c4s", gl_c4s,                      METH_OLDARGS},
+	{"colorf", gl_colorf,                METH_OLDARGS},
+	{"cpack", gl_cpack,                  METH_OLDARGS},
+	{"czclear", gl_czclear,              METH_OLDARGS},
+	{"dglclose", gl_dglclose,            METH_OLDARGS},
+	{"dglopen", gl_dglopen,              METH_OLDARGS},
+	{"getgdesc", gl_getgdesc,            METH_OLDARGS},
+	{"getnurbsproperty", gl_getnurbsproperty, METH_OLDARGS},
+	{"glcompat", gl_glcompat,            METH_OLDARGS},
+	{"iconsize", gl_iconsize,            METH_OLDARGS},
+	{"icontitle", gl_icontitle,          METH_OLDARGS},
+	{"lRGBrange", gl_lRGBrange,          METH_OLDARGS},
+	{"linesmooth", gl_linesmooth,        METH_OLDARGS},
+	{"lmcolor", gl_lmcolor,              METH_OLDARGS},
+	{"logicop", gl_logicop,              METH_OLDARGS},
+	{"lsetdepth", gl_lsetdepth,          METH_OLDARGS},
+	{"lshaderange", gl_lshaderange,      METH_OLDARGS},
+	{"n3f", gl_n3f,                      METH_OLDARGS},
+	{"noborder", gl_noborder,            METH_OLDARGS},
+	{"pntsmooth", gl_pntsmooth,          METH_OLDARGS},
+	{"readsource", gl_readsource,        METH_OLDARGS},
+	{"rectzoom", gl_rectzoom,            METH_OLDARGS},
+	{"sbox", gl_sbox,                    METH_OLDARGS},
+	{"sboxi", gl_sboxi,                  METH_OLDARGS},
+	{"sboxs", gl_sboxs,                  METH_OLDARGS},
+	{"sboxf", gl_sboxf,                  METH_OLDARGS},
+	{"sboxfi", gl_sboxfi,                METH_OLDARGS},
+	{"sboxfs", gl_sboxfs,                METH_OLDARGS},
+	{"setnurbsproperty", gl_setnurbsproperty, METH_OLDARGS},
+	{"setpup", gl_setpup,                METH_OLDARGS},
+	{"smoothline", gl_smoothline,        METH_OLDARGS},
+	{"subpixel", gl_subpixel,            METH_OLDARGS},
+	{"swaptmesh", gl_swaptmesh,          METH_OLDARGS},
+	{"swinopen", gl_swinopen,            METH_OLDARGS},
+	{"v2f", gl_v2f,                      METH_OLDARGS},
+	{"v2i", gl_v2i,                      METH_OLDARGS},
+	{"v2s", gl_v2s,                      METH_OLDARGS},
+	{"v3f", gl_v3f,                      METH_OLDARGS},
+	{"v3i", gl_v3i,                      METH_OLDARGS},
+	{"v3s", gl_v3s,                      METH_OLDARGS},
+	{"v4f", gl_v4f,                      METH_OLDARGS},
+	{"v4i", gl_v4i,                      METH_OLDARGS},
+	{"v4s", gl_v4s,                      METH_OLDARGS},
+	{"videocmd", gl_videocmd,            METH_OLDARGS},
+	{"windepth", gl_windepth,            METH_OLDARGS},
+	{"wmpack", gl_wmpack,                METH_OLDARGS},
+	{"zdraw", gl_zdraw,                  METH_OLDARGS},
+	{"zfunction", gl_zfunction,          METH_OLDARGS},
+	{"zsource", gl_zsource,              METH_OLDARGS},
+	{"zwritemask", gl_zwritemask,        METH_OLDARGS},
+	{"v2d", gl_v2d,                      METH_OLDARGS},
+	{"v3d", gl_v3d,                      METH_OLDARGS},
+	{"v4d", gl_v4d,                      METH_OLDARGS},
+	{"pixmode", gl_pixmode,              METH_OLDARGS},
+	{"qgetfd", gl_qgetfd,                METH_OLDARGS},
+	{"dither", gl_dither,                METH_OLDARGS},
+	{NULL, NULL} /* Sentinel */
+};
+
+void
+initgl(void)
+{
+    
+    if (PyErr_WarnPy3k("the gl module has been removed in "
+                       "Python 3.0", 2) < 0)
+        return;
+    
+	(void) Py_InitModule("gl", gl_methods);
+}