3 Input used to generate the Python module "glmodule.c".
4 The stub generator is a Python script called "cgen.py".
6 Each definition must be contained on one line:
8 <returntype> <name> <type> <arg> <type> <arg>
10 <returntype> can be: void, short, long (XXX maybe others?)
12 <type> can be: char, string, short, float, long, or double
13 string indicates a null terminated string;
14 if <type> is char and <arg> begins with a *, the * is stripped
15 and <type> is changed into string
17 <arg> has the form <mode> or <mode>[<subscript>]
20 r: arg is received (arg is a pointer)
21 and <subscript> can be (N and I are numbers):
28 In the case where the subscript consists of two parts
29 separated by *, the first part is the width of the matrix, and
30 the second part is the length of the matrix. This order is
31 opposite from the order used in C to declare a two-dimensional
36 * An attempt has been made to make this module switch threads on qread
37 * calls. It is far from safe, though.
45 extern int textwritemask();
46 extern int pagewritemask();
52 #include "cgensupport.h"
55 Some stubs are too complicated for the stub generator.
56 We can include manually written versions of them here.
57 A line starting with '%' gives the name of the function so the stub
58 generator can include it in the table of functions.
70 Py_BEGIN_ALLOW_THREADS
71 retval = qread( & arg1 );
73 { PyObject *v = PyTuple_New( 2 );
74 if (v == NULL) return NULL;
75 PyTuple_SetItem(v, 0, mknewlongobject(retval));
76 PyTuple_SetItem(v, 1, mknewshortobject(arg1));
83 varray -- an array of v.. calls.
84 The argument is an array (maybe list or tuple) of points.
85 Each point must be a tuple or list of coordinates (x, y, z).
86 The points may be 2- or 3-dimensional but must all have the
87 same dimension. Float and int values may be mixed however.
88 The points are always converted to 3D double precision points
89 by assuming z=0.0 if necessary (as indicated in the man page),
90 and for each point v3d() is called.
100 PyObject *v, *w=NULL;
103 PyObject * (*getitem)(PyObject *, int);
105 if (!PyArg_GetObject(args, 1, 0, &v))
108 if (PyList_Check(v)) {
110 getitem = PyList_GetItem;
112 else if (PyTuple_Check(v)) {
114 getitem = PyTuple_GetItem;
126 w = (*getitem)(v, 0);
131 else if (PyList_Check(w)) {
132 width = PyList_Size(w);
134 else if (PyTuple_Check(w)) {
135 width = PyTuple_Size(w);
149 for (i = 0; i < n; i++) {
150 w = (*getitem)(v, i);
151 if (!PyArg_GetDoubleArray(w, 1, 0, width, vec))
161 vnarray, nvarray -- an array of n3f and v3f calls.
162 The argument is an array (list or tuple) of pairs of points and normals.
163 Each pair is a tuple (NOT a list) of a point and a normal for that point.
164 Each point or normal must be a tuple (NOT a list) of coordinates (x, y, z).
165 Three coordinates must be given. Float and int values may be mixed.
166 For each pair, n3f() is called for the normal, and then v3f() is called
169 vnarray and nvarray differ only in the order of the vector and normal in
170 the pair: vnarray expects (v, n) while nvarray expects (n, v).
173 static PyObject *gen_nvarray(); /* Forward */
178 gl_nvarray(self, args)
182 return gen_nvarray(args, 0);
188 gl_vnarray(self, args)
192 return gen_nvarray(args, 1);
195 /* Generic, internal version of {nv,nv}array: inorm indicates the
196 argument order, 0: normal first, 1: vector first. */
199 gen_nvarray(args, inorm)
203 PyObject *v, *w, *wnorm, *wvec;
205 float norm[3], vec[3];
206 PyObject * (*getitem)(PyObject *, int);
208 if (!PyArg_GetObject(args, 1, 0, &v))
211 if (PyList_Check(v)) {
213 getitem = PyList_GetItem;
215 else if (PyTuple_Check(v)) {
217 getitem = PyTuple_GetItem;
224 for (i = 0; i < n; i++) {
225 w = (*getitem)(v, i);
226 if (!PyTuple_Check(w) || PyTuple_Size(w) != 2) {
230 wnorm = PyTuple_GetItem(w, inorm);
231 wvec = PyTuple_GetItem(w, 1 - inorm);
232 if (!PyArg_GetFloatArray(wnorm, 1, 0, 3, norm) ||
233 !PyArg_GetFloatArray(wvec, 1, 0, 3, vec))
243 /* nurbssurface(s_knots[], t_knots[], ctl[][], s_order, t_order, type).
244 The dimensions of ctl[] are computed as follows:
245 [len(s_knots) - s_order], [len(t_knots) - t_order]
251 gl_nurbssurface(self, args)
264 long s_byte_stride, t_byte_stride;
267 PyObject *v, *w, *pt;
269 if (!PyArg_GetLongArraySize(args, 6, 0, &arg1))
271 if ((arg2 = PyMem_NEW(double, arg1 )) == NULL) {
272 return PyErr_NoMemory();
274 if (!PyArg_GetDoubleArray(args, 6, 0, arg1 , arg2))
276 if (!PyArg_GetLongArraySize(args, 6, 1, &arg3))
278 if ((arg4 = PyMem_NEW(double, arg3 )) == NULL) {
279 return PyErr_NoMemory();
281 if (!PyArg_GetDoubleArray(args, 6, 1, arg3 , arg4))
283 if (!PyArg_GetLong(args, 6, 3, &arg6))
285 if (!PyArg_GetLong(args, 6, 4, &arg7))
287 if (!PyArg_GetLong(args, 6, 5, &arg8))
291 else if (arg8 == N_XYZW)
297 s_nctl = arg1 - arg6;
298 t_nctl = arg3 - arg7;
299 if (!PyArg_GetObject(args, 6, 2, &v))
301 if (!PyList_Check(v) || PyList_Size(v) != s_nctl) {
305 if ((arg5 = PyMem_NEW(double, s_nctl*t_nctl*ncoords )) == NULL) {
306 return PyErr_NoMemory();
309 for (s = 0; s < s_nctl; s++) {
310 w = PyList_GetItem(v, s);
311 if (w == NULL || !PyList_Check(w) ||
312 PyList_Size(w) != t_nctl) {
316 for (t = 0; t < t_nctl; t++) {
317 pt = PyList_GetItem(w, t);
318 if (!PyArg_GetDoubleArray(pt, 1, 0, ncoords, pnext))
323 s_byte_stride = sizeof(double) * ncoords;
324 t_byte_stride = s_byte_stride * s_nctl;
325 nurbssurface( arg1 , arg2 , arg3 , arg4 ,
326 s_byte_stride , t_byte_stride , arg5 , arg6 , arg7 , arg8 );
334 /* nurbscurve(knots, ctlpoints, order, type).
335 The length of ctlpoints is len(knots)-order. */
340 gl_nurbscurve(self, args)
350 int ncoords, npoints;
354 if (!PyArg_GetLongArraySize(args, 4, 0, &arg1))
356 if ((arg2 = PyMem_NEW(double, arg1 )) == NULL) {
357 return PyErr_NoMemory();
359 if (!PyArg_GetDoubleArray(args, 4, 0, arg1 , arg2))
361 if (!PyArg_GetLong(args, 4, 2, &arg5))
363 if (!PyArg_GetLong(args, 4, 3, &arg6))
367 else if (arg6 == N_STW)
373 npoints = arg1 - arg5;
374 if (!PyArg_GetObject(args, 4, 1, &v))
376 if (!PyList_Check(v) || PyList_Size(v) != npoints) {
380 if ((arg4 = PyMem_NEW(double, npoints*ncoords )) == NULL) {
381 return PyErr_NoMemory();
384 for (i = 0; i < npoints; i++) {
385 if (!PyArg_GetDoubleArray(PyList_GetItem(v, i), 1, 0, ncoords, pnext))
389 arg3 = (sizeof(double)) * ncoords;
390 nurbscurve( arg1 , arg2 , arg3 , arg4 , arg5 , arg6 );
397 /* pwlcurve(points, type).
398 Points is a list of points. Type must be N_ST. */
403 gl_pwlcurve(self, args)
409 double *data, *pnext;
410 long npoints, ncoords;
412 if (!PyArg_GetObject(args, 2, 0, &v))
414 if (!PyArg_GetLong(args, 2, 1, &type))
416 if (!PyList_Check(v)) {
420 npoints = PyList_Size(v);
427 if ((data = PyMem_NEW(double, npoints*ncoords)) == NULL) {
428 return PyErr_NoMemory();
431 for (i = 0; i < npoints; i++) {
432 if (!PyArg_GetDoubleArray(PyList_GetItem(v, i), 1, 0, ncoords, pnext))
436 pwlcurve(npoints, data, sizeof(double)*ncoords, type);
443 /* Picking and Selecting */
445 static short *pickbuffer = NULL;
446 static long pickbuffersize;
449 pick_select(args, func)
453 if (!PyArg_GetLong(args, 1, 0, &pickbuffersize))
455 if (pickbuffer != NULL) {
456 PyErr_SetString(PyExc_RuntimeError,
457 "pick/gselect: already picking/selecting");
460 if ((pickbuffer = PyMem_NEW(short, pickbuffersize)) == NULL) {
461 return PyErr_NoMemory();
463 (*func)(pickbuffer, pickbuffersize);
469 endpick_select(args, func)
475 if (!PyArg_NoArgs(args))
477 if (pickbuffer == NULL) {
478 PyErr_SetString(PyExc_RuntimeError,
479 "endpick/endselect: not in pick/select mode");
482 nhits = (*func)(pickbuffer);
484 nhits = -nhits; /* How to report buffer overflow otherwise? */
486 /* Scan the buffer to see how many integers */
488 for (; nhits > 0; nhits--) {
489 n += 1 + pickbuffer[n];
494 /* XXX Could do it nicer and interpret the data structure here,
495 returning a list of lists. But this can be done in Python... */
496 for (i = 0; i < n; i++) {
497 w = PyInt_FromLong((long)pickbuffer[i]);
502 PyList_SetItem(v, i, w);
504 PyMem_DEL(pickbuffer);
509 extern void pick(), gselect();
510 extern long endpick(), endselect();
513 static PyObject *gl_pick(self, args) PyObject *self, *args; {
514 return pick_select(args, pick);
518 static PyObject *gl_endpick(self, args) PyObject *self, *args; {
519 return endpick_select(args, endpick);
523 static PyObject *gl_gselect(self, args) PyObject *self, *args; {
524 return pick_select(args, gselect);
528 static PyObject *gl_endselect(self, args) PyObject *self, *args; {
529 return endpick_select(args, endselect);
533 /* XXX The generator botches this one. Here's a quick hack to fix it. */
535 /* XXX The generator botches this one. Here's a quick hack to fix it. */
537 % getmatrix float r[16]
540 gl_getmatrix(self, args)
550 return PyErr_NoMemory();
552 for (i = 0; i < 4; i++) for (j = 0; j < 4; j++) {
553 w = mknewfloatobject(arg1[i][j]);
558 PyList_SetItem(v, i*4+j, w);
563 /* Here's an alternate version that returns a 4x4 matrix instead of
564 a vector. Unfortunately it is incompatible with loadmatrix and
567 % altgetmatrix float r[4][4]
570 gl_altgetmatrix(self, args)
582 for (i = 0; i < 4; i++) {
588 PyList_SetItem(v, i, w);
590 for (i = 0; i < 4; i++) {
591 for (j = 0; j < 4; j++) {
592 w = mknewfloatobject(arg1[i][j]);
597 PyList_SetItem(PyList_GetItem(v, i), j, w);
606 gl_lrectwrite(self, args)
619 if (!PyArg_GetShort(args, 5, 0, &x1))
621 if (!PyArg_GetShort(args, 5, 1, &y1))
623 if (!PyArg_GetShort(args, 5, 2, &x2))
625 if (!PyArg_GetShort(args, 5, 3, &y2))
627 if (!PyArg_GetString(args, 5, 4, &parray))
629 if (!PyArg_GetObject(args, 5, 4, &s))
632 /* Don't check this, it breaks experiments with pixmode(PM_SIZE, ...) */
633 pixcount = (long)(x2+1-x1) * (long)(y2+1-y1);
634 if (!PyString_Check(s) || PyString_Size(s) != pixcount*sizeof(long)) {
635 PyErr_SetString(PyExc_RuntimeError,
636 "string arg to lrectwrite has wrong size");
640 lrectwrite( x1 , y1 , x2 , y2 , (unsigned long *) parray );
648 gl_lrectread(self, args)
658 if (!PyArg_GetShort(args, 4, 0, &x1))
660 if (!PyArg_GetShort(args, 4, 1, &y1))
662 if (!PyArg_GetShort(args, 4, 2, &x2))
664 if (!PyArg_GetShort(args, 4, 3, &y2))
666 pixcount = (long)(x2+1-x1) * (long)(y2+1-y1);
667 parray = PyString_FromStringAndSize((char *)NULL, pixcount*sizeof(long));
669 return NULL; /* No memory */
670 lrectread(x1, y1, x2, y2, (unsigned long *) PyString_AsString(parray));
677 gl_readdisplay(self, args)
681 short x1, y1, x2, y2;
682 unsigned long *parray, hints;
686 if ( !PyArg_Parse(args, "hhhhl", &x1, &y1, &x2, &y2, &hints) )
688 size = (long)(x2+1-x1) * (long)(y2+1-y1);
689 rv = PyString_FromStringAndSize((char *)NULL, size*sizeof(long));
692 parray = (unsigned long *)PyString_AsString(rv);
693 size_ret = readdisplay(x1, y1, x2, y2, parray, hints);
694 if ( size_ret != size ) {
695 printf("gl_readdisplay: got %ld pixels, expected %ld\n",
697 PyErr_SetString(PyExc_RuntimeError, "readdisplay returned unexpected length");
703 /* Desperately needed, here are tools to compress and decompress
704 the data manipulated by lrectread/lrectwrite.
706 gl.packrect(width, height, packfactor, bigdata) --> smalldata
707 makes 'bigdata' 4*(packfactor**2) times smaller by:
708 - turning it into B/W (a factor 4)
709 - replacing squares of size pacfactor by one
712 gl.unpackrect(width, height, packfactor, smalldata) --> bigdata
713 is the inverse; the numeric arguments must be *the same*.
715 Both work best if width and height are multiples of packfactor
716 (in fact unpackrect will leave garbage bytes).
722 gl_packrect(self, args)
726 long width, height, packfactor;
728 PyObject *unpacked, *packed;
729 int pixcount, packedcount, x, y, r, g, b;
732 unsigned long *parray;
733 if (!PyArg_GetLong(args, 4, 0, &width))
735 if (!PyArg_GetLong(args, 4, 1, &height))
737 if (!PyArg_GetLong(args, 4, 2, &packfactor))
739 if (!PyArg_GetString(args, 4, 3, &s)) /* For type checking only */
741 if (!PyArg_GetObject(args, 4, 3, &unpacked))
743 if (width <= 0 || height <= 0 || packfactor <= 0) {
744 PyErr_SetString(PyExc_RuntimeError, "packrect args must be > 0");
747 pixcount = width*height;
748 packedcount = ((width+packfactor-1)/packfactor) *
749 ((height+packfactor-1)/packfactor);
750 if (PyString_Size(unpacked) != pixcount*sizeof(long)) {
751 PyErr_SetString(PyExc_RuntimeError,
752 "string arg to packrect has wrong size");
755 packed = PyString_FromStringAndSize((char *)NULL, packedcount);
758 parray = (unsigned long *) PyString_AsString(unpacked);
759 p = (unsigned char *) PyString_AsString(packed);
760 for (y = 0; y < height; y += packfactor, parray += packfactor*width) {
761 for (x = 0; x < width; x += packfactor) {
764 g = (pixel >> 8) & 0xff;
765 b = (pixel >> 16) & 0xff;
766 *p++ = (30*r+59*g+11*b) / 100;
774 static unsigned long unpacktab[256];
775 static int unpacktab_inited = 0;
778 gl_unpackrect(self, args)
782 long width, height, packfactor;
784 PyObject *unpacked, *packed;
785 int pixcount, packedcount;
786 register unsigned char *p;
787 register unsigned long *parray;
788 if (!unpacktab_inited) {
790 for (white = 256; --white >= 0; )
791 unpacktab[white] = white * 0x010101L;
794 if (!PyArg_GetLong(args, 4, 0, &width))
796 if (!PyArg_GetLong(args, 4, 1, &height))
798 if (!PyArg_GetLong(args, 4, 2, &packfactor))
800 if (!PyArg_GetString(args, 4, 3, &s)) /* For type checking only */
802 if (!PyArg_GetObject(args, 4, 3, &packed))
804 if (width <= 0 || height <= 0 || packfactor <= 0) {
805 PyErr_SetString(PyExc_RuntimeError, "packrect args must be > 0");
808 pixcount = width*height;
809 packedcount = ((width+packfactor-1)/packfactor) *
810 ((height+packfactor-1)/packfactor);
811 if (PyString_Size(packed) != packedcount) {
812 PyErr_SetString(PyExc_RuntimeError,
813 "string arg to unpackrect has wrong size");
816 unpacked = PyString_FromStringAndSize((char *)NULL, pixcount*sizeof(long));
817 if (unpacked == NULL)
819 parray = (unsigned long *) PyString_AsString(unpacked);
820 p = (unsigned char *) PyString_AsString(packed);
821 if (packfactor == 1 && width*height > 0) {
822 /* Just expand bytes to longs */
823 register int x = width * height;
825 *parray++ = unpacktab[*p++];
830 for (y = 0; y < height-packfactor+1;
831 y += packfactor, parray += packfactor*width) {
833 for (x = 0; x < width-packfactor+1; x += packfactor) {
834 register unsigned long pixel = unpacktab[*p++];
836 for (i = packfactor*width; (i-=width) >= 0;) {
838 for (j = packfactor; --j >= 0; )
839 parray[i+x+j] = pixel;
849 gl_gversion(self, args)
855 return PyString_FromString(buf);
859 /* void clear - Manual because of clash with termcap */
871 /* End of manually written stubs */
876 if !solaris void devport short s long s
877 void rdr2i long s long s
878 void rectfs short s short s short s short s
879 void rects short s short s short s short s
880 void rmv2i long s long s
916 if !solaris void spclos
924 if !solaris void endpupmode
926 if !solaris void pupmode
928 void pagecolor short s
929 void textcolor short s
933 void linewidth short s
934 void setlinestyle short s
936 void swapinterval short s
937 void writemask short s
938 if !solaris void textwritemask short s
940 void unqdevice short s
941 void curvebasis short s
942 void curveprecision short s
943 void loadname short s
944 void passthrough short s
945 void pushname short s
946 void setmonitor short s
947 if !solaris void setshade short s
948 void setpattern short s
949 if !solaris void pagewritemask short s
956 void chunksize long s
957 void compactify long s
960 void objinsert long s
961 void objreplace long s
963 void blanktime long s
965 # This is not in the library!?
966 ###void pupcolor long s
968 void backbuffer long s
969 void frontbuffer long s
970 if !solaris void lsbackup long s
975 void blankscreen long s
980 void cmov2i long s long s
981 void draw2i long s long s
982 void move2i long s long s
983 void pnt2i long s long s
984 void patchbasis long s long s
985 void patchprecision long s long s
986 void pdr2i long s long s
987 void pmv2i long s long s
988 void rpdr2i long s long s
989 void rpmv2i long s long s
990 void xfpt2i long s long s
991 void objdelete long s long s
992 void patchcurves long s long s
993 void minsize long s long s
994 void maxsize long s long s
995 void keepaspect long s long s
996 void prefsize long s long s
997 void stepunit long s long s
998 void fudge long s long s
999 void winmove long s long s
1001 void attachcursor short s short s
1002 void deflinestyle short s short s
1003 void noise short s short s
1004 void picksize short s short s
1005 void qenter short s short s
1006 void setdepth short s short s
1007 void cmov2s short s short s
1008 void draw2s short s short s
1009 void move2s short s short s
1010 void pdr2s short s short s
1011 void pmv2s short s short s
1012 void pnt2s short s short s
1013 void rdr2s short s short s
1014 void rmv2s short s short s
1015 void rpdr2s short s short s
1016 void rpmv2s short s short s
1017 void xfpt2s short s short s
1019 void cmov2 float s float s
1020 void draw2 float s float s
1021 void move2 float s float s
1022 void pnt2 float s float s
1023 void pdr2 float s float s
1024 void pmv2 float s float s
1025 void rdr2 float s float s
1026 void rmv2 float s float s
1027 void rpdr2 float s float s
1028 void rpmv2 float s float s
1029 void xfpt2 float s float s
1031 void loadmatrix float s[4*4]
1033 void multmatrix float s[4*4]
1035 void crv float s[3*4]
1037 void rcrv float s[4*4]
1040 # Methods that have strings.
1042 void addtopup long s char *s long s
1043 void charstr char *s
1044 void getport char *s
1045 long strwidth char *s
1046 long winopen char *s
1047 void wintitle char *s
1049 # Methods that have 1 long (# of elements) and an array
1051 void polf long s float s[3*arg1]
1052 void polf2 long s float s[2*arg1]
1053 void poly long s float s[3*arg1]
1054 void poly2 long s float s[2*arg1]
1055 void crvn long s float s[3*arg1]
1056 void rcrvn long s float s[4*arg1]
1058 void polf2i long s long s[2*arg1]
1059 void polfi long s long s[3*arg1]
1060 void poly2i long s long s[2*arg1]
1061 void polyi long s long s[3*arg1]
1063 void polf2s long s short s[2*arg1]
1064 void polfs long s short s[3*arg1]
1065 void polys long s short s[3*arg1]
1066 void poly2s long s short s[2*arg1]
1068 void defcursor short s u_short s[128]
1070 void writepixels short s u_short s[arg1]
1071 # Should be unsigned short...
1072 void defbasis long s float s[4*4]
1073 if !solaris void gewrite short s short s[arg1]
1075 void rotate short s char s
1076 # This is not in the library!?
1077 ###void setbutton short s char s
1078 void rot float s char s
1080 void circfi long s long s long s
1081 void circi long s long s long s
1082 void cmovi long s long s long s
1083 void drawi long s long s long s
1084 void movei long s long s long s
1085 void pnti long s long s long s
1086 void newtag long s long s long s
1087 void pdri long s long s long s
1088 void pmvi long s long s long s
1089 void rdri long s long s long s
1090 void rmvi long s long s long s
1091 void rpdri long s long s long s
1092 void rpmvi long s long s long s
1093 void xfpti long s long s long s
1095 void circ float s float s float s
1096 void circf float s float s float s
1097 void cmov float s float s float s
1098 void draw float s float s float s
1099 void move float s float s float s
1100 void pnt float s float s float s
1101 void scale float s float s float s
1102 void translate float s float s float s
1103 void pdr float s float s float s
1104 void pmv float s float s float s
1105 void rdr float s float s float s
1106 void rmv float s float s float s
1107 void rpdr float s float s float s
1108 void rpmv float s float s float s
1109 void xfpt float s float s float s
1111 void RGBcolor short s short s short s
1112 void RGBwritemask short s short s short s
1113 void setcursor short s short s short s
1114 void tie short s short s short s
1115 void circfs short s short s short s
1116 void circs short s short s short s
1117 void cmovs short s short s short s
1118 void draws short s short s short s
1119 void moves short s short s short s
1120 void pdrs short s short s short s
1121 void pmvs short s short s short s
1122 void pnts short s short s short s
1123 void rdrs short s short s short s
1124 void rmvs short s short s short s
1125 void rpdrs short s short s short s
1126 void rpmvs short s short s short s
1127 void xfpts short s short s short s
1128 void curorigin short s short s short s
1129 void cyclemap short s short s short s
1131 void patch float s[4*4] float s[4*4] float s[4*4]
1132 void splf long s float s[3*arg1] u_short s[arg1]
1133 void splf2 long s float s[2*arg1] u_short s[arg1]
1134 void splfi long s long s[3*arg1] u_short s[arg1]
1135 void splf2i long s long s[2*arg1] u_short s[arg1]
1136 void splfs long s short s[3*arg1] u_short s[arg1]
1137 void splf2s long s short s[2*arg1] u_short s[arg1]
1138 ###void defpattern short s short s u_short s[arg2*arg2/16]
1140 void rpatch float s[4*4] float s[4*4] float s[4*4] float s[4*4]
1142 # routines that send 4 floats
1144 void ortho2 float s float s float s float s
1145 void rect float s float s float s float s
1146 void rectf float s float s float s float s
1147 void xfpt4 float s float s float s float s
1149 void textport short s short s short s short s
1150 void mapcolor short s short s short s short s
1151 void scrmask short s short s short s short s
1152 void setvaluator short s short s short s short s
1153 void viewport short s short s short s short s
1154 void shaderange short s short s short s short s
1155 void xfpt4s short s short s short s short s
1156 void rectfi long s long s long s long s
1157 void recti long s long s long s long s
1158 void xfpt4i long s long s long s long s
1159 void prefposition long s long s long s long s
1161 void arc float s float s float s short s short s
1162 void arcf float s float s float s short s short s
1163 void arcfi long s long s long s short s short s
1164 void arci long s long s long s short s short s
1166 void bbox2 short s short s float s float s float s float s
1167 void bbox2i short s short s long s long s long s long s
1168 void bbox2s short s short s short s short s short s short s
1169 void blink short s short s short s short s short s
1170 void ortho float s float s float s float s float s float s
1171 void window float s float s float s float s float s float s
1172 void lookat float s float s float s float s float s float s short s
1174 void perspective short s float s float s float s
1175 void polarview float s short s short s short s
1176 # XXX getichararray not supported
1177 #void writeRGB short s char s[arg1] char s[arg1] char s[arg1]
1179 void arcfs short s short s short s short s short s
1180 void arcs short s short s short s short s short s
1181 void rectcopy short s short s short s short s short s short s
1182 if !solaris void RGBcursor short s short s short s short s short s short s short s
1184 long getbutton short s
1192 long isqueued short s
1215 long getothermonitor
1218 long getvaluator short s
1221 void getdepth short r short r
1222 void getcpos short r short r
1223 void getsize long r long r
1224 void getorigin long r long r
1225 void getviewport short r short r short r short r
1226 if !solaris void gettp short r short r short r short r
1227 void getgpos float r float r float r float r
1228 void winposition long s long s long s long s
1229 void gRGBcolor short r short r short r
1230 void gRGBmask short r short r short r
1231 void getscrmask short r short r short r short r
1232 ###void gRGBcursor short r short r short r short r short r short r short r short r
1233 void getmcolor short s short r short r short r
1234 void mapw long s short s short s float r float r float r float r float r float r
1235 void mapw2 long s short s short s float r float r
1236 ###void defrasterfont short s short s short s Fontchar s[arg3] short s short s[4*arg5]
1237 ###long qread short r
1238 void getcursor short r u_short r u_short r long r
1240 # For these we receive arrays of stuff
1242 ###void getdev long s short s[arg1] short r[arg1]
1243 #XXX not generated correctly yet
1244 #void getmatrix float r[16]
1245 ###long readpixels short s short r[retval]
1246 ###long readRGB short s char r[retval] char r[retval] char r[retval]
1247 ###long blkqread short s short r[arg1]
1253 void curstype long s
1254 void drawmode long s
1255 void gammaramp short s[256] short s[256] short s[256]
1261 long getvideo long s
1262 void imakebackground
1263 void lmbind short s short s
1264 void lmdef long s long s long s float s[arg3]
1266 void normal float s[3]
1268 void RGBrange short s short s short s short s short s short s short s short s
1269 if !solaris void setvideo long s long s
1270 void shademodel long s
1271 void underlay long s
1273 # New Personal Iris/GT Routines
1289 void blendfunction long s long s
1298 void czclear long s long s
1299 void dglclose long s
1300 long dglopen char *s long s
1301 long getgdesc long s
1302 void getnurbsproperty long s float r
1303 void glcompat long s long s
1304 void iconsize long s long s
1305 void icontitle char *s
1306 void lRGBrange short s short s short s short s short s short s long s long s
1307 void linesmooth long s
1310 ###long lrectread short s short s short s short s long r[retval]
1311 ###void lrectwrite short s short s short s short s long s[(arg2-arg1+1)*(arg4-arg3+1)]
1312 ### Now manual, with string last arg
1313 ###long rectread short s short s short s short s short r[retval]
1314 ###void rectwrite short s short s short s short s short s[(arg2-arg1+1)*(arg4-arg3+1)]
1315 void lsetdepth long s long s
1316 void lshaderange short s short s long s long s
1319 void pntsmooth long s
1320 void readsource long s
1321 void rectzoom float s float s
1322 void sbox float s float s float s float s
1323 void sboxi long s long s long s long s
1324 void sboxs short s short s short s short s
1325 void sboxf float s float s float s float s
1326 void sboxfi long s long s long s long s
1327 void sboxfs short s short s short s short s
1328 void setnurbsproperty long s float s
1329 void setpup long s long s long s
1330 void smoothline long s
1331 void subpixel long s
1333 long swinopen long s
1343 void videocmd long s
1344 long windepth long s
1347 void zfunction long s
1349 void zwritemask long s
1353 void v2d double s[2]
1354 void v3d double s[3]
1355 void v4d double s[4]
1357 # Why isn't this here?
1359 void pixmode long s long s