--- a/GLXWorkstat.st Mon Mar 18 12:57:47 1996 +0100
+++ b/GLXWorkstat.st Tue Mar 19 19:00:46 1996 +0100
@@ -11,14 +11,13 @@
"
XWorkstation subclass:#GLXWorkstation
- instanceVariableNames:'activeWindow hasStereoExtension glOK'
- classVariableNames:'ForceGL'
- poolDictionaries:''
- category:'Interface-Graphics'
+ instanceVariableNames:'activeWindow hasStereoExtension glOK'
+ classVariableNames:'ForceGL'
+ poolDictionaries:''
+ category:'Interface-Graphics'
!
!GLXWorkstation primitiveDefinitions!
-
%{
/*
* on SGI, this class is compiled with -DGLX, while
@@ -1056,6 +1055,13 @@
%}
!
+forceGL:aBoolean
+ ForceGL := aBoolean.
+ AllScreens notNil ifTrue:[
+ AllScreens do:[:screen | screen initializeScreenProperties]
+ ].
+!
+
minorCodeOfLastError
%{ /* NOCONTEXT */
@@ -1075,19 +1081,12 @@
RETURN ( __MKSMALLINT(lastResource) );
%}
-!
-
-forceGL:aBoolean
- ForceGL := aBoolean.
- AllScreens notNil ifTrue:[
- AllScreens do:[:screen | screen initializeScreenProperties]
- ].
! !
!GLXWorkstation methodsFor:'arcs and circles'!
glxArcX: x y: y radius: radius startang: startang endang: endang in: aGLXWindowId
- "draw an arc"
+ "draw an arc at a given location."
%{ /* NOCONTEXT */
Coord c_x, c_y, c_radius;
@@ -1102,6 +1101,8 @@
arc(c_x, c_y, c_radius, a_startang, a_endang);
RETURN (true);
%}
+
+ "Modified: 19.3.1996 / 18:43:52 / cg"
!
glxArcfX: x y: y radius: radius startang: startang endang: endang in: aGLXWindowId
@@ -1284,6 +1285,32 @@
%}
! !
+!GLXWorkstation methodsFor:'attribute stack'!
+
+glxPopattributesIn: aGLXWindowId
+ "pop the top entry on the attribute stack"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ popattributes();
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:42:53 / cg"
+!
+
+glxPushattributesIn: aGLXWindowId
+ "save the current attributes on the matrix stack"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ pushattributes();
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:43:04 / cg"
+! !
+
!GLXWorkstation methodsFor:'clearing'!
glxClearIn:aGLXWindowId
@@ -1388,6 +1415,31 @@
^ false
!
+glxLrgbrangeRmin: rmin gmin: gmin bmin: bmin rmax: rmax gmax: gmax bmax: bmax
+ znear: znear zfar: zfar in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef GLX
+ SETWIN(aGLXWindowId)
+ lRGBrange(_shortVal(rmin), _shortVal(gmin), _shortVal(bmin),
+ _shortVal(rmax), _shortVal(gmax), _shortVal(bmax),
+ _longVal(znear), _longVal(zfar));
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxMapcolorI: i red: red green: green blue: blue in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ mapcolor(_colorindexVal(i), _shortVal(red), _shortVal(green), _shortVal(blue));
+ RETURN (true);
+%}
+!
+
glxTextcolor: tcolor in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -1401,6 +1453,45 @@
^ false
! !
+!GLXWorkstation methodsFor:'curves'!
+
+glxCurvebasis: basid in: aGLXWindowId
+ "sets the basis type of curves"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ curvebasis(_shortVal(basid));
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:47:09 / cg"
+!
+
+glxCurveit: iterationcount in: aGLXWindowId
+ "Iterates the top matrix on the stack as a forward difference
+ matrix, drawing as it goes along."
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ curveit(_shortVal(iterationcount));
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:48:57 / cg"
+!
+
+glxCurveprecision: nsegments in: aGLXWindowId
+ "sets the number of line segments that make up a curve segment"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ curveprecision(_shortVal(nsegments));
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:47:43 / cg"
+! !
+
!GLXWorkstation methodsFor:'double buffering'!
glxBackBufferIn:aGLXWindowId
@@ -1417,12 +1508,15 @@
!
glxBackbuffer: b in: aGLXWindowId
+ "switch to front/back buffer"
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
backbuffer(_booleanVal(b));
RETURN (true);
%}
+
+ "Modified: 19.3.1996 / 18:45:05 / cg"
!
glxDoubleBufferIn:aGLXWindowId
@@ -1449,12 +1543,15 @@
!
glxFrontbuffer: b in: aGLXWindowId
+ "switch to front buffer - turning backbuffer off"
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
frontbuffer(_booleanVal(b));
RETURN (true);
%}
+
+ "Modified: 19.3.1996 / 18:45:31 / cg"
!
glxSingleBufferIn: aGLXWindowId
@@ -1468,13 +1565,15 @@
!
glxSwapBuffersIn:aGLXWindowId
- "swap double buffers"
+ "swap the back and front buffers"
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
swapbuffers();
RETURN (true);
%}
+
+ "Modified: 19.3.1996 / 18:45:47 / cg"
! !
!GLXWorkstation methodsFor:'flat drawing'!
@@ -1648,6 +1747,524 @@
%}
! !
+!GLXWorkstation methodsFor:'lines & rectangles'!
+
+glxDeflinestyleN: n ls: ls in: aGLXWindowId
+ "define a line style"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ deflinestyle(_shortVal(n), _linestyleVal(ls));
+ RETURN (true);
+%}
+!
+
+glxDraw2:v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ float vec[2], *c_v;
+
+ if (! (c_v = getFloatsFromInto(v, vec, 2))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ draw2((Coord)(c_v[0]), (Coord)(c_v[1]));
+ RETURN (true);
+%}
+!
+
+glxDraw2X: x y: y in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ draw2(c_x, c_y);
+ RETURN (true);
+%}
+!
+
+glxDraw2iX: x y: y in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ draw2i(c_x, c_y);
+ RETURN (true);
+%}
+!
+
+glxDraw2sX: x y: y in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ draw2s(c_x, c_y);
+ RETURN (true);
+%}
+!
+
+glxDraw:v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ float vec[3], *c_v;
+
+ if (! (c_v = getFloatsFromInto(v, vec, 3))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ draw((Coord)(c_v[0]), (Coord)(c_v[1]), (Coord)(c_v[2]));
+ RETURN (true);
+%}
+!
+
+glxDrawX: x y: y z: z in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y, c_z;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ _COORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ draw(c_x, c_y, c_z);
+ RETURN (true);
+%}
+!
+
+glxDrawiX: x y: y z: z in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y, c_z;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ _ICOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ drawi(c_x, c_y, c_z);
+ RETURN (true);
+%}
+!
+
+glxDrawsX: x y: y z: z in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y, c_z;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ _SCOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ draws(c_x, c_y, c_z);
+ RETURN (true);
+%}
+!
+
+glxLinewidth: n in: aGLXWindowId
+ "set the linewidth"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ linewidth(_shortVal(n));
+ RETURN (true);
+%}
+!
+
+glxLinewidthf: n in: aGLXWindowId
+ "set the linewidth"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ linewidthf(_floatVal(n));
+ RETURN (true);
+%}
+!
+
+glxMove2:v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ float vec[2], *c_v;
+
+ if (! (c_v = getFloatsFromInto(v, vec, 2))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ move2((Coord)(c_v[0]), (Coord)(c_v[1]));
+ RETURN (true);
+%}
+!
+
+glxMove2X: x y: y in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ move2(c_x, c_y);
+ RETURN (true);
+%}
+!
+
+glxMove2iX: x y: y in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ move2i(c_x, c_y);
+ RETURN (true);
+%}
+!
+
+glxMove2sX: x y: y in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ move2s(c_x, c_y);
+ RETURN (true);
+%}
+!
+
+glxMove:v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ float vec[3], *c_v;
+
+ if (! (c_v = getFloatsFromInto(v, vec, 3))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ move((Coord)(c_v[0]), (Coord)(c_v[1]), (Coord)(c_v[2]));
+ RETURN (true);
+%}
+!
+
+glxMoveX: x y: y z: z in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y, c_z;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ _COORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ move(c_x, c_y, c_z);
+ RETURN (true);
+%}
+!
+
+glxMoveiX: x y: y z: z in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y, c_z;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ _ICOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ movei(c_x, c_y, c_z);
+ RETURN (true);
+%}
+!
+
+glxMovesX: x y: y z: z in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y, c_z;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ _SCOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ moves(c_x, c_y, c_z);
+ RETURN (true);
+%}
+!
+
+glxRdr2:v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ float vec[2], *c_v;
+
+ if (! (c_v = getFloatsFromInto(v, vec, 2))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ rdr2((Coord)(c_v[0]), (Coord)(c_v[1]));
+ RETURN (true);
+%}
+!
+
+glxRdr2X: x y: y in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ rdr2(c_x, c_y);
+ RETURN (true);
+%}
+!
+
+glxRdr2iX: x y: y in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ rdr2i(c_x, c_y);
+ RETURN (true);
+%}
+!
+
+glxRdr2sX: x y: y in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ rdr2s(c_x, c_y);
+ RETURN (true);
+%}
+!
+
+glxRdr:v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ float vec[3], *c_v;
+
+ if (! (c_v = getFloatsFromInto(v, vec, 3))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ rdr((Coord)(c_v[0]), (Coord)(c_v[1]), (Coord)(c_v[2]));
+ RETURN (true);
+%}
+!
+
+glxRdrX: x y: y z: z in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y, c_z;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ _COORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ rdr(c_x, c_y, c_z);
+ RETURN (true);
+%}
+!
+
+glxRdriX: x y: y z: z in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y, c_z;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ _ICOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ rdri(c_x, c_y, c_z);
+ RETURN (true);
+%}
+!
+
+glxRdrsX: x y: y z: z in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y, c_z;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ _SCOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ rdrs(c_x, c_y, c_z);
+ RETURN (true);
+%}
+!
+
+glxRectX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ rect(_coordVal(x1), _coordVal(y1), _coordVal(x2), _coordVal(y2));
+ RETURN (true);
+%}
+!
+
+glxRectfX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ rectf(_coordVal(x1), _coordVal(y1), _coordVal(x2), _coordVal(y2));
+ RETURN (true);
+%}
+!
+
+glxRectfiX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ rectfi(_icoordVal(x1), _icoordVal(y1), _icoordVal(x2), _icoordVal(y2));
+ RETURN (true);
+%}
+!
+
+glxRectfsX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ rectfs(_scoordVal(x1), _scoordVal(y1), _scoordVal(x2), _scoordVal(y2));
+ RETURN (true);
+%}
+!
+
+glxRectiX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ recti(_icoordVal(x1), _icoordVal(y1), _icoordVal(x2), _icoordVal(y2));
+ RETURN (true);
+%}
+!
+
+glxRectsX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ rects(_scoordVal(x1), _scoordVal(y1), _scoordVal(x2), _scoordVal(y2));
+ RETURN (true);
+%}
+!
+
+glxRmv2:v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ float vec[2], *c_v;
+
+ if (! (c_v = getFloatsFromInto(v, vec, 2))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ rmv2((Coord)(c_v[0]), (Coord)(c_v[1]));
+ RETURN (true);
+%}
+!
+
+glxRmv2X: x y: y in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ rmv2(c_x, c_y);
+ RETURN (true);
+%}
+!
+
+glxRmv2iX: x y: y in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ rmv2i(c_x, c_y);
+ RETURN (true);
+%}
+!
+
+glxRmv2sX: x y: y in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ rmv2s(c_x, c_y);
+ RETURN (true);
+%}
+!
+
+glxRmv:v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ float vec[3], *c_v;
+
+ if (! (c_v = getFloatsFromInto(v, vec, 3))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ rmv((Coord)(c_v[0]), (Coord)(c_v[1]), (Coord)(c_v[2]));
+ RETURN (true);
+%}
+!
+
+glxRmvX: x y: y z: z in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y, c_z;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ _COORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ rmv(c_x, c_y, c_z);
+ RETURN (true);
+%}
+!
+
+glxRmviX: x y: y z: z in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y, c_z;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ _ICOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ rmvi(c_x, c_y, c_z);
+ RETURN (true);
+%}
+!
+
+glxRmvsX: x y: y z: z in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y, c_z;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ _SCOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ rmvs(c_x, c_y, c_z);
+ RETURN (true);
+%}
+!
+
+glxSetlinestyle: index in: aGLXWindowId
+ "set the linestyle"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ setlinestyle(_shortVal(index));
+ RETURN (true);
+%}
+.
+ ^ false
+! !
+
!GLXWorkstation methodsFor:'materials & lights'!
glxLmbind:target index:index in:aGLXWindowId
@@ -2189,7 +2806,7 @@
!
glxDefBasis:id mat:aMatrix in:aGLXWindowId
- "define the basis"
+ "define the basis matrix for a patch or curve"
%{ /* NOCONTEXT */
Matrix matrix;
@@ -2197,13 +2814,15 @@
if (! (m = getFloatsFromMatrixInto(aMatrix, &matrix))) RETURN (false);
if (__isSmallInteger(id)) {
- SETWIN(aGLXWindowId)
- defbasis((short)(__intVal(id)), *m);
- RETURN (true);
+ SETWIN(aGLXWindowId)
+ defbasis((short)(__intVal(id)), *m);
+ RETURN (true);
}
%}
.
^ false
+
+ "Modified: 19.3.1996 / 18:52:56 / cg"
!
glxEndCurveIn:aGLXWindowId
@@ -2278,31 +2897,35 @@
!
glxPatchBasisU:u v:v in:aGLXWindowId
- "set the current basis matrices"
+ "set the two basis matrices for a patch"
%{ /* NOCONTEXT */
if (__bothSmallInteger(u, v)) {
- SETWIN(aGLXWindowId)
- patchbasis((long)__intVal(u), (long)__intVal(v));
- RETURN (true);
+ SETWIN(aGLXWindowId)
+ patchbasis((long)__intVal(u), (long)__intVal(v));
+ RETURN (true);
}
%}
.
^ false
+
+ "Modified: 19.3.1996 / 18:53:18 / cg"
!
glxPatchCurvesU:u v:v in:aGLXWindowId
- "set the number of curves in a patch"
+ "set the number of curves to be drawn in each direction on a patch"
%{ /* NOCONTEXT */
if (__bothSmallInteger(u, v)) {
- SETWIN(aGLXWindowId)
- patchcurves((long)__intVal(u), (long)__intVal(v));
- RETURN (true);
+ SETWIN(aGLXWindowId)
+ patchcurves((long)__intVal(u), (long)__intVal(v));
+ RETURN (true);
}
%}
.
^ false
+
+ "Modified: 19.3.1996 / 18:53:34 / cg"
!
glxPatchPrecisionU:u v:v in:aGLXWindowId
@@ -2320,7 +2943,8 @@
!
glxPatchX:arrayOf16XFloats y:arrayOf16YFloats z:arrayOf16ZFloats in:aGLXWindowId
- "arguments must be arrays of 16 floats containing the patch"
+ "Draws a bicubic patch.
+ arguments must be arrays of 16 floats containing the patch"
%{ /* NOCONTEXT */
Matrix matrixX, matrixY, matrixZ;
@@ -2333,6 +2957,607 @@
patch(*mX, *mY, *mZ);
RETURN (true);
%}
+
+ "Modified: 19.3.1996 / 18:54:02 / cg"
+!
+
+glxRpatchX:arrayOf16XFloats y:arrayOf16YFloats z:arrayOf16ZFloats w:arrayOf16WFloats in:aGLXWindowId
+ "Draws a rational bicubic patch.
+ arguments must be arrays of 16 floats containing the patch"
+
+%{ /* NOCONTEXT */
+ Matrix matrixX, matrixY, matrixZ, matrixM;
+ Matrix *mX, *mY, *mZ, *mM;
+
+ if (! (mX = getFloatsFromMatrixInto(arrayOf16XFloats, &matrixX))) RETURN (false);
+ if (! (mY = getFloatsFromMatrixInto(arrayOf16YFloats, &matrixY))) RETURN (false);
+ if (! (mZ = getFloatsFromMatrixInto(arrayOf16ZFloats, &matrixZ))) RETURN (false);
+ if (! (mM = getFloatsFromMatrixInto(arrayOf16MFloats, &matrixM))) RETURN (false);
+ SETWIN(aGLXWindowId)
+ rpatch(*mX, *mY, *mZ, *mM);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:54:02 / cg"
+ "Created: 19.3.1996 / 18:56:34 / cg"
+! !
+
+!GLXWorkstation methodsFor:'points'!
+
+glxPnt2X: x y: y in: aGLXWindowId
+ "plot a point in x, y, 0."
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ pnt2(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:35:55 / cg"
+!
+
+glxPnt2iX: x y: y in: aGLXWindowId
+ "plot a point in x, y, 0."
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ pnt2i(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:35:59 / cg"
+!
+
+glxPnt2sX: x y: y in: aGLXWindowId
+ "plot a point in x, y, 0."
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ pnt2s(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:36:03 / cg"
+!
+
+glxPntX: x y: y z: z in: aGLXWindowId
+ "plot a point in x, y, z."
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y, c_z;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ _COORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ pnt(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:36:08 / cg"
+!
+
+glxPntiX: x y: y z: z in: aGLXWindowId
+ "plot a point in x, y, z."
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y, c_z;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ _ICOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ pnti(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:36:14 / cg"
+!
+
+glxPntsX: x y: y z: z in: aGLXWindowId
+ "plot a point in x, y, z."
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y, c_z;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ _SCOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ pnts(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:36:17 / cg"
+!
+
+glxPntsize: n in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef GLX
+ SETWIN(aGLXWindowId)
+ pntsize(_shortVal(n));
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxPntsizef: n in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef GLX
+ SETWIN(aGLXWindowId)
+ pntsizef(_floatVal(n));
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+! !
+
+!GLXWorkstation methodsFor:'polygons'!
+
+glxBackface: b in: aGLXWindowId
+ "enable/disable culling of backfacing polygons (suppress its drawing).
+ A polygon is backfacing if it's orientation in *screen* coords is clockwise"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ backface(_booleanVal(b));
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:26:50 / cg"
+!
+
+glxConcave: b in: aGLXWindowId
+ "signal wether or not polygons are concave"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ concave(_booleanVal(b));
+ RETURN (true);
+%}
+!
+
+glxFrontface: b in: aGLXWindowId
+ "enable/disable culling of frontfacing polygons (suppress its drawing).
+ A polygon is frontfacing if it's orientation in *screen* coords is
+ anti-clockwise"
+
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ frontface(_booleanVal(b));
+ RETURN (true);
+%}
+.
+ ^ false
+
+ "Modified: 19.3.1996 / 18:27:50 / cg"
+!
+
+glxPdr2X: x y: y in: aGLXWindowId
+ "add another vertex to the polygon"
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ pdr2(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:33:09 / cg"
+!
+
+glxPdr2iX: x y: y in: aGLXWindowId
+ "add another vertex to the polygon"
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ pdr2i(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:33:28 / cg"
+!
+
+glxPdr2sX: x y: y in: aGLXWindowId
+ "add another vertex to the polygon"
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ pdr2s(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:34:03 / cg"
+!
+
+glxPdrX: x y: y z: z in: aGLXWindowId
+ "add another vertex to the polygon"
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y, c_z;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ _COORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ pdr(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:34:06 / cg"
+!
+
+glxPdriX: x y: y z: z in: aGLXWindowId
+ "add another vertex to the polygon"
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y, c_z;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ _ICOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ pdri(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:34:11 / cg"
+!
+
+glxPdrsX: x y: y z: z in: aGLXWindowId
+ "add another vertex to the polygon"
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y, c_z;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ _SCOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ pdrs(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:34:14 / cg"
+!
+
+glxPmv2X: x y: y in: aGLXWindowId
+ "set the start position of a polygon"
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ pmv2(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:32:45 / cg"
+!
+
+glxPmv2iX: x y: y in: aGLXWindowId
+ "set the start position of a polygon"
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ pmv2i(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:32:42 / cg"
+!
+
+glxPmv2sX: x y: y in: aGLXWindowId
+ "set the start position of a polygon"
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ pmv2s(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:32:38 / cg"
+!
+
+glxPmvX: x y: y z: z in: aGLXWindowId
+ "set the start position of a polygon"
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y, c_z;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ _COORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ pmv(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:31:52 / cg"
+!
+
+glxPmviX: x y: y z: z in: aGLXWindowId
+ "set the start position of a polygon"
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y, c_z;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ _ICOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ pmvi(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:31:59 / cg"
+!
+
+glxPmvsX: x y: y z: z in: aGLXWindowId
+ "set the start position of a polygon"
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y, c_z;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ _SCOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ pmvs(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:32:03 / cg"
+!
+
+glxPolymode: mode in: aGLXWindowId
+ "Sets the polygon filling mode - only filled (1) or outlined (0)
+ are supported"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ polymode(_longVal(mode));
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:29:32 / cg"
+!
+
+glxRpdr2X: x y: y in: aGLXWindowId
+ "add another relative vertex to the polygon"
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ rpdr2(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:34:31 / cg"
+!
+
+glxRpdr2iX: x y: y in: aGLXWindowId
+ "add another relative vertex to the polygon"
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ rpdr2i(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:34:36 / cg"
+!
+
+glxRpdr2sX: x y: y in: aGLXWindowId
+ "add another relative vertex to the polygon"
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ rpdr2s(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:34:40 / cg"
+!
+
+glxRpdrX: x y: y z: z in: aGLXWindowId
+ "add another relative vertex to the polygon"
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y, c_z;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ _COORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ rpdr(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:34:48 / cg"
+!
+
+glxRpdriX: x y: y z: z in: aGLXWindowId
+ "add another relative vertex to the polygon"
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y, c_z;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ _ICOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ rpdri(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:34:51 / cg"
+!
+
+glxRpdrsX: x y: y z: z in: aGLXWindowId
+ "add another relative vertex to the polygon"
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y, c_z;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ _SCOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ rpdrs(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:34:55 / cg"
+!
+
+glxRpmv2X: x y: y in: aGLXWindowId
+ "set the start position of a polygon"
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ rpmv2(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:37:15 / cg"
+!
+
+glxRpmv2iX: x y: y in: aGLXWindowId
+ "set the start position of a polygon"
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ rpmv2i(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:37:20 / cg"
+!
+
+glxRpmv2sX: x y: y in: aGLXWindowId
+ "set the relative start position of a polygon"
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ rpmv2s(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:38:06 / cg"
+!
+
+glxRpmvX: x y: y z: z in: aGLXWindowId
+ "set the relative start position of a polygon"
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y, c_z;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ _COORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ rpmv(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:38:03 / cg"
+!
+
+glxRpmviX: x y: y z: z in: aGLXWindowId
+ "set the relative start position of a polygon"
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y, c_z;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ _ICOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ rpmvi(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:37:53 / cg"
+!
+
+glxRpmvsX: x y: y z: z in: aGLXWindowId
+ "set the relative start position of a polygon"
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y, c_z;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ _SCOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ rpmvs(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:37:58 / cg"
! !
!GLXWorkstation methodsFor:'queries'!
@@ -2362,6 +3587,21 @@
"
!
+glxGetplanesIn: aGLXWindowId
+ "Returns the number if bit planes available on the device."
+
+%{ /* NOCONTEXT */
+#ifdef GLX
+ SETWIN(aGLXWindowId)
+ RETURN (__MKSMALLINT(getplanes()));
+#endif
+%}
+.
+ ^ false
+
+ "Modified: 19.3.1996 / 18:50:44 / cg"
+!
+
hasStereoExtension
"return true, if this workstation supports stereo GL drawing.
Both the server must support it, and the feature must have been
@@ -2512,7 +3752,7 @@
"
! !
-!GLXWorkstation methodsFor:'sphere drawing'!
+!GLXWorkstation methodsFor:'spheres'!
glxSphDraw:arrayOf4Floats in:aGLXWindowId
"argument must be an array(a matrix) of 4 floats containing the
@@ -2621,6 +3861,45 @@
!GLXWorkstation methodsFor:'stereo extension'!
+glxLeftbuffer: bool in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef FULL_GLX
+ SETWIN(aGLXWindowId)
+ leftbuffer(_booleanVal(bool));
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxMonobufferIn: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef FULL_GLX
+ SETWIN(aGLXWindowId)
+ monobuffer();
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxRightbuffer: bool in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef FULL_GLX
+ SETWIN(aGLXWindowId)
+ rightbuffer(_booleanVal(bool));
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
stereoExtensionBuffer:aBufferSymbol for:aWindowId
"set the current stereo buffer; the argument may be one of:
#left -> STEREO_BUFFER_LEFT
@@ -3156,16 +4435,6 @@
^ false
!
-glxBackface: b in: aGLXWindowId
- "enable/disable backface culling"
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- backface(_booleanVal(b));
- RETURN (true);
-%}
-!
-
glxBbox2Xmin: xmin ymin: ymin x1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -3547,15 +4816,6 @@
^self glxColor: index in: aGLXWindowId
!
-glxConcave: b in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- concave(_booleanVal(b));
- RETURN (true);
-%}
-!
-
glxCuroriginN: n xorigin: xorigin yorigin: yorigin in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -3608,33 +4868,6 @@
^ false
!
-glxCurvebasis: basid in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- curvebasis(_shortVal(basid));
- RETURN (true);
-%}
-!
-
-glxCurveit: iterationcount in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- curveit(_shortVal(iterationcount));
- RETURN (true);
-%}
-!
-
-glxCurveprecision: nsegments in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- curveprecision(_shortVal(nsegments));
- RETURN (true);
-%}
-!
-
glxCyclemapDuration: duration map: map nxtmap: nxtmap in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -3648,16 +4881,6 @@
^ false
!
-glxDeflinestyleN: n ls: ls in: aGLXWindowId
- "define a line style"
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- deflinestyle(_shortVal(n), _linestyleVal(ls));
- RETURN (true);
-%}
-!
-
glxDefpatternN: n size: size mask: mask in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -3723,97 +4946,6 @@
^ false
!
-glxDraw2:v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- float vec[2], *c_v;
-
- if (! (c_v = getFloatsFromInto(v, vec, 2))) RETURN(false);
- SETWIN(aGLXWindowId)
- draw2((Coord)(c_v[0]), (Coord)(c_v[1]));
- RETURN (true);
-%}
-!
-
-glxDraw2X: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- draw2(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxDraw2iX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- draw2i(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxDraw2sX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- draw2s(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxDraw:v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- float vec[3], *c_v;
-
- if (! (c_v = getFloatsFromInto(v, vec, 3))) RETURN(false);
- SETWIN(aGLXWindowId)
- draw((Coord)(c_v[0]), (Coord)(c_v[1]), (Coord)(c_v[2]));
- RETURN (true);
-%}
-!
-
-glxDrawX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y, c_z;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- _COORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- draw(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxDrawiX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y, c_z;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- _ICOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- drawi(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
glxDrawmode: mode in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -3827,20 +4959,6 @@
^ false
!
-glxDrawsX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y, c_z;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- _SCOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- draws(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
glxEditobj: obj in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -3937,17 +5055,6 @@
^ false
!
-glxFrontface: b in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- frontface(_booleanVal(b));
- RETURN (true);
-%}
-.
- ^ false
-!
-
glxFudgeXfudge: xfudge yfudge: yfudge in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -4288,18 +5395,6 @@
^ false
!
-glxGetplanesIn: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
- RETURN (__MKSMALLINT(getplanes()));
-#endif
-%}
-.
- ^ false
-!
-
glxGetresetlsIn: aGLXWindowId
%{ /* NOCONTEXT */
@@ -4548,19 +5643,6 @@
^ false
!
-glxLeftbuffer: bool in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef FULL_GLX
- SETWIN(aGLXWindowId)
- leftbuffer(_booleanVal(bool));
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
glxLinesmoothMode: mode in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -4574,26 +5656,6 @@
^ false
!
-glxLinewidth: n in: aGLXWindowId
- "set the linewidth"
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- linewidth(_shortVal(n));
- RETURN (true);
-%}
-!
-
-glxLinewidthf: n in: aGLXWindowId
- "set the linewidth"
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- linewidthf(_floatVal(n));
- RETURN (true);
-%}
-!
-
glxLmcolorMode: mode in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -4633,22 +5695,6 @@
^ false
!
-glxLrgbrangeRmin: rmin gmin: gmin bmin: bmin rmax: rmax gmax: gmax bmax: bmax
- znear: znear zfar: zfar in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
- lRGBrange(_shortVal(rmin), _shortVal(gmin), _shortVal(bmin),
- _shortVal(rmax), _shortVal(gmax), _shortVal(bmax),
- _longVal(znear), _longVal(zfar));
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
glxLsbackup: b in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -4715,15 +5761,6 @@
^ false
!
-glxMapcolorI: i red: red green: green blue: blue in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- mapcolor(_colorindexVal(i), _shortVal(red), _shortVal(green), _shortVal(blue));
- RETURN (true);
-%}
-!
-
glxMaxsizeX: x y: y in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -4750,124 +5787,6 @@
^ false
!
-glxMonobufferIn: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef FULL_GLX
- SETWIN(aGLXWindowId)
- monobuffer();
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxMove2:v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- float vec[2], *c_v;
-
- if (! (c_v = getFloatsFromInto(v, vec, 2))) RETURN(false);
- SETWIN(aGLXWindowId)
- move2((Coord)(c_v[0]), (Coord)(c_v[1]));
- RETURN (true);
-%}
-!
-
-glxMove2X: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- move2(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxMove2iX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- move2i(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxMove2sX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- move2s(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxMove:v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- float vec[3], *c_v;
-
- if (! (c_v = getFloatsFromInto(v, vec, 3))) RETURN(false);
- SETWIN(aGLXWindowId)
- move((Coord)(c_v[0]), (Coord)(c_v[1]), (Coord)(c_v[2]));
- RETURN (true);
-%}
-!
-
-glxMoveX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y, c_z;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- _COORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- move(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxMoveiX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y, c_z;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- _ICOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- movei(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxMovesX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y, c_z;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- _SCOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- moves(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
glxMsalphaMode: mode in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -5151,87 +6070,6 @@
^ false
!
-glxPdr2X: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- pdr2(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxPdr2iX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- pdr2i(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxPdr2sX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- pdr2s(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxPdrX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y, c_z;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- _COORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- pdr(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxPdriX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y, c_z;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- _ICOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- pdri(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxPdrsX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y, c_z;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- _SCOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- pdrs(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
glxPicksizeX: x y: y in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -5258,194 +6096,6 @@
^ false
!
-glxPmv2X: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- pmv2(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxPmv2iX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- pmv2i(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxPmv2sX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- pmv2s(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxPmvX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y, c_z;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- _COORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- pmv(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxPmviX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y, c_z;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- _ICOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- pmvi(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxPmvsX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y, c_z;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- _SCOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- pmvs(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxPnt2X: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- pnt2(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxPnt2iX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- pnt2i(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxPnt2sX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- pnt2s(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxPntX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y, c_z;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- _COORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- pnt(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxPntiX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y, c_z;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- _ICOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- pnti(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxPntsX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y, c_z;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- _SCOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- pnts(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxPntsize: n in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
- pntsize(_shortVal(n));
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxPntsizef: n in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
- pntsizef(_floatVal(n));
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
glxPntsmoothMode: mode in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -5459,15 +6109,6 @@
^ false
!
-glxPolymode: mode in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- polymode(_longVal(mode));
- RETURN (true);
-%}
-!
-
glxPolysmoothMode: mode in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -5481,15 +6122,6 @@
^ false
!
-glxPopattributesIn: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- popattributes();
- RETURN (true);
-%}
-!
-
glxPopnameIn: aGLXWindowId
%{ /* NOCONTEXT */
@@ -5503,15 +6135,6 @@
^ false
!
-glxPopviewportIn: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- popviewport();
- RETURN (true);
-%}
-!
-
glxPrefpositionX1: x1 x2: x2 y1: y1 y2: y2 in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -5543,15 +6166,6 @@
^ false
!
-glxPushattributesIn: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- pushattributes();
- RETURN (true);
-%}
-!
-
glxPushname: name In: aGLXWindowId
%{ /* NOCONTEXT */
@@ -5565,15 +6179,6 @@
^ false
!
-glxPushviewportIn: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- pushviewport();
- RETURN (true);
-%}
-!
-
glxQdevice: dev in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -5664,111 +6269,6 @@
^ false
!
-glxRdr2:v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- float vec[2], *c_v;
-
- if (! (c_v = getFloatsFromInto(v, vec, 2))) RETURN(false);
- SETWIN(aGLXWindowId)
- rdr2((Coord)(c_v[0]), (Coord)(c_v[1]));
- RETURN (true);
-%}
-!
-
-glxRdr2X: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- rdr2(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxRdr2iX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- rdr2i(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxRdr2sX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- rdr2s(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxRdr:v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- float vec[3], *c_v;
-
- if (! (c_v = getFloatsFromInto(v, vec, 3))) RETURN(false);
- SETWIN(aGLXWindowId)
- rdr((Coord)(c_v[0]), (Coord)(c_v[1]), (Coord)(c_v[2]));
- RETURN (true);
-%}
-!
-
-glxRdrX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y, c_z;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- _COORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- rdr(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxRdriX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y, c_z;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- _ICOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- rdri(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxRdrsX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y, c_z;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- _SCOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- rdrs(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
glxReadsource: src in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -5782,15 +6282,6 @@
^ false
!
-glxRectX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- rect(_coordVal(x1), _coordVal(y1), _coordVal(x2), _coordVal(y2));
- RETURN (true);
-%}
-!
-
glxRectcopyX1: x1 y1: y1 x2: x2 y2: y2 newx: newx newy: newy in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -5806,51 +6297,6 @@
^ false
!
-glxRectfX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- rectf(_coordVal(x1), _coordVal(y1), _coordVal(x2), _coordVal(y2));
- RETURN (true);
-%}
-!
-
-glxRectfiX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- rectfi(_icoordVal(x1), _icoordVal(y1), _icoordVal(x2), _icoordVal(y2));
- RETURN (true);
-%}
-!
-
-glxRectfsX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- rectfs(_scoordVal(x1), _scoordVal(y1), _scoordVal(x2), _scoordVal(y2));
- RETURN (true);
-%}
-!
-
-glxRectiX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- recti(_icoordVal(x1), _icoordVal(y1), _icoordVal(x2), _icoordVal(y2));
- RETURN (true);
-%}
-!
-
-glxRectsX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- rects(_scoordVal(x1), _scoordVal(y1), _scoordVal(x2), _scoordVal(y2));
- RETURN (true);
-%}
-!
-
glxRectzoomX: xfactor y: yfactor in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -5877,19 +6323,6 @@
^ false
!
-glxRightbuffer: bool in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef FULL_GLX
- SETWIN(aGLXWindowId)
- rightbuffer(_booleanVal(bool));
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
glxRingbellIn: aGLXWindowId
%{ /* NOCONTEXT */
@@ -5903,273 +6336,6 @@
^ false
!
-glxRmv2:v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- float vec[2], *c_v;
-
- if (! (c_v = getFloatsFromInto(v, vec, 2))) RETURN(false);
- SETWIN(aGLXWindowId)
- rmv2((Coord)(c_v[0]), (Coord)(c_v[1]));
- RETURN (true);
-%}
-!
-
-glxRmv2X: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- rmv2(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxRmv2iX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- rmv2i(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxRmv2sX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- rmv2s(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxRmv:v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- float vec[3], *c_v;
-
- if (! (c_v = getFloatsFromInto(v, vec, 3))) RETURN(false);
- SETWIN(aGLXWindowId)
- rmv((Coord)(c_v[0]), (Coord)(c_v[1]), (Coord)(c_v[2]));
- RETURN (true);
-%}
-!
-
-glxRmvX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y, c_z;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- _COORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- rmv(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxRmviX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y, c_z;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- _ICOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- rmvi(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxRmvsX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y, c_z;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- _SCOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- rmvs(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxRpdr2X: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- rpdr2(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxRpdr2iX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- rpdr2i(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxRpdr2sX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- rpdr2s(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxRpdrX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y, c_z;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- _COORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- rpdr(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxRpdriX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y, c_z;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- _ICOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- rpdri(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxRpdrsX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y, c_z;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- _SCOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- rpdrs(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxRpmv2X: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- rpmv2(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxRpmv2iX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- rpmv2i(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxRpmv2sX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- rpmv2s(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxRpmvX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y, c_z;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- _COORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- rpmv(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxRpmviX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y, c_z;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- _ICOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- rpmvi(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxRpmvsX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y, c_z;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- _SCOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- rpmvs(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
glxSboxX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -6366,18 +6532,6 @@
^ false
!
-glxSetlinestyle: index in: aGLXWindowId
- "set the linestyle"
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- setlinestyle(_shortVal(index));
- RETURN (true);
-%}
-.
- ^ false
-!
-
glxSetmap: mapnum in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -6615,198 +6769,6 @@
^ false
!
-glxT2d: v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef GLX
- double vec[2], *c_v;
-
- if (! (c_v = getDoublesFromInto(v, vec, 2))) RETURN(false);
- SETWIN(aGLXWindowId)
- t2d(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxT2f: v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef GLX
- float vec[2], *c_v;
-
- if (! (c_v = getFloatsFromInto(v, vec, 2))) RETURN(false);
- SETWIN(aGLXWindowId)
- t2f(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxT2i: v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef GLX
- long vec[2], *c_v;
-
- if (! (c_v = getLongsFromInto(v, vec, 2))) RETURN(false);
- SETWIN(aGLXWindowId)
- t2i(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxT2s: v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef GLX
- short vec[2], *c_v;
-
- if (! (c_v = getShortsFromInto(v, vec, 2))) RETURN(false);
- SETWIN(aGLXWindowId)
- t2s(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxT3d:v in:aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef FULL_GLX
- double vec[3], *c_v;
-
- if (! (c_v = getDoublesFromInto(v, vec, 3))) RETURN(false);
- SETWIN(aGLXWindowId)
- t3d(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxT3f:v in:aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef FULL_GLX
- float vec[3], *c_v;
-
- if (! (c_v = getFloatsFromInto(v, vec, 3))) RETURN(false);
- SETWIN(aGLXWindowId)
- t3f(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxT3i:v in:aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef FULL_GLX
- long vec[3], *c_v;
-
- if (! (c_v = getLongsFromInto(v, vec, 3))) RETURN(false);
- SETWIN(aGLXWindowId)
- t3i(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxT3s:v in:aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef FULL_GLX
- short vec[3], *c_v;
-
- if (! (c_v = getShortsFromInto(v, vec, 3))) RETURN(false);
- SETWIN(aGLXWindowId)
- t3s(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxT4d: v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef FULL_GLX
- double vec[4], *c_v;
-
- if (! (c_v = getDoublesFromInto(v, vec, 4))) RETURN(false);
- SETWIN(aGLXWindowId)
- t4d(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxT4f: v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef FULL_GLX
- float vec[4], *c_v;
-
- if (! (c_v = getFloatsFromInto(v, vec, 4))) RETURN(false);
- SETWIN(aGLXWindowId)
- t4f(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxT4i: v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef FULL_GLX
- long vec[4], *c_v;
-
- if (! (c_v = getLongsFromInto(v, vec, 4))) RETURN(false);
- SETWIN(aGLXWindowId)
- t4i(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxT4s: v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef FULL_GLX
- short vec[4], *c_v;
-
- if (! (c_v = getShortsFromInto(v, vec, 4))) RETURN(false);
- SETWIN(aGLXWindowId)
- t4s(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
glxTextinitIn: aGLXWindowId
%{ /* NOCONTEXT */
@@ -7107,6 +7069,198 @@
^ false
!
+glxT2d: v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef GLX
+ double vec[2], *c_v;
+
+ if (! (c_v = getDoublesFromInto(v, vec, 2))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ t2d(c_v);
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxT2f: v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef GLX
+ float vec[2], *c_v;
+
+ if (! (c_v = getFloatsFromInto(v, vec, 2))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ t2f(c_v);
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxT2i: v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef GLX
+ long vec[2], *c_v;
+
+ if (! (c_v = getLongsFromInto(v, vec, 2))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ t2i(c_v);
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxT2s: v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef GLX
+ short vec[2], *c_v;
+
+ if (! (c_v = getShortsFromInto(v, vec, 2))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ t2s(c_v);
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxT3d:v in:aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef FULL_GLX
+ double vec[3], *c_v;
+
+ if (! (c_v = getDoublesFromInto(v, vec, 3))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ t3d(c_v);
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxT3f:v in:aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef FULL_GLX
+ float vec[3], *c_v;
+
+ if (! (c_v = getFloatsFromInto(v, vec, 3))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ t3f(c_v);
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxT3i:v in:aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef FULL_GLX
+ long vec[3], *c_v;
+
+ if (! (c_v = getLongsFromInto(v, vec, 3))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ t3i(c_v);
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxT3s:v in:aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef FULL_GLX
+ short vec[3], *c_v;
+
+ if (! (c_v = getShortsFromInto(v, vec, 3))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ t3s(c_v);
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxT4d: v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef FULL_GLX
+ double vec[4], *c_v;
+
+ if (! (c_v = getDoublesFromInto(v, vec, 4))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ t4d(c_v);
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxT4f: v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef FULL_GLX
+ float vec[4], *c_v;
+
+ if (! (c_v = getFloatsFromInto(v, vec, 4))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ t4f(c_v);
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxT4i: v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef FULL_GLX
+ long vec[4], *c_v;
+
+ if (! (c_v = getLongsFromInto(v, vec, 4))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ t4i(c_v);
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxT4s: v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef FULL_GLX
+ short vec[4], *c_v;
+
+ if (! (c_v = getShortsFromInto(v, vec, 4))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ t4s(c_v);
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
glxV2d:v in:aGLXWindowId
"pass a vertex; v must be a vector with 2 doubles; z is taken as 0"
@@ -7504,6 +7658,30 @@
%}
!
+glxPopviewportIn: aGLXWindowId
+ "pops the top viewport off the viewport stack"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ popviewport();
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:58:24 / cg"
+!
+
+glxPushviewportIn: aGLXWindowId
+ "pushes the current viewport on the viewport stack"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ pushviewport();
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:58:02 / cg"
+!
+
glxReshapeViewPortIn: aGLXWindowId
%{ /* NOCONTEXT */
@@ -7844,5 +8022,5 @@
!GLXWorkstation class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libview/Attic/GLXWorkstat.st,v 1.46 1996-03-08 17:11:10 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libview/Attic/GLXWorkstat.st,v 1.47 1996-03-19 18:00:46 cg Exp $'
! !
--- a/GLXWorkstation.st Mon Mar 18 12:57:47 1996 +0100
+++ b/GLXWorkstation.st Tue Mar 19 19:00:46 1996 +0100
@@ -11,14 +11,13 @@
"
XWorkstation subclass:#GLXWorkstation
- instanceVariableNames:'activeWindow hasStereoExtension glOK'
- classVariableNames:'ForceGL'
- poolDictionaries:''
- category:'Interface-Graphics'
+ instanceVariableNames:'activeWindow hasStereoExtension glOK'
+ classVariableNames:'ForceGL'
+ poolDictionaries:''
+ category:'Interface-Graphics'
!
!GLXWorkstation primitiveDefinitions!
-
%{
/*
* on SGI, this class is compiled with -DGLX, while
@@ -1056,6 +1055,13 @@
%}
!
+forceGL:aBoolean
+ ForceGL := aBoolean.
+ AllScreens notNil ifTrue:[
+ AllScreens do:[:screen | screen initializeScreenProperties]
+ ].
+!
+
minorCodeOfLastError
%{ /* NOCONTEXT */
@@ -1075,19 +1081,12 @@
RETURN ( __MKSMALLINT(lastResource) );
%}
-!
-
-forceGL:aBoolean
- ForceGL := aBoolean.
- AllScreens notNil ifTrue:[
- AllScreens do:[:screen | screen initializeScreenProperties]
- ].
! !
!GLXWorkstation methodsFor:'arcs and circles'!
glxArcX: x y: y radius: radius startang: startang endang: endang in: aGLXWindowId
- "draw an arc"
+ "draw an arc at a given location."
%{ /* NOCONTEXT */
Coord c_x, c_y, c_radius;
@@ -1102,6 +1101,8 @@
arc(c_x, c_y, c_radius, a_startang, a_endang);
RETURN (true);
%}
+
+ "Modified: 19.3.1996 / 18:43:52 / cg"
!
glxArcfX: x y: y radius: radius startang: startang endang: endang in: aGLXWindowId
@@ -1284,6 +1285,32 @@
%}
! !
+!GLXWorkstation methodsFor:'attribute stack'!
+
+glxPopattributesIn: aGLXWindowId
+ "pop the top entry on the attribute stack"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ popattributes();
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:42:53 / cg"
+!
+
+glxPushattributesIn: aGLXWindowId
+ "save the current attributes on the matrix stack"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ pushattributes();
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:43:04 / cg"
+! !
+
!GLXWorkstation methodsFor:'clearing'!
glxClearIn:aGLXWindowId
@@ -1388,6 +1415,31 @@
^ false
!
+glxLrgbrangeRmin: rmin gmin: gmin bmin: bmin rmax: rmax gmax: gmax bmax: bmax
+ znear: znear zfar: zfar in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef GLX
+ SETWIN(aGLXWindowId)
+ lRGBrange(_shortVal(rmin), _shortVal(gmin), _shortVal(bmin),
+ _shortVal(rmax), _shortVal(gmax), _shortVal(bmax),
+ _longVal(znear), _longVal(zfar));
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxMapcolorI: i red: red green: green blue: blue in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ mapcolor(_colorindexVal(i), _shortVal(red), _shortVal(green), _shortVal(blue));
+ RETURN (true);
+%}
+!
+
glxTextcolor: tcolor in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -1401,6 +1453,45 @@
^ false
! !
+!GLXWorkstation methodsFor:'curves'!
+
+glxCurvebasis: basid in: aGLXWindowId
+ "sets the basis type of curves"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ curvebasis(_shortVal(basid));
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:47:09 / cg"
+!
+
+glxCurveit: iterationcount in: aGLXWindowId
+ "Iterates the top matrix on the stack as a forward difference
+ matrix, drawing as it goes along."
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ curveit(_shortVal(iterationcount));
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:48:57 / cg"
+!
+
+glxCurveprecision: nsegments in: aGLXWindowId
+ "sets the number of line segments that make up a curve segment"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ curveprecision(_shortVal(nsegments));
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:47:43 / cg"
+! !
+
!GLXWorkstation methodsFor:'double buffering'!
glxBackBufferIn:aGLXWindowId
@@ -1417,12 +1508,15 @@
!
glxBackbuffer: b in: aGLXWindowId
+ "switch to front/back buffer"
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
backbuffer(_booleanVal(b));
RETURN (true);
%}
+
+ "Modified: 19.3.1996 / 18:45:05 / cg"
!
glxDoubleBufferIn:aGLXWindowId
@@ -1449,12 +1543,15 @@
!
glxFrontbuffer: b in: aGLXWindowId
+ "switch to front buffer - turning backbuffer off"
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
frontbuffer(_booleanVal(b));
RETURN (true);
%}
+
+ "Modified: 19.3.1996 / 18:45:31 / cg"
!
glxSingleBufferIn: aGLXWindowId
@@ -1468,13 +1565,15 @@
!
glxSwapBuffersIn:aGLXWindowId
- "swap double buffers"
+ "swap the back and front buffers"
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
swapbuffers();
RETURN (true);
%}
+
+ "Modified: 19.3.1996 / 18:45:47 / cg"
! !
!GLXWorkstation methodsFor:'flat drawing'!
@@ -1648,6 +1747,524 @@
%}
! !
+!GLXWorkstation methodsFor:'lines & rectangles'!
+
+glxDeflinestyleN: n ls: ls in: aGLXWindowId
+ "define a line style"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ deflinestyle(_shortVal(n), _linestyleVal(ls));
+ RETURN (true);
+%}
+!
+
+glxDraw2:v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ float vec[2], *c_v;
+
+ if (! (c_v = getFloatsFromInto(v, vec, 2))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ draw2((Coord)(c_v[0]), (Coord)(c_v[1]));
+ RETURN (true);
+%}
+!
+
+glxDraw2X: x y: y in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ draw2(c_x, c_y);
+ RETURN (true);
+%}
+!
+
+glxDraw2iX: x y: y in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ draw2i(c_x, c_y);
+ RETURN (true);
+%}
+!
+
+glxDraw2sX: x y: y in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ draw2s(c_x, c_y);
+ RETURN (true);
+%}
+!
+
+glxDraw:v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ float vec[3], *c_v;
+
+ if (! (c_v = getFloatsFromInto(v, vec, 3))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ draw((Coord)(c_v[0]), (Coord)(c_v[1]), (Coord)(c_v[2]));
+ RETURN (true);
+%}
+!
+
+glxDrawX: x y: y z: z in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y, c_z;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ _COORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ draw(c_x, c_y, c_z);
+ RETURN (true);
+%}
+!
+
+glxDrawiX: x y: y z: z in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y, c_z;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ _ICOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ drawi(c_x, c_y, c_z);
+ RETURN (true);
+%}
+!
+
+glxDrawsX: x y: y z: z in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y, c_z;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ _SCOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ draws(c_x, c_y, c_z);
+ RETURN (true);
+%}
+!
+
+glxLinewidth: n in: aGLXWindowId
+ "set the linewidth"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ linewidth(_shortVal(n));
+ RETURN (true);
+%}
+!
+
+glxLinewidthf: n in: aGLXWindowId
+ "set the linewidth"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ linewidthf(_floatVal(n));
+ RETURN (true);
+%}
+!
+
+glxMove2:v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ float vec[2], *c_v;
+
+ if (! (c_v = getFloatsFromInto(v, vec, 2))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ move2((Coord)(c_v[0]), (Coord)(c_v[1]));
+ RETURN (true);
+%}
+!
+
+glxMove2X: x y: y in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ move2(c_x, c_y);
+ RETURN (true);
+%}
+!
+
+glxMove2iX: x y: y in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ move2i(c_x, c_y);
+ RETURN (true);
+%}
+!
+
+glxMove2sX: x y: y in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ move2s(c_x, c_y);
+ RETURN (true);
+%}
+!
+
+glxMove:v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ float vec[3], *c_v;
+
+ if (! (c_v = getFloatsFromInto(v, vec, 3))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ move((Coord)(c_v[0]), (Coord)(c_v[1]), (Coord)(c_v[2]));
+ RETURN (true);
+%}
+!
+
+glxMoveX: x y: y z: z in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y, c_z;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ _COORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ move(c_x, c_y, c_z);
+ RETURN (true);
+%}
+!
+
+glxMoveiX: x y: y z: z in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y, c_z;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ _ICOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ movei(c_x, c_y, c_z);
+ RETURN (true);
+%}
+!
+
+glxMovesX: x y: y z: z in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y, c_z;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ _SCOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ moves(c_x, c_y, c_z);
+ RETURN (true);
+%}
+!
+
+glxRdr2:v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ float vec[2], *c_v;
+
+ if (! (c_v = getFloatsFromInto(v, vec, 2))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ rdr2((Coord)(c_v[0]), (Coord)(c_v[1]));
+ RETURN (true);
+%}
+!
+
+glxRdr2X: x y: y in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ rdr2(c_x, c_y);
+ RETURN (true);
+%}
+!
+
+glxRdr2iX: x y: y in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ rdr2i(c_x, c_y);
+ RETURN (true);
+%}
+!
+
+glxRdr2sX: x y: y in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ rdr2s(c_x, c_y);
+ RETURN (true);
+%}
+!
+
+glxRdr:v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ float vec[3], *c_v;
+
+ if (! (c_v = getFloatsFromInto(v, vec, 3))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ rdr((Coord)(c_v[0]), (Coord)(c_v[1]), (Coord)(c_v[2]));
+ RETURN (true);
+%}
+!
+
+glxRdrX: x y: y z: z in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y, c_z;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ _COORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ rdr(c_x, c_y, c_z);
+ RETURN (true);
+%}
+!
+
+glxRdriX: x y: y z: z in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y, c_z;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ _ICOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ rdri(c_x, c_y, c_z);
+ RETURN (true);
+%}
+!
+
+glxRdrsX: x y: y z: z in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y, c_z;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ _SCOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ rdrs(c_x, c_y, c_z);
+ RETURN (true);
+%}
+!
+
+glxRectX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ rect(_coordVal(x1), _coordVal(y1), _coordVal(x2), _coordVal(y2));
+ RETURN (true);
+%}
+!
+
+glxRectfX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ rectf(_coordVal(x1), _coordVal(y1), _coordVal(x2), _coordVal(y2));
+ RETURN (true);
+%}
+!
+
+glxRectfiX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ rectfi(_icoordVal(x1), _icoordVal(y1), _icoordVal(x2), _icoordVal(y2));
+ RETURN (true);
+%}
+!
+
+glxRectfsX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ rectfs(_scoordVal(x1), _scoordVal(y1), _scoordVal(x2), _scoordVal(y2));
+ RETURN (true);
+%}
+!
+
+glxRectiX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ recti(_icoordVal(x1), _icoordVal(y1), _icoordVal(x2), _icoordVal(y2));
+ RETURN (true);
+%}
+!
+
+glxRectsX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ rects(_scoordVal(x1), _scoordVal(y1), _scoordVal(x2), _scoordVal(y2));
+ RETURN (true);
+%}
+!
+
+glxRmv2:v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ float vec[2], *c_v;
+
+ if (! (c_v = getFloatsFromInto(v, vec, 2))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ rmv2((Coord)(c_v[0]), (Coord)(c_v[1]));
+ RETURN (true);
+%}
+!
+
+glxRmv2X: x y: y in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ rmv2(c_x, c_y);
+ RETURN (true);
+%}
+!
+
+glxRmv2iX: x y: y in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ rmv2i(c_x, c_y);
+ RETURN (true);
+%}
+!
+
+glxRmv2sX: x y: y in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ rmv2s(c_x, c_y);
+ RETURN (true);
+%}
+!
+
+glxRmv:v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ float vec[3], *c_v;
+
+ if (! (c_v = getFloatsFromInto(v, vec, 3))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ rmv((Coord)(c_v[0]), (Coord)(c_v[1]), (Coord)(c_v[2]));
+ RETURN (true);
+%}
+!
+
+glxRmvX: x y: y z: z in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y, c_z;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ _COORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ rmv(c_x, c_y, c_z);
+ RETURN (true);
+%}
+!
+
+glxRmviX: x y: y z: z in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y, c_z;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ _ICOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ rmvi(c_x, c_y, c_z);
+ RETURN (true);
+%}
+!
+
+glxRmvsX: x y: y z: z in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y, c_z;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ _SCOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ rmvs(c_x, c_y, c_z);
+ RETURN (true);
+%}
+!
+
+glxSetlinestyle: index in: aGLXWindowId
+ "set the linestyle"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ setlinestyle(_shortVal(index));
+ RETURN (true);
+%}
+.
+ ^ false
+! !
+
!GLXWorkstation methodsFor:'materials & lights'!
glxLmbind:target index:index in:aGLXWindowId
@@ -2189,7 +2806,7 @@
!
glxDefBasis:id mat:aMatrix in:aGLXWindowId
- "define the basis"
+ "define the basis matrix for a patch or curve"
%{ /* NOCONTEXT */
Matrix matrix;
@@ -2197,13 +2814,15 @@
if (! (m = getFloatsFromMatrixInto(aMatrix, &matrix))) RETURN (false);
if (__isSmallInteger(id)) {
- SETWIN(aGLXWindowId)
- defbasis((short)(__intVal(id)), *m);
- RETURN (true);
+ SETWIN(aGLXWindowId)
+ defbasis((short)(__intVal(id)), *m);
+ RETURN (true);
}
%}
.
^ false
+
+ "Modified: 19.3.1996 / 18:52:56 / cg"
!
glxEndCurveIn:aGLXWindowId
@@ -2278,31 +2897,35 @@
!
glxPatchBasisU:u v:v in:aGLXWindowId
- "set the current basis matrices"
+ "set the two basis matrices for a patch"
%{ /* NOCONTEXT */
if (__bothSmallInteger(u, v)) {
- SETWIN(aGLXWindowId)
- patchbasis((long)__intVal(u), (long)__intVal(v));
- RETURN (true);
+ SETWIN(aGLXWindowId)
+ patchbasis((long)__intVal(u), (long)__intVal(v));
+ RETURN (true);
}
%}
.
^ false
+
+ "Modified: 19.3.1996 / 18:53:18 / cg"
!
glxPatchCurvesU:u v:v in:aGLXWindowId
- "set the number of curves in a patch"
+ "set the number of curves to be drawn in each direction on a patch"
%{ /* NOCONTEXT */
if (__bothSmallInteger(u, v)) {
- SETWIN(aGLXWindowId)
- patchcurves((long)__intVal(u), (long)__intVal(v));
- RETURN (true);
+ SETWIN(aGLXWindowId)
+ patchcurves((long)__intVal(u), (long)__intVal(v));
+ RETURN (true);
}
%}
.
^ false
+
+ "Modified: 19.3.1996 / 18:53:34 / cg"
!
glxPatchPrecisionU:u v:v in:aGLXWindowId
@@ -2320,7 +2943,8 @@
!
glxPatchX:arrayOf16XFloats y:arrayOf16YFloats z:arrayOf16ZFloats in:aGLXWindowId
- "arguments must be arrays of 16 floats containing the patch"
+ "Draws a bicubic patch.
+ arguments must be arrays of 16 floats containing the patch"
%{ /* NOCONTEXT */
Matrix matrixX, matrixY, matrixZ;
@@ -2333,6 +2957,607 @@
patch(*mX, *mY, *mZ);
RETURN (true);
%}
+
+ "Modified: 19.3.1996 / 18:54:02 / cg"
+!
+
+glxRpatchX:arrayOf16XFloats y:arrayOf16YFloats z:arrayOf16ZFloats w:arrayOf16WFloats in:aGLXWindowId
+ "Draws a rational bicubic patch.
+ arguments must be arrays of 16 floats containing the patch"
+
+%{ /* NOCONTEXT */
+ Matrix matrixX, matrixY, matrixZ, matrixM;
+ Matrix *mX, *mY, *mZ, *mM;
+
+ if (! (mX = getFloatsFromMatrixInto(arrayOf16XFloats, &matrixX))) RETURN (false);
+ if (! (mY = getFloatsFromMatrixInto(arrayOf16YFloats, &matrixY))) RETURN (false);
+ if (! (mZ = getFloatsFromMatrixInto(arrayOf16ZFloats, &matrixZ))) RETURN (false);
+ if (! (mM = getFloatsFromMatrixInto(arrayOf16MFloats, &matrixM))) RETURN (false);
+ SETWIN(aGLXWindowId)
+ rpatch(*mX, *mY, *mZ, *mM);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:54:02 / cg"
+ "Created: 19.3.1996 / 18:56:34 / cg"
+! !
+
+!GLXWorkstation methodsFor:'points'!
+
+glxPnt2X: x y: y in: aGLXWindowId
+ "plot a point in x, y, 0."
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ pnt2(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:35:55 / cg"
+!
+
+glxPnt2iX: x y: y in: aGLXWindowId
+ "plot a point in x, y, 0."
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ pnt2i(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:35:59 / cg"
+!
+
+glxPnt2sX: x y: y in: aGLXWindowId
+ "plot a point in x, y, 0."
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ pnt2s(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:36:03 / cg"
+!
+
+glxPntX: x y: y z: z in: aGLXWindowId
+ "plot a point in x, y, z."
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y, c_z;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ _COORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ pnt(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:36:08 / cg"
+!
+
+glxPntiX: x y: y z: z in: aGLXWindowId
+ "plot a point in x, y, z."
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y, c_z;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ _ICOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ pnti(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:36:14 / cg"
+!
+
+glxPntsX: x y: y z: z in: aGLXWindowId
+ "plot a point in x, y, z."
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y, c_z;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ _SCOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ pnts(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:36:17 / cg"
+!
+
+glxPntsize: n in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef GLX
+ SETWIN(aGLXWindowId)
+ pntsize(_shortVal(n));
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxPntsizef: n in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef GLX
+ SETWIN(aGLXWindowId)
+ pntsizef(_floatVal(n));
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+! !
+
+!GLXWorkstation methodsFor:'polygons'!
+
+glxBackface: b in: aGLXWindowId
+ "enable/disable culling of backfacing polygons (suppress its drawing).
+ A polygon is backfacing if it's orientation in *screen* coords is clockwise"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ backface(_booleanVal(b));
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:26:50 / cg"
+!
+
+glxConcave: b in: aGLXWindowId
+ "signal wether or not polygons are concave"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ concave(_booleanVal(b));
+ RETURN (true);
+%}
+!
+
+glxFrontface: b in: aGLXWindowId
+ "enable/disable culling of frontfacing polygons (suppress its drawing).
+ A polygon is frontfacing if it's orientation in *screen* coords is
+ anti-clockwise"
+
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ frontface(_booleanVal(b));
+ RETURN (true);
+%}
+.
+ ^ false
+
+ "Modified: 19.3.1996 / 18:27:50 / cg"
+!
+
+glxPdr2X: x y: y in: aGLXWindowId
+ "add another vertex to the polygon"
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ pdr2(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:33:09 / cg"
+!
+
+glxPdr2iX: x y: y in: aGLXWindowId
+ "add another vertex to the polygon"
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ pdr2i(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:33:28 / cg"
+!
+
+glxPdr2sX: x y: y in: aGLXWindowId
+ "add another vertex to the polygon"
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ pdr2s(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:34:03 / cg"
+!
+
+glxPdrX: x y: y z: z in: aGLXWindowId
+ "add another vertex to the polygon"
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y, c_z;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ _COORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ pdr(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:34:06 / cg"
+!
+
+glxPdriX: x y: y z: z in: aGLXWindowId
+ "add another vertex to the polygon"
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y, c_z;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ _ICOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ pdri(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:34:11 / cg"
+!
+
+glxPdrsX: x y: y z: z in: aGLXWindowId
+ "add another vertex to the polygon"
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y, c_z;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ _SCOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ pdrs(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:34:14 / cg"
+!
+
+glxPmv2X: x y: y in: aGLXWindowId
+ "set the start position of a polygon"
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ pmv2(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:32:45 / cg"
+!
+
+glxPmv2iX: x y: y in: aGLXWindowId
+ "set the start position of a polygon"
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ pmv2i(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:32:42 / cg"
+!
+
+glxPmv2sX: x y: y in: aGLXWindowId
+ "set the start position of a polygon"
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ pmv2s(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:32:38 / cg"
+!
+
+glxPmvX: x y: y z: z in: aGLXWindowId
+ "set the start position of a polygon"
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y, c_z;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ _COORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ pmv(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:31:52 / cg"
+!
+
+glxPmviX: x y: y z: z in: aGLXWindowId
+ "set the start position of a polygon"
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y, c_z;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ _ICOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ pmvi(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:31:59 / cg"
+!
+
+glxPmvsX: x y: y z: z in: aGLXWindowId
+ "set the start position of a polygon"
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y, c_z;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ _SCOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ pmvs(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:32:03 / cg"
+!
+
+glxPolymode: mode in: aGLXWindowId
+ "Sets the polygon filling mode - only filled (1) or outlined (0)
+ are supported"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ polymode(_longVal(mode));
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:29:32 / cg"
+!
+
+glxRpdr2X: x y: y in: aGLXWindowId
+ "add another relative vertex to the polygon"
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ rpdr2(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:34:31 / cg"
+!
+
+glxRpdr2iX: x y: y in: aGLXWindowId
+ "add another relative vertex to the polygon"
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ rpdr2i(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:34:36 / cg"
+!
+
+glxRpdr2sX: x y: y in: aGLXWindowId
+ "add another relative vertex to the polygon"
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ rpdr2s(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:34:40 / cg"
+!
+
+glxRpdrX: x y: y z: z in: aGLXWindowId
+ "add another relative vertex to the polygon"
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y, c_z;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ _COORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ rpdr(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:34:48 / cg"
+!
+
+glxRpdriX: x y: y z: z in: aGLXWindowId
+ "add another relative vertex to the polygon"
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y, c_z;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ _ICOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ rpdri(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:34:51 / cg"
+!
+
+glxRpdrsX: x y: y z: z in: aGLXWindowId
+ "add another relative vertex to the polygon"
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y, c_z;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ _SCOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ rpdrs(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:34:55 / cg"
+!
+
+glxRpmv2X: x y: y in: aGLXWindowId
+ "set the start position of a polygon"
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ rpmv2(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:37:15 / cg"
+!
+
+glxRpmv2iX: x y: y in: aGLXWindowId
+ "set the start position of a polygon"
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ rpmv2i(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:37:20 / cg"
+!
+
+glxRpmv2sX: x y: y in: aGLXWindowId
+ "set the relative start position of a polygon"
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ SETWIN(aGLXWindowId)
+ rpmv2s(c_x, c_y);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:38:06 / cg"
+!
+
+glxRpmvX: x y: y z: z in: aGLXWindowId
+ "set the relative start position of a polygon"
+
+%{ /* NOCONTEXT */
+ Coord c_x, c_y, c_z;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ _COORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ rpmv(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:38:03 / cg"
+!
+
+glxRpmviX: x y: y z: z in: aGLXWindowId
+ "set the relative start position of a polygon"
+
+%{ /* NOCONTEXT */
+ Icoord c_x, c_y, c_z;
+
+ _ICOORD_ (x, c_x)
+ _ICOORD_ (y, c_y)
+ _ICOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ rpmvi(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:37:53 / cg"
+!
+
+glxRpmvsX: x y: y z: z in: aGLXWindowId
+ "set the relative start position of a polygon"
+
+%{ /* NOCONTEXT */
+ Scoord c_x, c_y, c_z;
+
+ _SCOORD_ (x, c_x)
+ _SCOORD_ (y, c_y)
+ _SCOORD_ (z, c_z)
+ SETWIN(aGLXWindowId)
+ rpmvs(c_x, c_y, c_z);
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:37:58 / cg"
! !
!GLXWorkstation methodsFor:'queries'!
@@ -2362,6 +3587,21 @@
"
!
+glxGetplanesIn: aGLXWindowId
+ "Returns the number if bit planes available on the device."
+
+%{ /* NOCONTEXT */
+#ifdef GLX
+ SETWIN(aGLXWindowId)
+ RETURN (__MKSMALLINT(getplanes()));
+#endif
+%}
+.
+ ^ false
+
+ "Modified: 19.3.1996 / 18:50:44 / cg"
+!
+
hasStereoExtension
"return true, if this workstation supports stereo GL drawing.
Both the server must support it, and the feature must have been
@@ -2512,7 +3752,7 @@
"
! !
-!GLXWorkstation methodsFor:'sphere drawing'!
+!GLXWorkstation methodsFor:'spheres'!
glxSphDraw:arrayOf4Floats in:aGLXWindowId
"argument must be an array(a matrix) of 4 floats containing the
@@ -2621,6 +3861,45 @@
!GLXWorkstation methodsFor:'stereo extension'!
+glxLeftbuffer: bool in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef FULL_GLX
+ SETWIN(aGLXWindowId)
+ leftbuffer(_booleanVal(bool));
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxMonobufferIn: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef FULL_GLX
+ SETWIN(aGLXWindowId)
+ monobuffer();
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxRightbuffer: bool in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef FULL_GLX
+ SETWIN(aGLXWindowId)
+ rightbuffer(_booleanVal(bool));
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
stereoExtensionBuffer:aBufferSymbol for:aWindowId
"set the current stereo buffer; the argument may be one of:
#left -> STEREO_BUFFER_LEFT
@@ -3156,16 +4435,6 @@
^ false
!
-glxBackface: b in: aGLXWindowId
- "enable/disable backface culling"
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- backface(_booleanVal(b));
- RETURN (true);
-%}
-!
-
glxBbox2Xmin: xmin ymin: ymin x1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -3547,15 +4816,6 @@
^self glxColor: index in: aGLXWindowId
!
-glxConcave: b in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- concave(_booleanVal(b));
- RETURN (true);
-%}
-!
-
glxCuroriginN: n xorigin: xorigin yorigin: yorigin in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -3608,33 +4868,6 @@
^ false
!
-glxCurvebasis: basid in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- curvebasis(_shortVal(basid));
- RETURN (true);
-%}
-!
-
-glxCurveit: iterationcount in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- curveit(_shortVal(iterationcount));
- RETURN (true);
-%}
-!
-
-glxCurveprecision: nsegments in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- curveprecision(_shortVal(nsegments));
- RETURN (true);
-%}
-!
-
glxCyclemapDuration: duration map: map nxtmap: nxtmap in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -3648,16 +4881,6 @@
^ false
!
-glxDeflinestyleN: n ls: ls in: aGLXWindowId
- "define a line style"
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- deflinestyle(_shortVal(n), _linestyleVal(ls));
- RETURN (true);
-%}
-!
-
glxDefpatternN: n size: size mask: mask in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -3723,97 +4946,6 @@
^ false
!
-glxDraw2:v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- float vec[2], *c_v;
-
- if (! (c_v = getFloatsFromInto(v, vec, 2))) RETURN(false);
- SETWIN(aGLXWindowId)
- draw2((Coord)(c_v[0]), (Coord)(c_v[1]));
- RETURN (true);
-%}
-!
-
-glxDraw2X: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- draw2(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxDraw2iX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- draw2i(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxDraw2sX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- draw2s(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxDraw:v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- float vec[3], *c_v;
-
- if (! (c_v = getFloatsFromInto(v, vec, 3))) RETURN(false);
- SETWIN(aGLXWindowId)
- draw((Coord)(c_v[0]), (Coord)(c_v[1]), (Coord)(c_v[2]));
- RETURN (true);
-%}
-!
-
-glxDrawX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y, c_z;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- _COORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- draw(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxDrawiX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y, c_z;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- _ICOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- drawi(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
glxDrawmode: mode in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -3827,20 +4959,6 @@
^ false
!
-glxDrawsX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y, c_z;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- _SCOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- draws(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
glxEditobj: obj in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -3937,17 +5055,6 @@
^ false
!
-glxFrontface: b in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- frontface(_booleanVal(b));
- RETURN (true);
-%}
-.
- ^ false
-!
-
glxFudgeXfudge: xfudge yfudge: yfudge in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -4288,18 +5395,6 @@
^ false
!
-glxGetplanesIn: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
- RETURN (__MKSMALLINT(getplanes()));
-#endif
-%}
-.
- ^ false
-!
-
glxGetresetlsIn: aGLXWindowId
%{ /* NOCONTEXT */
@@ -4548,19 +5643,6 @@
^ false
!
-glxLeftbuffer: bool in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef FULL_GLX
- SETWIN(aGLXWindowId)
- leftbuffer(_booleanVal(bool));
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
glxLinesmoothMode: mode in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -4574,26 +5656,6 @@
^ false
!
-glxLinewidth: n in: aGLXWindowId
- "set the linewidth"
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- linewidth(_shortVal(n));
- RETURN (true);
-%}
-!
-
-glxLinewidthf: n in: aGLXWindowId
- "set the linewidth"
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- linewidthf(_floatVal(n));
- RETURN (true);
-%}
-!
-
glxLmcolorMode: mode in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -4633,22 +5695,6 @@
^ false
!
-glxLrgbrangeRmin: rmin gmin: gmin bmin: bmin rmax: rmax gmax: gmax bmax: bmax
- znear: znear zfar: zfar in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
- lRGBrange(_shortVal(rmin), _shortVal(gmin), _shortVal(bmin),
- _shortVal(rmax), _shortVal(gmax), _shortVal(bmax),
- _longVal(znear), _longVal(zfar));
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
glxLsbackup: b in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -4715,15 +5761,6 @@
^ false
!
-glxMapcolorI: i red: red green: green blue: blue in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- mapcolor(_colorindexVal(i), _shortVal(red), _shortVal(green), _shortVal(blue));
- RETURN (true);
-%}
-!
-
glxMaxsizeX: x y: y in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -4750,124 +5787,6 @@
^ false
!
-glxMonobufferIn: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef FULL_GLX
- SETWIN(aGLXWindowId)
- monobuffer();
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxMove2:v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- float vec[2], *c_v;
-
- if (! (c_v = getFloatsFromInto(v, vec, 2))) RETURN(false);
- SETWIN(aGLXWindowId)
- move2((Coord)(c_v[0]), (Coord)(c_v[1]));
- RETURN (true);
-%}
-!
-
-glxMove2X: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- move2(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxMove2iX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- move2i(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxMove2sX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- move2s(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxMove:v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- float vec[3], *c_v;
-
- if (! (c_v = getFloatsFromInto(v, vec, 3))) RETURN(false);
- SETWIN(aGLXWindowId)
- move((Coord)(c_v[0]), (Coord)(c_v[1]), (Coord)(c_v[2]));
- RETURN (true);
-%}
-!
-
-glxMoveX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y, c_z;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- _COORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- move(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxMoveiX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y, c_z;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- _ICOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- movei(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxMovesX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y, c_z;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- _SCOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- moves(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
glxMsalphaMode: mode in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -5151,87 +6070,6 @@
^ false
!
-glxPdr2X: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- pdr2(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxPdr2iX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- pdr2i(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxPdr2sX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- pdr2s(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxPdrX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y, c_z;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- _COORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- pdr(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxPdriX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y, c_z;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- _ICOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- pdri(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxPdrsX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y, c_z;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- _SCOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- pdrs(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
glxPicksizeX: x y: y in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -5258,194 +6096,6 @@
^ false
!
-glxPmv2X: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- pmv2(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxPmv2iX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- pmv2i(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxPmv2sX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- pmv2s(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxPmvX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y, c_z;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- _COORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- pmv(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxPmviX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y, c_z;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- _ICOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- pmvi(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxPmvsX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y, c_z;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- _SCOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- pmvs(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxPnt2X: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- pnt2(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxPnt2iX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- pnt2i(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxPnt2sX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- pnt2s(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxPntX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y, c_z;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- _COORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- pnt(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxPntiX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y, c_z;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- _ICOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- pnti(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxPntsX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y, c_z;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- _SCOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- pnts(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxPntsize: n in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
- pntsize(_shortVal(n));
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxPntsizef: n in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
- pntsizef(_floatVal(n));
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
glxPntsmoothMode: mode in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -5459,15 +6109,6 @@
^ false
!
-glxPolymode: mode in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- polymode(_longVal(mode));
- RETURN (true);
-%}
-!
-
glxPolysmoothMode: mode in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -5481,15 +6122,6 @@
^ false
!
-glxPopattributesIn: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- popattributes();
- RETURN (true);
-%}
-!
-
glxPopnameIn: aGLXWindowId
%{ /* NOCONTEXT */
@@ -5503,15 +6135,6 @@
^ false
!
-glxPopviewportIn: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- popviewport();
- RETURN (true);
-%}
-!
-
glxPrefpositionX1: x1 x2: x2 y1: y1 y2: y2 in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -5543,15 +6166,6 @@
^ false
!
-glxPushattributesIn: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- pushattributes();
- RETURN (true);
-%}
-!
-
glxPushname: name In: aGLXWindowId
%{ /* NOCONTEXT */
@@ -5565,15 +6179,6 @@
^ false
!
-glxPushviewportIn: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- pushviewport();
- RETURN (true);
-%}
-!
-
glxQdevice: dev in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -5664,111 +6269,6 @@
^ false
!
-glxRdr2:v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- float vec[2], *c_v;
-
- if (! (c_v = getFloatsFromInto(v, vec, 2))) RETURN(false);
- SETWIN(aGLXWindowId)
- rdr2((Coord)(c_v[0]), (Coord)(c_v[1]));
- RETURN (true);
-%}
-!
-
-glxRdr2X: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- rdr2(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxRdr2iX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- rdr2i(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxRdr2sX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- rdr2s(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxRdr:v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- float vec[3], *c_v;
-
- if (! (c_v = getFloatsFromInto(v, vec, 3))) RETURN(false);
- SETWIN(aGLXWindowId)
- rdr((Coord)(c_v[0]), (Coord)(c_v[1]), (Coord)(c_v[2]));
- RETURN (true);
-%}
-!
-
-glxRdrX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y, c_z;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- _COORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- rdr(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxRdriX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y, c_z;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- _ICOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- rdri(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxRdrsX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y, c_z;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- _SCOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- rdrs(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
glxReadsource: src in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -5782,15 +6282,6 @@
^ false
!
-glxRectX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- rect(_coordVal(x1), _coordVal(y1), _coordVal(x2), _coordVal(y2));
- RETURN (true);
-%}
-!
-
glxRectcopyX1: x1 y1: y1 x2: x2 y2: y2 newx: newx newy: newy in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -5806,51 +6297,6 @@
^ false
!
-glxRectfX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- rectf(_coordVal(x1), _coordVal(y1), _coordVal(x2), _coordVal(y2));
- RETURN (true);
-%}
-!
-
-glxRectfiX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- rectfi(_icoordVal(x1), _icoordVal(y1), _icoordVal(x2), _icoordVal(y2));
- RETURN (true);
-%}
-!
-
-glxRectfsX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- rectfs(_scoordVal(x1), _scoordVal(y1), _scoordVal(x2), _scoordVal(y2));
- RETURN (true);
-%}
-!
-
-glxRectiX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- recti(_icoordVal(x1), _icoordVal(y1), _icoordVal(x2), _icoordVal(y2));
- RETURN (true);
-%}
-!
-
-glxRectsX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- rects(_scoordVal(x1), _scoordVal(y1), _scoordVal(x2), _scoordVal(y2));
- RETURN (true);
-%}
-!
-
glxRectzoomX: xfactor y: yfactor in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -5877,19 +6323,6 @@
^ false
!
-glxRightbuffer: bool in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef FULL_GLX
- SETWIN(aGLXWindowId)
- rightbuffer(_booleanVal(bool));
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
glxRingbellIn: aGLXWindowId
%{ /* NOCONTEXT */
@@ -5903,273 +6336,6 @@
^ false
!
-glxRmv2:v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- float vec[2], *c_v;
-
- if (! (c_v = getFloatsFromInto(v, vec, 2))) RETURN(false);
- SETWIN(aGLXWindowId)
- rmv2((Coord)(c_v[0]), (Coord)(c_v[1]));
- RETURN (true);
-%}
-!
-
-glxRmv2X: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- rmv2(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxRmv2iX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- rmv2i(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxRmv2sX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- rmv2s(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxRmv:v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- float vec[3], *c_v;
-
- if (! (c_v = getFloatsFromInto(v, vec, 3))) RETURN(false);
- SETWIN(aGLXWindowId)
- rmv((Coord)(c_v[0]), (Coord)(c_v[1]), (Coord)(c_v[2]));
- RETURN (true);
-%}
-!
-
-glxRmvX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y, c_z;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- _COORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- rmv(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxRmviX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y, c_z;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- _ICOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- rmvi(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxRmvsX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y, c_z;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- _SCOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- rmvs(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxRpdr2X: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- rpdr2(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxRpdr2iX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- rpdr2i(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxRpdr2sX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- rpdr2s(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxRpdrX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y, c_z;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- _COORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- rpdr(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxRpdriX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y, c_z;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- _ICOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- rpdri(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxRpdrsX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y, c_z;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- _SCOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- rpdrs(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxRpmv2X: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- rpmv2(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxRpmv2iX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- rpmv2i(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxRpmv2sX: x y: y in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- SETWIN(aGLXWindowId)
- rpmv2s(c_x, c_y);
- RETURN (true);
-%}
-!
-
-glxRpmvX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Coord c_x, c_y, c_z;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- _COORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- rpmv(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxRpmviX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Icoord c_x, c_y, c_z;
-
- _ICOORD_ (x, c_x)
- _ICOORD_ (y, c_y)
- _ICOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- rpmvi(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
-glxRpmvsX: x y: y z: z in: aGLXWindowId
-
-%{ /* NOCONTEXT */
- Scoord c_x, c_y, c_z;
-
- _SCOORD_ (x, c_x)
- _SCOORD_ (y, c_y)
- _SCOORD_ (z, c_z)
- SETWIN(aGLXWindowId)
- rpmvs(c_x, c_y, c_z);
- RETURN (true);
-%}
-!
-
glxSboxX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -6366,18 +6532,6 @@
^ false
!
-glxSetlinestyle: index in: aGLXWindowId
- "set the linestyle"
-
-%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- setlinestyle(_shortVal(index));
- RETURN (true);
-%}
-.
- ^ false
-!
-
glxSetmap: mapnum in: aGLXWindowId
%{ /* NOCONTEXT */
@@ -6615,198 +6769,6 @@
^ false
!
-glxT2d: v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef GLX
- double vec[2], *c_v;
-
- if (! (c_v = getDoublesFromInto(v, vec, 2))) RETURN(false);
- SETWIN(aGLXWindowId)
- t2d(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxT2f: v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef GLX
- float vec[2], *c_v;
-
- if (! (c_v = getFloatsFromInto(v, vec, 2))) RETURN(false);
- SETWIN(aGLXWindowId)
- t2f(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxT2i: v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef GLX
- long vec[2], *c_v;
-
- if (! (c_v = getLongsFromInto(v, vec, 2))) RETURN(false);
- SETWIN(aGLXWindowId)
- t2i(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxT2s: v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef GLX
- short vec[2], *c_v;
-
- if (! (c_v = getShortsFromInto(v, vec, 2))) RETURN(false);
- SETWIN(aGLXWindowId)
- t2s(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxT3d:v in:aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef FULL_GLX
- double vec[3], *c_v;
-
- if (! (c_v = getDoublesFromInto(v, vec, 3))) RETURN(false);
- SETWIN(aGLXWindowId)
- t3d(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxT3f:v in:aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef FULL_GLX
- float vec[3], *c_v;
-
- if (! (c_v = getFloatsFromInto(v, vec, 3))) RETURN(false);
- SETWIN(aGLXWindowId)
- t3f(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxT3i:v in:aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef FULL_GLX
- long vec[3], *c_v;
-
- if (! (c_v = getLongsFromInto(v, vec, 3))) RETURN(false);
- SETWIN(aGLXWindowId)
- t3i(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxT3s:v in:aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef FULL_GLX
- short vec[3], *c_v;
-
- if (! (c_v = getShortsFromInto(v, vec, 3))) RETURN(false);
- SETWIN(aGLXWindowId)
- t3s(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxT4d: v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef FULL_GLX
- double vec[4], *c_v;
-
- if (! (c_v = getDoublesFromInto(v, vec, 4))) RETURN(false);
- SETWIN(aGLXWindowId)
- t4d(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxT4f: v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef FULL_GLX
- float vec[4], *c_v;
-
- if (! (c_v = getFloatsFromInto(v, vec, 4))) RETURN(false);
- SETWIN(aGLXWindowId)
- t4f(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxT4i: v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef FULL_GLX
- long vec[4], *c_v;
-
- if (! (c_v = getLongsFromInto(v, vec, 4))) RETURN(false);
- SETWIN(aGLXWindowId)
- t4i(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
-glxT4s: v in: aGLXWindowId
-
-%{ /* NOCONTEXT */
-#ifdef FULL_GLX
- short vec[4], *c_v;
-
- if (! (c_v = getShortsFromInto(v, vec, 4))) RETURN(false);
- SETWIN(aGLXWindowId)
- t4s(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
-!
-
glxTextinitIn: aGLXWindowId
%{ /* NOCONTEXT */
@@ -7107,6 +7069,198 @@
^ false
!
+glxT2d: v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef GLX
+ double vec[2], *c_v;
+
+ if (! (c_v = getDoublesFromInto(v, vec, 2))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ t2d(c_v);
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxT2f: v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef GLX
+ float vec[2], *c_v;
+
+ if (! (c_v = getFloatsFromInto(v, vec, 2))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ t2f(c_v);
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxT2i: v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef GLX
+ long vec[2], *c_v;
+
+ if (! (c_v = getLongsFromInto(v, vec, 2))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ t2i(c_v);
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxT2s: v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef GLX
+ short vec[2], *c_v;
+
+ if (! (c_v = getShortsFromInto(v, vec, 2))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ t2s(c_v);
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxT3d:v in:aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef FULL_GLX
+ double vec[3], *c_v;
+
+ if (! (c_v = getDoublesFromInto(v, vec, 3))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ t3d(c_v);
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxT3f:v in:aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef FULL_GLX
+ float vec[3], *c_v;
+
+ if (! (c_v = getFloatsFromInto(v, vec, 3))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ t3f(c_v);
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxT3i:v in:aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef FULL_GLX
+ long vec[3], *c_v;
+
+ if (! (c_v = getLongsFromInto(v, vec, 3))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ t3i(c_v);
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxT3s:v in:aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef FULL_GLX
+ short vec[3], *c_v;
+
+ if (! (c_v = getShortsFromInto(v, vec, 3))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ t3s(c_v);
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxT4d: v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef FULL_GLX
+ double vec[4], *c_v;
+
+ if (! (c_v = getDoublesFromInto(v, vec, 4))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ t4d(c_v);
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxT4f: v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef FULL_GLX
+ float vec[4], *c_v;
+
+ if (! (c_v = getFloatsFromInto(v, vec, 4))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ t4f(c_v);
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxT4i: v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef FULL_GLX
+ long vec[4], *c_v;
+
+ if (! (c_v = getLongsFromInto(v, vec, 4))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ t4i(c_v);
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
+glxT4s: v in: aGLXWindowId
+
+%{ /* NOCONTEXT */
+#ifdef FULL_GLX
+ short vec[4], *c_v;
+
+ if (! (c_v = getShortsFromInto(v, vec, 4))) RETURN(false);
+ SETWIN(aGLXWindowId)
+ t4s(c_v);
+ RETURN (true);
+#endif
+%}
+.
+ ^ false
+!
+
glxV2d:v in:aGLXWindowId
"pass a vertex; v must be a vector with 2 doubles; z is taken as 0"
@@ -7504,6 +7658,30 @@
%}
!
+glxPopviewportIn: aGLXWindowId
+ "pops the top viewport off the viewport stack"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ popviewport();
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:58:24 / cg"
+!
+
+glxPushviewportIn: aGLXWindowId
+ "pushes the current viewport on the viewport stack"
+
+%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
+ pushviewport();
+ RETURN (true);
+%}
+
+ "Modified: 19.3.1996 / 18:58:02 / cg"
+!
+
glxReshapeViewPortIn: aGLXWindowId
%{ /* NOCONTEXT */
@@ -7844,5 +8022,5 @@
!GLXWorkstation class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libview/GLXWorkstation.st,v 1.46 1996-03-08 17:11:10 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libview/GLXWorkstation.st,v 1.47 1996-03-19 18:00:46 cg Exp $'
! !