--- a/Depth24Image.st Tue Oct 21 20:11:53 1997 +0200
+++ b/Depth24Image.st Tue Oct 21 20:22:05 1997 +0200
@@ -10,7 +10,7 @@
hereby transferred.
"
-'From Smalltalk/X, Version:3.2.1 on 15-oct-1997 at 2:31:29 pm' !
+'From Smalltalk/X, Version:3.2.1 on 19-oct-1997 at 5:20:41 pm' !
Image subclass:#Depth24Image
instanceVariableNames:''
@@ -1343,25 +1343,25 @@
^ nil
].
- greyLevels := (1 bitShift:depth) - 1.
+ depth ~~ 8 ifTrue:[
+ greyLevels := (1 bitShift:depth) - 1.
+ greyMap1 := Array new:256.
+ greyMap2 := Array new:256.
+ 1 to:256 do:[:i |
+ v := (greyLevels / 255 * (i-1)).
+ greyMap1 at:i put:v.
+ greyMap2 at:i put:v.
+ ].
+ greyMap1 := (greyMap1 collect:[:b | b truncated]) asByteArray.
- greyMap1 := Array new:256.
- greyMap2 := Array new:256.
- 1 to:256 do:[:i |
- v := (greyLevels / 255 * (i-1)).
- greyMap1 at:i put:v.
- greyMap2 at:i put:v.
+ greyMap2 := (greyMap2 collect:[:el |
+ ((el - el truncated) "/ the error (0..1)
+ * 255) rounded]) asByteArray.
+
+ errorArray := ByteArray new:(w + 2) * 2.
+ errorArray1 := ByteArray new:(w + 2) * 2.
].
- greyMap1 := (greyMap1 collect:[:b | b truncated]) asByteArray.
-
- greyMap2 := (greyMap2 collect:[:el |
- ((el - el truncated) "/ the error (0..1)
- * 255) rounded]) asByteArray.
-
- errorArray := ByteArray new:(w + 2) * 2.
- errorArray1 := ByteArray new:(w + 2) * 2.
-
%{
int __byte;
int __dT, __err, __e16, __eR, __eB, __eRB, __eLB;
@@ -1389,70 +1389,91 @@
short *__errorArray1 = (short *)(__ByteArrayInstPtr(errorArray1)->ba_element);
short *__t;
- bzero(errorArray1, (__w+2) * 2);
+ if (__depth == 8) {
+ /*
+ * special code for destination depth 8
+ */
+ for (__y=0; __y<__h; __y++) {
+ __nextDst = __dstIdx + __bytesPerOutRow;
+ __nextSrc = __srcIdx + __bytesPerRow;
+ for (__x=0; __x<__w; __x++) {
+ __grey = (__bytes[__srcIdx] * 3) /* 0.3*r + 0.6*g + b -> 0..2550 */
+ + (__bytes[__srcIdx+1] * 6)
+ + __bytes[__srcIdx+2];
+ __pixel = __grey / 10; /* 0 .. 255 */
- __bitCnt = 8;
- for (__y=0; __y<__h; __y++) {
- __nextDst = __dstIdx + __bytesPerOutRow;
- __nextSrc = __srcIdx + __bytesPerRow;
-
- __byte = 0;
-
- __t = __errorArray;
- __errorArray = __errorArray1;
- __errorArray1 = __t;
+ __srcIdx += 3;
+ __outBits[__dstIdx] = __pixel;
+ __dstIdx++;
+ }
+ __srcIdx = __nextSrc;
+ __dstIdx = __nextDst;
+ }
+ } else {
bzero(errorArray1, (__w+2) * 2);
- for (__x=0; __x<__w; __x++) {
- __grey = (__bytes[__srcIdx] * 3) /* 0.3*r + 0.6*g + b -> 0..2550 */
- + (__bytes[__srcIdx+1] * 6)
- + __bytes[__srcIdx+2];
- __grey = __grey / 10; /* 0 .. 255 */
+ __bitCnt = 8;
+ for (__y=0; __y<__h; __y++) {
+ __nextDst = __dstIdx + __bytesPerOutRow;
+ __nextSrc = __srcIdx + __bytesPerRow;
+
+ __byte = 0;
- __pixel = __greyMap1[__grey]; /* 0..(greyLevels-1) */
- __err = __greyMap2[__grey]; /* 0.. 255 - error) */
- __err += __errorArray[__x+1];
+ __t = __errorArray;
+ __errorArray = __errorArray1;
+ __errorArray1 = __t;
+ bzero(errorArray1, (__w+2) * 2);
+
+ for (__x=0; __x<__w; __x++) {
+ __grey = (__bytes[__srcIdx] * 3) /* 0.3*r + 0.6*g + b -> 0..2550 */
+ + (__bytes[__srcIdx+1] * 6)
+ + __bytes[__srcIdx+2];
+ __grey = __grey / 10; /* 0 .. 255 */
+
+ __pixel = __greyMap1[__grey]; /* 0..(greyLevels-1) */
+ __err = __greyMap2[__grey]; /* 0.. 255 - error) */
+ __err += __errorArray[__x+1];
- if (__err > 127) { /* dither says: next pixel */
- if ( __pixel != __greyLevels)
- __pixel++;
- __err = __err - 255;
- } else {
- }
- if (__err) {
- __e16 = __err >> 4;
- __eR = __e16 * 7;
- __eRB = __e16 * 1;
- __eB = __e16 * 5;
- __eLB = __err - __eR - __eRB - __eB;
-
- __errorArray [__x+1+1] += __eR;
- __errorArray1[__x+1+1] += __eRB;
- __errorArray1[__x+1 ] += __eB;
- __errorArray1[__x+1-1] += __eLB;
+ if (__err > 127) { /* dither says: next pixel */
+ if ( __pixel != __greyLevels)
+ __pixel++;
+ __err = __err - 255;
+ } else {
+ }
+ if (__err) {
+ __e16 = __err >> 4;
+ __eR = __e16 * 7; /* 7/16 -> right pixel */
+ __eRB = __e16 * 1; /* 1/16 -> right below */
+ __eB = __e16 * 5; /* 5/16 -> below */
+ __eLB = __err - __eR - __eRB - __eB; /* 3/16 -> left below */
+
+ __errorArray [__x+1+1] += __eR;
+ __errorArray1[__x+1+1] += __eRB;
+ __errorArray1[__x+1 ] += __eB;
+ __errorArray1[__x+1-1] += __eLB;
+ }
+
+ __srcIdx += 3;
+
+ __byte = (__byte << __depth) | __pixel;
+
+ __bitCnt = __bitCnt - __depth;
+ if (__bitCnt == 0) {
+ __outBits[__dstIdx] = __byte;
+ __dstIdx++;
+ __byte = 0;
+ __bitCnt = 8;
+ }
}
- __srcIdx += 3;
-
- __byte = (__byte << __depth) | __pixel;
-
- __bitCnt = __bitCnt - __depth;
- if (__bitCnt == 0) {
+ if (__bitCnt != 8) {
+ __byte = __byte << __bitCnt;
__outBits[__dstIdx] = __byte;
- __dstIdx++;
- __byte = 0;
__bitCnt = 8;
}
+ __srcIdx = __nextSrc;
+ __dstIdx = __nextDst;
}
-
- if (__bitCnt != 8) {
- __byte = __byte << __bitCnt;
- __outBits[__dstIdx] = __byte;
- __bitCnt = 8;
- }
-
- __srcIdx = __nextSrc;
- __dstIdx = __nextDst;
}
%}.
@@ -1916,7 +1937,7 @@
bitsPerPixel := self depth.
newBytesPerRow := ((newWidth * bitsPerPixel) + 7) // 8.
newBits := ByteArray new: "uninitializedNew:" (newBytesPerRow * newHeight).
- newBits isNil ifTrue:[self halt].
+ newBits isNil ifTrue:[^ nil].
mask notNil ifTrue:[
newMask := (mask magnifiedBy:scalePoint)
@@ -2264,5 +2285,5 @@
!Depth24Image class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libview/Depth24Image.st,v 1.57 1997-10-15 11:23:57 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libview/Depth24Image.st,v 1.58 1997-10-21 18:20:12 cg Exp $'
! !
--- a/Depth8Image.st Tue Oct 21 20:11:53 1997 +0200
+++ b/Depth8Image.st Tue Oct 21 20:22:05 1997 +0200
@@ -10,7 +10,7 @@
hereby transferred.
"
-'From Smalltalk/X, Version:3.2.1 on 15-oct-1997 at 2:31:42 pm' !
+'From Smalltalk/X, Version:3.2.1 on 19-oct-1997 at 5:19:15 pm' !
Image subclass:#Depth8Image
instanceVariableNames:''
@@ -191,6 +191,355 @@
!Depth8Image methodsFor:'converting'!
+anyImageAsPseudoFormOn:aDevice
+ "return a pseudoForm from the palette picture.
+ The main work is in color reduction, when not all colors can be aquired.
+ This method works for any photometric."
+
+ |pseudoBits f gcRound has8BitImage deviceDepth
+ imgMap newImage pixelRow dColors
+ usedColors usageCounts maxIndex map
+ fit scale lastOK error
+ div
+ bitsPerRGB "{Class: SmallInteger }"
+ shift "{Class: SmallInteger }"
+ m "{Class: SmallInteger }"
+ cube nR nG nB ditherColors|
+
+ (cube := aDevice fixColors) notNil ifTrue:[
+ nR := aDevice numFixRed.
+ nG := aDevice numFixGreen.
+ nB := aDevice numFixBlue.
+
+ DitherAlgorithm == #floydSteinberg ifTrue:[
+ f := self
+ asFloydSteinbergDitheredDepth8FormOn:aDevice
+ colors:cube
+ nRed:nR
+ nGreen:nG
+ nBlue:nB.
+ ] ifFalse:[
+ f := self
+ asNearestPaintDepth8FormOn:aDevice
+ colors:cube
+ nRed:nR
+ nGreen:nG
+ nBlue:nB.
+ ].
+ f notNil ifTrue:[^ f].
+ ].
+
+ "find used colors"
+
+ usedColors := bytes usedValues. "gets us an array filled with used values"
+ "(could use bytes asBag)"
+ maxIndex := usedColors max + 1.
+
+ usedColors size > 20 ifTrue:[
+ ('Depth8Image [info]: allocating ' , usedColors size printString , ' colors ...') infoPrintCR.
+ ].
+
+ "sort by usage"
+ usageCounts := bytes usageCounts.
+ usageCounts := usedColors asArray collect:[:clr | usageCounts at:(clr + 1)].
+ usageCounts sort:[:a :b | a > b] with:usedColors.
+
+ "allocate the colors (in order of usage count)"
+
+ imgMap := Array new:maxIndex.
+
+ "
+ first, try to get the exact colors ...
+ "
+ bitsPerRGB := aDevice bitsPerRGB.
+ shift := (8 - bitsPerRGB) negated.
+ m := (1 bitShift:bitsPerRGB) - 1.
+ div := m asFloat.
+
+ fit := true.
+ scale := 100.0 / div. "to scale 0..255 into 0.0 .. 100.0"
+ lastOK := 0.
+ gcRound := 0.
+
+ usedColors do:[:aColorIndex |
+ |devColor color
+ r "{Class: SmallInteger }"
+ g "{Class: SmallInteger }"
+ b "{Class: SmallInteger }"
+ mapIndex "{Class: SmallInteger }"|
+
+ fit ifTrue:[
+ mapIndex := aColorIndex + 1.
+ "/ color := colorMap at:mapIndex.
+
+ color := self colorFromValue:aColorIndex.
+ (color colorId notNil
+ and:[color graphicsDevice == aDevice]) ifTrue:[
+ "wow - an immediate hit"
+ devColor := color
+ ] ifFalse:[
+ devColor := color exactOn:aDevice.
+ devColor isNil ifTrue:[
+ "
+ could not allocate color - on the first round, do a GC to flush
+ unused colors - this may help if some colors where locked by
+ already free images.
+ "
+ gcRound == 0 ifTrue:[
+ ObjectMemory scavenge; finalize.
+ devColor := color exactOn:aDevice.
+ gcRound := 1
+ ].
+ devColor isNil ifTrue:[
+ gcRound == 1 ifTrue:[
+ CollectGarbageWhenRunningOutOfColors ifTrue:[
+ 'Depth8Image [info]: force GC for possible color reclamation.' infoPrintCR.
+ ObjectMemory incrementalGC; finalize.
+ devColor := color exactOn:aDevice.
+ ].
+ gcRound := 2
+ ]
+ ]
+ ].
+ ].
+ (devColor notNil and:[devColor colorId notNil]) ifTrue:[
+ imgMap at:mapIndex put:devColor.
+ lastOK := lastOK + 1.
+ ] ifFalse:[
+ fit := false
+ ]
+ ]
+ ].
+
+ fit ifFalse:[
+ ('Depth8Image [info]: got %1 exact colors (out of %2)' bindWith:lastOK with:usedColors size) infoPrintCR.
+
+ DitherAlgorithm == #floydSteinberg ifTrue:[
+ dColors := imgMap collect:[:clr | clr isNil ifTrue:[clr]
+ ifFalse:[clr nearestOn:aDevice]].
+ dColors := dColors select:[:clr | clr notNil].
+ dColors := dColors collect:[:clr | clr exactOn:aDevice].
+ dColors := dColors select:[:clr | clr notNil].
+ dColors := dColors asSet.
+ dColors addAll:((aDevice colorMap collect:[:c|c onDevice:aDevice])
+ select:[:c | c colorId notNil]).
+ ditherColors := aDevice availableDitherColors.
+ ditherColors notNil ifTrue:[
+ dColors addAll:ditherColors.
+ ].
+ dColors := dColors asArray.
+ dColors size > 256 ifTrue:[
+ dColors := dColors copyTo:256
+ ].
+ ^ self asFloydSteinbergDitheredPseudoFormUsing:dColors on:aDevice
+ ].
+
+ "
+ again, this time allow wrong colors (loop while increasing allowed error)
+ "
+ error := 1.
+ [fit] whileFalse:[
+ fit := true.
+ usedColors from:(lastOK+1) to:(usedColors size) do:[:aColorIndex |
+ |devColor color
+ r "{Class: SmallInteger }"
+ g "{Class: SmallInteger }"
+ b "{Class: SmallInteger }"
+ mapIndex "{Class: SmallInteger }"
+ rMask "{Class: SmallInteger }"
+ gMask "{Class: SmallInteger }"
+ bMask "{Class: SmallInteger }"|
+
+ fit ifTrue:[
+ gMask := bMask := rMask := m.
+
+ mapIndex := aColorIndex + 1.
+ "/ color := colorMap at:mapIndex.
+ color := self colorFromValue:aColorIndex.
+ r := (color red * 255 / 100.0) rounded.
+ g := (color green * 255 / 100.0) rounded.
+ b := (color blue * 255 / 100.0) rounded.
+
+ color := Color red:((r bitShift:shift) bitAnd:rMask) * scale
+ green:((g bitShift:shift) bitAnd:gMask) * scale
+ blue:((b bitShift:shift) bitAnd:bMask) * scale.
+
+ (color colorId notNil
+ and:[color graphicsDevice == aDevice]) ifTrue:[
+ "wow - an immediate hit"
+ devColor := color.
+ ] ifFalse:[
+ devColor := color nearestOn:aDevice.
+ (devColor notNil and:[(devColor deltaFrom:color) > error]) ifTrue:[
+ devColor := nil
+ ].
+ devColor isNil ifTrue:[
+ "
+ no free color - on the first round, do a GC to flush unused
+ colors - this may help if some colors where locked by already
+ free images.
+ "
+ gcRound == 0 ifTrue:[
+ ObjectMemory scavenge; finalize.
+ devColor := color nearestOn:aDevice.
+ (devColor notNil and:[(devColor deltaFrom:color) > error]) ifTrue:[
+ devColor := nil
+ ].
+ gcRound := 1
+ ].
+ devColor isNil ifTrue:[
+ gcRound == 1 ifTrue:[
+ CollectGarbageWhenRunningOutOfColors ifTrue:[
+ 'Depth8Image [info]: force GC for possible color reclamation.' infoPrintCR.
+ ObjectMemory incrementalGC; finalize.
+ devColor := color nearestOn:aDevice.
+ (devColor notNil and:[(devColor deltaFrom:color) > error]) ifTrue:[
+ devColor := nil
+ ].
+ ].
+ gcRound := 2
+ ]
+ ]
+ ].
+ ].
+ (devColor notNil and:[devColor colorId notNil]) ifTrue:[
+ imgMap at:mapIndex put:devColor.
+ lastOK := lastOK + 1.
+ ] ifFalse:[
+ fit := false
+ ]
+ ].
+ ].
+
+ fit ifTrue:[
+ ('Depth8Image [info]: remaining colors with error <= %1' bindWith:error) infoPrintCR.
+ ].
+
+ error := error * 2.
+ error > 100 ifTrue:[
+ "
+ break out, if the error becomes too big.
+ "
+ 'Depth8Image [info]: hard color allocation problem - revert to b&w for remaining colors' infoPrintCR.
+ "
+ map to b&w as a last fallback.
+ (should really do a dither here)
+ "
+ usedColors from:(lastOK+1) to:(usedColors size) do:[:aColorIndex |
+ |color
+ mapIndex "{ Class: SmallInteger }"|
+
+ mapIndex := aColorIndex + 1.
+ "/ color := colorMap at:mapIndex.
+ color := self colorFromValue:aColorIndex.
+ color brightness > 0.4 ifTrue:[
+ color := Color white.
+ ] ifFalse:[
+ color := Color black.
+ ].
+ imgMap at:mapIndex put:(color on:aDevice).
+ ].
+ fit := true.
+ ]
+ ].
+
+ error > 10 ifTrue:[
+ 'Depth8Image [info]: not enough colors for a reasonable image' infoPrintCR
+ ] ifFalse:[
+ 'Depth8Image [info]: not enough colors for exact picture' infoPrintCR.
+ ]
+ ].
+
+ "
+ create translation map (from image colors to allocated colorIds)
+ "
+ map := ByteArray new:256.
+ 1 to:imgMap size do:[:i |
+ |clr|
+
+ (clr := imgMap at:i) notNil ifTrue:[
+ map at:i put:clr colorId
+ ]
+ ].
+
+ "
+ does the device support 8-bit images ?
+ "
+ deviceDepth := aDevice depth.
+ deviceDepth == 8 ifTrue:[
+ has8BitImage := true.
+ ] ifFalse:[
+ has8BitImage := false.
+ aDevice supportedImageFormats do:[:fmt |
+ (fmt at:#bitsPerPixel) == 8 ifTrue:[
+ has8BitImage := true.
+ ]
+ ]
+ ].
+
+ "
+ finally, create a form on the device and copy (& translate)
+ the pixel values
+ "
+ has8BitImage ifTrue:[
+ pseudoBits := ByteArray uninitializedNew:(width * height).
+
+ bytes expandPixels:8 "xlate only"
+ width:width
+ height:height
+ into:pseudoBits
+ mapping:map.
+
+ map := nil.
+
+ f := Form width:width height:height depth:deviceDepth on:aDevice.
+ f isNil ifTrue:[^ nil].
+ f colorMap:imgMap.
+ f initGC.
+ aDevice drawBits:pseudoBits bitsPerPixel:8 depth:deviceDepth
+ width:width height:height
+ x:0 y:0
+ into:(f id) x:0 y:0
+ width:width height:height with:(f gcId).
+ ^ f
+ ].
+
+ "
+ slow fall back: convert into appropriate depth image,
+ by looping over each pixel individually
+ "
+ newImage := (Image implementorForDepth:deviceDepth) new.
+ newImage width:width.
+ newImage height:height.
+ newImage bits:(ByteArray uninitializedNew:(height * newImage bytesPerRow)).
+
+ 0 to:height-1 do:[:row |
+ pixelRow := self rowAt:row.
+ pixelRow
+ expandPixels:8 "xlate only"
+ width:width
+ height:1
+ into:pixelRow
+ mapping:map.
+ newImage rowAt:row putAll:pixelRow
+ ].
+
+ f := Form width:width height:height depth:deviceDepth on:aDevice.
+ f isNil ifTrue:[^ nil].
+ f colorMap:imgMap.
+ f initGC.
+
+ aDevice drawBits:(newImage bits) depth:deviceDepth width:width height:height
+ x:0 y:0
+ into:(f id) x:0 y:0
+ width:width height:height with:(f gcId).
+
+ ^ f
+
+ "Modified: 15.10.1997 / 01:48:20 / cg"
+ "Created: 19.10.1997 / 04:57:05 / cg"
+!
+
fromImage:anImage
"setup the receiver from another image.
The code here is tuned for depth 1, 2 and 4 source images;
@@ -311,347 +660,23 @@
"Modified: 10.6.1996 / 18:54:36 / cg"
!
+greyImageAsPseudoFormOn:aDevice
+ "return a pseudoForm from the gray picture. The main work is
+ in color reduction, when not all colors can be aquired."
+
+ ^ self anyImageAsPseudoFormOn:aDevice
+
+ "Modified: 19.10.1997 / 04:57:39 / cg"
+ "Created: 19.10.1997 / 04:58:41 / cg"
+!
+
paletteImageAsPseudoFormOn:aDevice
"return a pseudoForm from the palette picture. The main work is
in color reduction, when not all colors can be aquired."
- |pseudoBits f gcRound has8BitImage deviceDepth
- imgMap newImage pixelRow dColors
- usedColors usageCounts maxIndex map
- fit scale lastOK error
- div
- bitsPerRGB "{Class: SmallInteger }"
- shift "{Class: SmallInteger }"
- m "{Class: SmallInteger }"
- cube nR nG nB ditherColors|
-
- (cube := aDevice fixColors) notNil ifTrue:[
- nR := aDevice numFixRed.
- nG := aDevice numFixGreen.
- nB := aDevice numFixBlue.
-
- DitherAlgorithm == #floydSteinberg ifTrue:[
- f := self
- asFloydSteinbergDitheredDepth8FormOn:aDevice
- colors:cube
- nRed:nR
- nGreen:nG
- nBlue:nB.
- ] ifFalse:[
- f := self
- asNearestPaintDepth8FormOn:aDevice
- colors:cube
- nRed:nR
- nGreen:nG
- nBlue:nB.
- ].
- f notNil ifTrue:[^ f].
- ].
-
- "find used colors"
-
- usedColors := bytes usedValues. "gets us an array filled with used values"
- "(could use bytes asBag)"
- maxIndex := usedColors max + 1.
-
- usedColors size > 20 ifTrue:[
- ('Depth8Image [info]: allocating ' , usedColors size printString , ' colors ...') infoPrintCR.
- ].
-
- "sort by usage"
- usageCounts := bytes usageCounts.
- usageCounts := usedColors asArray collect:[:clr | usageCounts at:(clr + 1)].
- usageCounts sort:[:a :b | a > b] with:usedColors.
-
- "allocate the colors (in order of usage count)"
-
- imgMap := Array new:maxIndex.
-
- "
- first, try to get the exact colors ...
- "
- bitsPerRGB := aDevice bitsPerRGB.
- shift := (8 - bitsPerRGB) negated.
- m := (1 bitShift:bitsPerRGB) - 1.
- div := m asFloat.
-
- fit := true.
- scale := 100.0 / div. "to scale 0..255 into 0.0 .. 100.0"
- lastOK := 0.
- gcRound := 0.
-
- usedColors do:[:aColorIndex |
- |devColor color
- r "{Class: SmallInteger }"
- g "{Class: SmallInteger }"
- b "{Class: SmallInteger }"
- mapIndex "{Class: SmallInteger }"|
-
- fit ifTrue:[
- mapIndex := aColorIndex + 1.
- color := colorMap at:mapIndex.
- (color colorId notNil
- and:[color graphicsDevice == aDevice]) ifTrue:[
- "wow - an immediate hit"
- devColor := color
- ] ifFalse:[
- devColor := color exactOn:aDevice.
- devColor isNil ifTrue:[
- "
- could not allocate color - on the first round, do a GC to flush
- unused colors - this may help if some colors where locked by
- already free images.
- "
- gcRound == 0 ifTrue:[
- ObjectMemory scavenge; finalize.
- devColor := color exactOn:aDevice.
- gcRound := 1
- ].
- devColor isNil ifTrue:[
- gcRound == 1 ifTrue:[
- CollectGarbageWhenRunningOutOfColors ifTrue:[
- 'Depth8Image [info]: force GC for possible color reclamation.' infoPrintCR.
- ObjectMemory incrementalGC; finalize.
- devColor := color exactOn:aDevice.
- ].
- gcRound := 2
- ]
- ]
- ].
- ].
- (devColor notNil and:[devColor colorId notNil]) ifTrue:[
- imgMap at:mapIndex put:devColor.
- lastOK := lastOK + 1.
- ] ifFalse:[
- fit := false
- ]
- ]
- ].
-
- fit ifFalse:[
- ('Depth8Image [info]: got %1 exact colors (out of %2)' bindWith:lastOK with:usedColors size) infoPrintCR.
-
- DitherAlgorithm == #floydSteinberg ifTrue:[
- dColors := colorMap asArray collect:[:clr | clr isNil ifTrue:[clr]
- ifFalse:[clr nearestOn:aDevice]].
- dColors := dColors select:[:clr | clr notNil].
- dColors := dColors collect:[:clr | clr exactOn:aDevice].
- dColors := dColors select:[:clr | clr notNil].
- dColors := dColors asSet.
- dColors addAll:((aDevice colorMap collect:[:c|c onDevice:aDevice])
- select:[:c | c colorId notNil]).
- ditherColors := aDevice availableDitherColors.
- ditherColors notNil ifTrue:[
- dColors addAll:ditherColors.
- ].
- dColors := dColors asArray.
- dColors size > 256 ifTrue:[
- dColors := dColors copyTo:256
- ].
- ^ self asFloydSteinbergDitheredPseudoFormUsing:dColors on:aDevice
- ].
-
- "
- again, this time allow wrong colors (loop while increasing allowed error)
- "
- error := 1.
- [fit] whileFalse:[
- fit := true.
- usedColors from:(lastOK+1) to:(usedColors size) do:[:aColorIndex |
- |devColor color
- r "{Class: SmallInteger }"
- g "{Class: SmallInteger }"
- b "{Class: SmallInteger }"
- mapIndex "{Class: SmallInteger }"
- rMask "{Class: SmallInteger }"
- gMask "{Class: SmallInteger }"
- bMask "{Class: SmallInteger }"|
-
- fit ifTrue:[
- gMask := bMask := rMask := m.
-
- mapIndex := aColorIndex + 1.
- color := colorMap at:mapIndex.
- r := (color red * 255 / 100.0) rounded.
- g := (color green * 255 / 100.0) rounded.
- b := (color blue * 255 / 100.0) rounded.
-
- color := Color red:((r bitShift:shift) bitAnd:rMask) * scale
- green:((g bitShift:shift) bitAnd:gMask) * scale
- blue:((b bitShift:shift) bitAnd:bMask) * scale.
+ ^ self anyImageAsPseudoFormOn:aDevice
- (color colorId notNil
- and:[color graphicsDevice == aDevice]) ifTrue:[
- "wow - an immediate hit"
- devColor := color.
- ] ifFalse:[
- devColor := color nearestOn:aDevice.
- (devColor notNil and:[(devColor deltaFrom:color) > error]) ifTrue:[
- devColor := nil
- ].
- devColor isNil ifTrue:[
- "
- no free color - on the first round, do a GC to flush unused
- colors - this may help if some colors where locked by already
- free images.
- "
- gcRound == 0 ifTrue:[
- ObjectMemory scavenge; finalize.
- devColor := color nearestOn:aDevice.
- (devColor notNil and:[(devColor deltaFrom:color) > error]) ifTrue:[
- devColor := nil
- ].
- gcRound := 1
- ].
- devColor isNil ifTrue:[
- gcRound == 1 ifTrue:[
- CollectGarbageWhenRunningOutOfColors ifTrue:[
- 'Depth8Image [info]: force GC for possible color reclamation.' infoPrintCR.
- ObjectMemory incrementalGC; finalize.
- devColor := color nearestOn:aDevice.
- (devColor notNil and:[(devColor deltaFrom:color) > error]) ifTrue:[
- devColor := nil
- ].
- ].
- gcRound := 2
- ]
- ]
- ].
- ].
- (devColor notNil and:[devColor colorId notNil]) ifTrue:[
- imgMap at:mapIndex put:devColor.
- lastOK := lastOK + 1.
- ] ifFalse:[
- fit := false
- ]
- ].
- ].
-
- fit ifTrue:[
- ('Depth8Image [info]: remaining colors with error <= %1' bindWith:error) infoPrintCR.
- ].
-
- error := error * 2.
- error > 100 ifTrue:[
- "
- break out, if the error becomes too big.
- "
- 'Depth8Image [info]: hard color allocation problem - revert to b&w for remaining colors' infoPrintCR.
- "
- map to b&w as a last fallback.
- (should really do a dither here)
- "
- usedColors from:(lastOK+1) to:(usedColors size) do:[:aColorIndex |
- |color
- mapIndex "{ Class: SmallInteger }"|
-
- mapIndex := aColorIndex + 1.
- color := colorMap at:mapIndex.
- color brightness > 0.4 ifTrue:[
- color := Color white.
- ] ifFalse:[
- color := Color black.
- ].
- imgMap at:mapIndex put:(color on:aDevice).
- ].
- fit := true.
- ]
- ].
-
- error > 10 ifTrue:[
- 'Depth8Image [info]: not enough colors for a reasonable image' infoPrintCR
- ] ifFalse:[
- 'Depth8Image [info]: not enough colors for exact picture' infoPrintCR.
- ]
- ].
-
- "
- create translation map (from image colors to allocated colorIds)
- "
- map := ByteArray new:256.
- 1 to:imgMap size do:[:i |
- |clr|
-
- (clr := imgMap at:i) notNil ifTrue:[
- map at:i put:clr colorId
- ]
- ].
-
- "
- does the device support 8-bit images ?
- "
- deviceDepth := aDevice depth.
- deviceDepth == 8 ifTrue:[
- has8BitImage := true.
- ] ifFalse:[
- has8BitImage := false.
- aDevice supportedImageFormats do:[:fmt |
- (fmt at:#bitsPerPixel) == 8 ifTrue:[
- has8BitImage := true.
- ]
- ]
- ].
-
- "
- finally, create a form on the device and copy (& translate)
- the pixel values
- "
- has8BitImage ifTrue:[
- pseudoBits := ByteArray uninitializedNew:(width * height).
-
- bytes expandPixels:8 "xlate only"
- width:width
- height:height
- into:pseudoBits
- mapping:map.
-
- map := nil.
-
- f := Form width:width height:height depth:deviceDepth on:aDevice.
- f isNil ifTrue:[^ nil].
- f colorMap:imgMap.
- f initGC.
- aDevice drawBits:pseudoBits bitsPerPixel:8 depth:deviceDepth
- width:width height:height
- x:0 y:0
- into:(f id) x:0 y:0
- width:width height:height with:(f gcId).
- ^ f
- ].
-
- "
- slow fall back: convert into appropriate depth image,
- by looping over each pixel individually
- "
- newImage := (Image implementorForDepth:deviceDepth) new.
- newImage width:width.
- newImage height:height.
- newImage bits:(ByteArray uninitializedNew:(height * newImage bytesPerRow)).
-
- 0 to:height-1 do:[:row |
- pixelRow := self rowAt:row.
- pixelRow
- expandPixels:8 "xlate only"
- width:width
- height:1
- into:pixelRow
- mapping:map.
- newImage rowAt:row putAll:pixelRow
- ].
-
- f := Form width:width height:height depth:deviceDepth on:aDevice.
- f isNil ifTrue:[^ nil].
- f colorMap:imgMap.
- f initGC.
-
- aDevice drawBits:(newImage bits) depth:deviceDepth width:width height:height
- x:0 y:0
- into:(f id) x:0 y:0
- width:width height:height with:(f gcId).
-
- ^ f
-
- "Modified: 15.10.1997 / 01:48:20 / cg"
+ "Modified: 19.10.1997 / 04:57:39 / cg"
!
paletteImageAsTrueColorFormOn:aDevice
@@ -1714,5 +1739,5 @@
!Depth8Image class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libview/Depth8Image.st,v 1.75 1997-10-15 11:23:11 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libview/Depth8Image.st,v 1.76 1997-10-21 18:20:15 cg Exp $'
! !
--- a/GLXWorkstat.st Tue Oct 21 20:11:53 1997 +0200
+++ b/GLXWorkstat.st Tue Oct 21 20:22:05 1997 +0200
@@ -24,7 +24,7 @@
* for simulation (using vogl), this is compiled with -DVGL
*
* New note: starting to support openGL (tm) (compile with -DOPENGL)
- * or its simulation (compile with -DOPENGL -DMESA)
+ * or its simulation (compile with -DMESA)
*/
/*
@@ -44,7 +44,9 @@
* these are not available on all gl's
*/
+#ifdef GLX
/* #define FULL_GLX */
+#endif
/*
* this is stupid, GLX type-defs String, which is also defined here ...
@@ -71,6 +73,12 @@
#include <stdio.h>
+#ifndef OPENGL
+# ifdef MESA
+# define OPENGL
+# endif
+#endif
+
#ifdef OPENGL /* SGI or others OPENGL library */
# include "GL/gl.h"
@@ -404,10 +412,10 @@
}
if (@global(ErrorPrinting) == true) {
- fprintf(stderr, "XWORKSTAT: x-error caught maj=%d (0x%x) min=%d (0x%x) resource=%x\n",
+ fprintf(stderr, "GLXWORKSTAT: x-error caught maj=%d (0x%x) min=%d (0x%x) resource=%x\n",
event->request_code, event->request_code,
event->minor_code, event->minor_code, event->resourceid);
- fprintf(stderr, "XWORKSTAT: x-error message is [%d] '%s'\n", event->error_code, lastErrorMsg);
+ fprintf(stderr, "GLXWORKSTAT: x-error message is [%d] '%s'\n", event->error_code, lastErrorMsg);
}
__errorInterruptWithIDAndParameter__(@symbol(DisplayError), __MKOBJ(dpy));
@@ -431,7 +439,7 @@
* this file has been just copied from a 4Dgifts demo ..
* (will need more than a day to show more ...)
*/
-#if defined(GLX) || defined(VGL)
+#if !defined(OPENGL)
# include <X11/Xlib.h>
# include <X11/Xutil.h>
@@ -460,7 +468,9 @@
"rgb double buffer",
};
-# ifndef VGL
+#endif /* GLX || VGL */
+
+#if defined(GLX) && !defined(VGL)
/*
* Dorky little helper function used to build up a GLXconfig array.
*/
@@ -472,7 +482,7 @@
ptr->mode = m;
ptr->arg = a;
}
-# endif /* not VGL */
+#endif /* GLX & not VGL */
static JMP_BUF errorReturn;
@@ -505,41 +515,56 @@
Window parent;
GLXWindowType type;
{
-# ifdef VGL
- Visual visual;
-# else
+#if !defined(OPENGL)
+# ifndef VGL
GLXconfig params[50];
GLXconfig* next;
GLXconfig* retconfig;
Colormap cmap = DefaultColormap(dpy, DefaultScreen(dpy));
+# endif
+#endif
+ Visual visual;
XVisualInfo *vis;
-# endif
XVisualInfo template;
XColor white;
XSetWindowAttributes cwa;
XWindowAttributes pwa;
int scr, i, nret;
Window win;
-# ifdef HAS_SIGACTION
+#ifdef HAS_SIGACTION
struct sigaction oldSig, newSig;
-# else
+#else
void *oldSig;
-# endif
-
+#endif
+
+#if !defined(OPENGL)
__catchExit(1);
+#endif
if (setjmp(errorReturn)) {
printf("hard error in GL - return\n");
-# ifdef HAS_SIGACTION
+#ifdef HAS_SIGACTION
sigaction(SIGSEGV, &oldSig, 0);
-# else
+#else
signal(SIGSEGV, oldSig);
-# endif
+#endif
+#if !defined(OPENGL)
__catchExit(0);
+#endif
return 0;
}
__CONT__
+ if (w <= 0) {
+ printf("GL: bad width: %d\n", w);
+ w = 1;
+ }
+ if (h <= 0) {
+ printf("GL: bad height: %d\n", h);
+ h = 1;
+ }
+
+#if !defined(OPENGL)
# ifdef VGL
/*
* I know what VGL supports; its somewhat unclean to hard code it here
@@ -559,14 +584,6 @@
scr = DefaultScreen(dpy);
visual.visualid = CopyFromParent;
cwa.border_pixel = 0; /* Even if we don't use it, it must be something */
- if (w <= 0) {
- printf("VGL: bad width: %d\n", w);
- w = 1;
- }
- if (h <= 0) {
- printf("VGL: bad height: %d\n", h);
- h = 1;
- }
win = XCreateWindow(dpy, parent, x, y, w, h,
borderWidth, DisplayPlanes(dpy, scr),
InputOutput, &visual,
@@ -717,8 +734,22 @@
*/
XSetErrorHandler(__XErrorHandler__);
# endif /* not VGL */
-
__catchExit(0);
+
+#else /* OPENGL | MESA */
+
+ scr = DefaultScreen(dpy);
+ visual.visualid = CopyFromParent;
+ cwa.border_pixel = 0; /* Even if we don't use it, it must be something */
+ win = XCreateWindow(dpy, parent, x, y, w, h,
+ borderWidth, DisplayPlanes(dpy, scr),
+ InputOutput, &visual,
+ CWBorderPixel, &cwa);
+
+ vis = XGetVisualInfo(dpy, VisualScreenMask|VisualIDMask, &visual, &nret);
+printf("vis is %x\n", vis);
+#endif /* GLX || VGL */
+
return win;
}
@@ -729,17 +760,11 @@
/*
* only needed for VGL - GLX does it automatically
*/
-# ifdef VGL
+#ifdef VGL
GLXunlink(dpy, win);
-# endif
+#endif
}
-#endif /* GLX or VGL */
-
-/*
- * end moved from GLXsupport.c
- */
-
/*
* helper for rotation - calls rot()
*/
@@ -752,8 +777,12 @@
if (__isFloat(angle)) {
f_angle = (float)(_floatVal(angle));
- if (f_angle != 0.0)
+ if (f_angle != 0.0) {
+#ifdef OPENGL
+#else
rot(f_angle, axis);
+#endif
+ }
return (true);
}
if (__isFraction(angle)
@@ -764,14 +793,22 @@
n = (float)(__intVal(_FractionInstPtr(angle)->f_numerator));
d = (float)(__intVal(_FractionInstPtr(angle)->f_denominator));
f_angle = n / d;
- if (f_angle != 0.0)
+ if (f_angle != 0.0) {
+#ifdef OPENGL
+#else
rot(f_angle, axis);
+#endif
+ }
return (true);
}
if (__isSmallInteger(angle)) {
f_angle = (float)(__intVal(angle));
- if (f_angle != 0.0)
+ if (f_angle != 0.0) {
+#ifdef OPENGL
+#else
rot(f_angle, axis);
+#endif
+ }
return (true);
}
return false;
@@ -1232,8 +1269,6 @@
startang and endang must be smallIntegers (10th of a degree)."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Coord c_x, c_y, c_radius;
Angle a_startang, a_endang;
@@ -1244,8 +1279,9 @@
_ANGLE_(endang, a_endang)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
arc(c_x, c_y, c_radius, a_startang, a_endang);
- RETURN (true);
#endif
%}
@@ -1258,8 +1294,6 @@
startang and endang must be smallIntegers (10th of a degree)."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Coord c_x, c_y, c_radius;
Angle a_startang, a_endang;
@@ -1270,8 +1304,9 @@
_ANGLE_(endang, a_endang)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
arcf(c_x, c_y, c_radius, a_startang, a_endang);
- RETURN (true);
#endif
%}
!
@@ -1281,8 +1316,6 @@
All arguments must be smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Icoord c_x, c_y, c_radius;
Angle a_startang, a_endang;
@@ -1293,8 +1326,9 @@
_ANGLE_(endang, a_endang)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
arcfi(c_x, c_y, c_radius, a_startang, a_endang);
- RETURN (true);
#endif
%}
!
@@ -1304,8 +1338,6 @@
All arguments must be (16bit) smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Scoord c_x, c_y, c_radius;
Angle a_startang, a_endang;
@@ -1316,8 +1348,9 @@
_ANGLE_(endang, a_endang)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
arcfs(c_x, c_y, c_radius, a_startang, a_endang);
- RETURN (true);
#endif
%}
!
@@ -1327,8 +1360,6 @@
All arguments must be smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Icoord c_x, c_y, c_radius;
Angle a_startang, a_endang;
@@ -1339,8 +1370,9 @@
_ANGLE_(endang, a_endang)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
arci(c_x, c_y, c_radius, a_startang, a_endang);
- RETURN (true);
#endif
%}
!
@@ -1350,22 +1382,19 @@
All arguments must be (16bit) smallIntegers."
%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
- {
- Scoord c_x, c_y, c_radius;
- Angle a_startang, a_endang;
-
- _SCOORD_(x, c_x)
- _SCOORD_(y, c_y)
- _SCOORD_(radius, c_radius)
- _ANGLE_(startang, a_startang)
- _ANGLE_(endang, a_endang)
-
- arcs(c_x, c_y, c_radius, a_startang, a_endang);
- RETURN (true);
- }
+ Scoord c_x, c_y, c_radius;
+ Angle a_startang, a_endang;
+
+ _SCOORD_(x, c_x)
+ _SCOORD_(y, c_y)
+ _SCOORD_(radius, c_radius)
+ _ANGLE_(startang, a_startang)
+ _ANGLE_(endang, a_endang)
+
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
+ arcs(c_x, c_y, c_radius, a_startang, a_endang);
#endif
%}
!
@@ -1375,19 +1404,16 @@
x/y/radius may be floats, fractions or smallIntegers."
%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
- {
- Coord c_x, c_y, c_radius;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- _COORD_ (radius, c_radius)
-
- circ(c_x, c_y, c_radius);
- RETURN (true);
- }
+ Coord c_x, c_y, c_radius;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ _COORD_ (radius, c_radius)
+
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
+ circ(c_x, c_y, c_radius);
#endif
%}
!
@@ -1398,8 +1424,6 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
{
Coord c_x, c_y, c_radius;
@@ -1407,10 +1431,11 @@
_COORD_ (y, c_y)
_COORD_ (radius, c_radius)
+#ifdef OPENGL
+#else
circf(c_x, c_y, c_radius);
- RETURN (true);
+#endif
}
-#endif
%}
!
@@ -1420,8 +1445,6 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
{
Icoord c_x, c_y, c_radius;
@@ -1429,10 +1452,11 @@
_ICOORD_ (y, c_y)
_ICOORD_ (radius, c_radius)
+#ifdef OPENGL
+#else
circfi(c_x, c_y, c_radius);
- RETURN (true);
+#endif
}
-#endif
%}
!
@@ -1442,8 +1466,6 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
{
Scoord c_x, c_y, c_radius;
@@ -1451,10 +1473,11 @@
_SCOORD_ (y, c_y)
_SCOORD_ (radius, c_radius)
+#ifdef OPENGL
+#else
circfs(c_x, c_y, c_radius);
- RETURN (true);
+#endif
}
-#endif
%}
!
@@ -1464,8 +1487,6 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
{
Icoord c_x, c_y, c_radius;
@@ -1473,10 +1494,11 @@
_ICOORD_ (y, c_y)
_ICOORD_ (radius, c_radius)
+#ifdef OPENGL
+#else
circi(c_x, c_y, c_radius);
- RETURN (true);
+#endif
}
-#endif
%}
!
@@ -1486,8 +1508,6 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
{
Scoord c_x, c_y, c_radius;
@@ -1495,10 +1515,11 @@
_SCOORD_ (y, c_y)
_SCOORD_ (radius, c_radius)
+#ifdef OPENGL
+#else
circs(c_x, c_y, c_radius);
- RETURN (true);
+#endif
}
-#endif
%}
! !
@@ -1509,7 +1530,9 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifndef OPENGL
popattributes();
+#endif
%}
"Modified: 19.3.1996 / 18:42:53 / cg"
@@ -1520,7 +1543,9 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifndef OPENGL
pushattributes();
+#endif
%}
"Modified: 19.3.1996 / 18:43:04 / cg"
@@ -1534,18 +1559,17 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
{
Coord c_x, c_y;
_COORD_ (x, c_x)
_COORD_ (y, c_y)
+#ifdef OPENGL
+#else
cmov2(c_x, c_y);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:17:38 / cg"
@@ -1557,18 +1581,17 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
{
Icoord c_x, c_y;
_ICOORD_ (x, c_x)
_ICOORD_ (y, c_y)
+#ifdef OPENGL
+#else
cmov2i(c_x, c_y);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:17:43 / cg"
@@ -1580,18 +1603,17 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
{
Scoord c_x, c_y;
_SCOORD_ (x, c_x)
_SCOORD_ (y, c_y)
+#ifdef OPENGL
+#else
cmov2s(c_x, c_y);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:17:47 / cg"
@@ -1603,8 +1625,6 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
{
Coord c_x, c_y, c_z;
@@ -1612,10 +1632,11 @@
_COORD_ (y, c_y)
_COORD_ (z, c_z)
+#ifdef OPENGL
+#else
cmov(c_x, c_y, c_z);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:17:22 / cg"
@@ -1627,8 +1648,6 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
{
Icoord c_x, c_y, c_z;
@@ -1636,10 +1655,11 @@
_ICOORD_ (y, c_y)
_ICOORD_ (z, c_z)
+#ifdef OPENGL
+#else
cmovi(c_x, c_y, c_z);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:17:55 / cg"
@@ -1651,8 +1671,6 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
{
Scoord c_x, c_y, c_z;
@@ -1660,10 +1678,11 @@
_SCOORD_ (y, c_y)
_SCOORD_ (z, c_z)
+#ifdef OPENGL
+#else
cmovs(c_x, c_y, c_z);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:17:59 / cg"
@@ -1674,16 +1693,18 @@
| x y |
%{
-#ifdef GLX
short s_x, s_y;
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
+# ifdef GLX
getcpos(&s_x, &s_y);
x = __MKSMALLINT(s_x);
y = __MKSMALLINT(s_y);
-#endif
-%}
-.
+# endif
+#endif
+%}.
^x @ y
! !
@@ -1694,7 +1715,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
clear();
+#endif
%}
!
@@ -1702,29 +1726,28 @@
"clear to a color (cval) and clear z buffer to zval simultaniously"
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
-
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
+# ifdef GLX
czclear((ulong)__intVal(cval), __intVal(zval));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+# endif
+#endif
+%}
!
glxZClearIn:aGLXWindowId
"clear z buffer"
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
+# ifdef GLX
zclear();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+# endif
+#endif
+%}
! !
!GLXWorkstation methodsFor:'color'!
@@ -1741,15 +1764,14 @@
#else
if (__isSmallInteger(index)) {
color((Colorindex)(__intVal(index)));
- RETURN (true);
+ RETURN (self);
}
if (__isFloat(index)) {
colorf((float)(_floatVal(index)));
- RETURN (true);
+ RETURN (self);
}
#endif
-%}.
- ^ false
+%}
!
glxColorRed:r green:g blue:b alpha:a in:aGLXWindowId
@@ -1757,8 +1779,6 @@
The args must be integer values within 0..255"
%{ /* NOCONTEXT */
-
-#ifdef GLX
short s_r, s_g, s_b, s_a;
_INT_(r, s_r);
@@ -1766,12 +1786,10 @@
_INT_(b, s_b);
_INT_(a, s_a);
SETWIN(aGLXWindowId)
+#ifdef GLX
cpack((((((s_a<<8) | s_b) << 8) | s_g) << 8) | s_r);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxColorRed:r green:g blue:b in:aGLXWindowId
@@ -1779,36 +1797,29 @@
The args must be integer values in 0..255"
%{ /* NOCONTEXT */
-
-#ifdef GLX
short s_r, s_g, s_b;
_INT_(r, s_r);
_INT_(g, s_g);
_INT_(b, s_b);
SETWIN(aGLXWindowId)
+#ifdef GLX
RGBcolor(s_r, s_g, s_b);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxLrgbrangeRmin: rmin gmin: gmin bmin: bmin rmax: rmax gmax: gmax bmax: bmax
znear: znear zfar: zfar in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
lRGBrange(_shortVal(rmin), _shortVal(gmin), _shortVal(bmin),
_shortVal(rmax), _shortVal(gmax), _shortVal(bmax),
_longVal(znear), _longVal(zfar));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxMapcolorI: i red: red green: green blue: blue in: aGLXWindowId
@@ -1820,7 +1831,6 @@
#ifdef OPENGL
#else
mapcolor(_colorindexVal(i), _shortVal(red), _shortVal(green), _shortVal(blue));
- RETURN (true);
#endif
%}
!
@@ -1829,14 +1839,11 @@
"change the color used for text drawing"
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
textcolor(_colorindexVal(tcolor));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
! !
!GLXWorkstation methodsFor:'curves'!
@@ -1846,8 +1853,9 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef GLX
curvebasis(_shortVal(basid));
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:47:09 / cg"
@@ -1859,8 +1867,9 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef GLX
curveit(_shortVal(iterationcount));
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:48:57 / cg"
@@ -1871,8 +1880,9 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef GLX
curveprecision(_shortVal(nsegments));
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:47:43 / cg"
@@ -1891,7 +1901,6 @@
frontbuffer(FALSE);
# endif
backbuffer(TRUE);
- RETURN (true);
#endif
%}
!
@@ -1907,7 +1916,6 @@
#ifdef OPENGL
#else
backbuffer(_booleanVal(b));
- RETURN (true);
#endif
%}
@@ -1919,8 +1927,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
doublebuffer();
- RETURN (true);
+#endif
%}
!
@@ -1935,7 +1945,6 @@
backbuffer(FALSE);
# endif
frontbuffer(TRUE);
- RETURN (true);
#endif
%}
!
@@ -1951,7 +1960,6 @@
#ifdef OPENGL
#else
frontbuffer(_booleanVal(b));
- RETURN (true);
#endif
%}
@@ -1966,7 +1974,6 @@
#ifdef OPENGL
#else
singlebuffer();
- RETURN (true);
#endif
%}
!
@@ -1982,7 +1989,6 @@
#ifdef OPENGL
#else
swapbuffers();
- RETURN (true);
#endif
%}
@@ -1995,9 +2001,11 @@
"start a closed line"
%{ /* NOCONTEXT */
+#ifdef OPENGL
+#else
SETWIN(aGLXWindowId)
bgnclosedline();
- RETURN (true);
+#endif
%}
!
@@ -2005,8 +2013,11 @@
"start a line group"
%{ /* NOCONTEXT */
+#ifdef OPENGL
+#else
SETWIN(aGLXWindowId)
bgnline();
+#endif
%}
!
@@ -2014,9 +2025,11 @@
"start a point-group"
%{ /* NOCONTEXT */
+#ifdef OPENGL
+#else
SETWIN(aGLXWindowId)
bgnpoint();
- RETURN (true);
+#endif
%}
!
@@ -2024,9 +2037,11 @@
"start a polygon"
%{ /* NOCONTEXT */
+#ifdef OPENGL
+#else
SETWIN(aGLXWindowId)
bgnpolygon();
- RETURN (true);
+#endif
%}
!
@@ -2034,9 +2049,11 @@
"start a quadrilateral strip"
%{ /* NOCONTEXT */
+#ifdef OPENGL
+#else
SETWIN(aGLXWindowId)
bgnqstrip();
- RETURN (true);
+#endif
%}
!
@@ -2044,9 +2061,11 @@
"start a triangle mesh"
%{ /* NOCONTEXT */
+#ifdef OPENGL
+#else
SETWIN(aGLXWindowId)
bgntmesh();
- RETURN (true);
+#endif
%}
!
@@ -2054,9 +2073,11 @@
"end a closed line"
%{ /* NOCONTEXT */
+#ifdef OPENGL
+#else
SETWIN(aGLXWindowId)
endclosedline();
- RETURN (true);
+#endif
%}
!
@@ -2064,9 +2085,11 @@
"end a line group"
%{ /* NOCONTEXT */
+#ifdef OPENGL
+#else
SETWIN(aGLXWindowId)
endline();
- RETURN (true);
+#endif
%}
!
@@ -2074,9 +2097,11 @@
"end a point group"
%{ /* NOCONTEXT */
+#ifdef OPENGL
+#else
SETWIN(aGLXWindowId)
endpoint();
- RETURN (true);
+#endif
%}
!
@@ -2084,9 +2109,11 @@
"end a polygon"
%{ /* NOCONTEXT */
+#ifdef OPENGL
+#else
SETWIN(aGLXWindowId)
endpolygon();
- RETURN (true);
+#endif
%}
!
@@ -2094,9 +2121,11 @@
"end a quadrilateral strip"
%{ /* NOCONTEXT */
+#ifdef OPENGL
+#else
SETWIN(aGLXWindowId)
endqstrip();
- RETURN (true);
+#endif
%}
!
@@ -2104,9 +2133,11 @@
"end a triangle mesh"
%{ /* NOCONTEXT */
+#ifdef OPENGL
+#else
SETWIN(aGLXWindowId)
endtmesh();
- RETURN (true);
+#endif
%}
! !
@@ -2134,18 +2165,17 @@
"change the graphics position to a 2D point, as passed in x/y"
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Coord c_x, c_y;
_COORD_ (x, c_x)
_COORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
move2(c_x, c_y);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:15:02 / cg"
@@ -2156,18 +2186,17 @@
The arguments must be smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Icoord c_x, c_y;
_ICOORD_ (x, c_x)
_ICOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
move2i(c_x, c_y);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:15:08 / cg"
@@ -2178,18 +2207,17 @@
The arguments must be smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Scoord c_x, c_y;
_SCOORD_ (x, c_x)
_SCOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
move2s(c_x, c_y);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:15:13 / cg"
@@ -2199,17 +2227,16 @@
"change the graphics position to a 3D point, as passed in vector v"
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
float vec[3], *c_v;
if (! (c_v = __glx_getFloatsFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
move((Coord)(c_v[0]), (Coord)(c_v[1]), (Coord)(c_v[2]));
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:14:29 / cg"
@@ -2219,8 +2246,6 @@
"change the graphics position to a 3D point, as passed in x/y/z"
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Coord c_x, c_y, c_z;
@@ -2228,10 +2253,11 @@
_COORD_ (y, c_y)
_COORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
move(c_x, c_y, c_z);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:14:38 / cg"
@@ -2242,8 +2268,6 @@
The arguments must be smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Icoord c_x, c_y, c_z;
@@ -2251,10 +2275,11 @@
_ICOORD_ (y, c_y)
_ICOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
movei(c_x, c_y, c_z);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:14:44 / cg"
@@ -2265,8 +2290,6 @@
The arguments must be smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Scoord c_x, c_y, c_z;
@@ -2274,10 +2297,11 @@
_SCOORD_ (y, c_y)
_SCOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
moves(c_x, c_y, c_z);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:14:48 / cg"
@@ -2288,17 +2312,16 @@
the relative distance is passed in vector v"
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
float vec[2], *c_v;
if (! (c_v = __glx_getFloatsFromInto(v, vec, 2))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rmv2((Coord)(c_v[0]), (Coord)(c_v[1]));
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:15:57 / cg"
@@ -2309,18 +2332,17 @@
the relative distance is passed in x/y"
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Coord c_x, c_y;
_COORD_ (x, c_x)
_COORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rmv2(c_x, c_y);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:16:42 / cg"
@@ -2332,18 +2354,17 @@
The arguments must be smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Icoord c_x, c_y;
_ICOORD_ (x, c_x)
_ICOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rmv2i(c_x, c_y);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:16:39 / cg"
@@ -2355,18 +2376,17 @@
The arguments must be smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Scoord c_x, c_y;
_SCOORD_ (x, c_x)
_SCOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rmv2s(c_x, c_y);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:16:33 / cg"
@@ -2377,17 +2397,16 @@
the relative distance is passed in vector v"
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
float vec[3], *c_v;
if (! (c_v = __glx_getFloatsFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rmv((Coord)(c_v[0]), (Coord)(c_v[1]), (Coord)(c_v[2]));
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:16:08 / cg"
@@ -2398,8 +2417,6 @@
the relative distance is passed in x/y/z"
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Coord c_x, c_y, c_z;
@@ -2407,10 +2424,11 @@
_COORD_ (y, c_y)
_COORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rmv(c_x, c_y, c_z);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:16:16 / cg"
@@ -2422,8 +2440,6 @@
The arguments must be smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Icoord c_x, c_y, c_z;
@@ -2431,10 +2447,11 @@
_ICOORD_ (y, c_y)
_ICOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rmvi(c_x, c_y, c_z);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:16:21 / cg"
@@ -2446,8 +2463,6 @@
The arguments must be smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Scoord c_x, c_y, c_z;
@@ -2455,10 +2470,11 @@
_SCOORD_ (y, c_y)
_SCOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rmvs(c_x, c_y, c_z);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:16:25 / cg"
@@ -2503,7 +2519,7 @@
if (ISCONNECTED) {
_INST(hasStereoExtension) = false;
-#if defined(XSGIStereo) && !defined(VGL)
+#if defined(XSGIStereo) && defined(GLX)
if (_INST(glOK) == true) {
if (XQueryExtension(dpy, "SGIFullScreenStereo", &dummy, &dummy, &dummy))
_INST(hasStereoExtension) = true;
@@ -2519,11 +2535,10 @@
"define a line style"
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
deflinestyle(_shortVal(n), _linestyleVal(ls));
- RETURN (true);
#endif
%}
!
@@ -2540,7 +2555,6 @@
#ifdef OPENGL
#else
draw2((Coord)(c_v[0]), (Coord)(c_v[1]));
- RETURN (true);
#endif
%}
@@ -2552,18 +2566,17 @@
to a new 2D position, passed in x/y."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Coord c_x, c_y;
_COORD_ (x, c_x)
_COORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
draw2(c_x, c_y);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:03:50 / cg"
@@ -2574,18 +2587,17 @@
to a new 2D position, passed in x/y."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Icoord c_x, c_y;
_ICOORD_ (x, c_x)
_ICOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
draw2i(c_x, c_y);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:04:07 / cg"
@@ -2596,18 +2608,17 @@
to a new 2D position, passed in x/y."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Scoord c_x, c_y;
_SCOORD_ (x, c_x)
_SCOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
draw2s(c_x, c_y);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:04:19 / cg"
@@ -2625,7 +2636,6 @@
#ifdef OPENGL
#else
draw((Coord)(c_v[0]), (Coord)(c_v[1]), (Coord)(c_v[2]));
- RETURN (true);
#endif
%}
@@ -2638,8 +2648,6 @@
The arguments may be floats, fractions or smallIntegers"
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Coord c_x, c_y, c_z;
@@ -2647,10 +2655,11 @@
_COORD_ (y, c_y)
_COORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
draw(c_x, c_y, c_z);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:04:46 / cg"
@@ -2662,8 +2671,6 @@
The arguments must be smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Icoord c_x, c_y, c_z;
@@ -2671,10 +2678,11 @@
_ICOORD_ (y, c_y)
_ICOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
drawi(c_x, c_y, c_z);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:04:54 / cg"
@@ -2686,8 +2694,6 @@
The arguments must be (16bit) smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Scoord c_x, c_y, c_z;
@@ -2695,10 +2701,11 @@
_SCOORD_ (y, c_y)
_SCOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
draws(c_x, c_y, c_z);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:05:01 / cg"
@@ -2709,8 +2716,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
linewidth(_shortVal(n));
- RETURN (true);
+#endif
%}
!
@@ -2719,7 +2728,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
linewidthf(_floatVal(n));
+#endif
RETURN (true);
%}
!
@@ -2729,14 +2741,13 @@
to a new 2D position, passing the relative distance in the vector v."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
float vec[2], *c_v;
if (! (c_v = __glx_getFloatsFromInto(v, vec, 2))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rdr2((Coord)(c_v[0]), (Coord)(c_v[1]));
- RETURN (true);
#endif
%}
@@ -2748,15 +2759,14 @@
to a new 2D position, passing the relative distance in x/y."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Coord c_x, c_y;
_COORD_ (x, c_x)
_COORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rdr2(c_x, c_y);
- RETURN (true);
#endif
%}
@@ -2768,15 +2778,14 @@
to a new 2D position, passing the relative distance in x/y."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Icoord c_x, c_y;
_ICOORD_ (x, c_x)
_ICOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rdr2i(c_x, c_y);
- RETURN (true);
#endif
%}
@@ -2788,15 +2797,14 @@
to a new 2D position, passing the relative distance in x/y."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Scoord c_x, c_y;
_SCOORD_ (x, c_x)
_SCOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rdr2s(c_x, c_y);
- RETURN (true);
#endif
%}
@@ -2808,14 +2816,13 @@
to a new 3D position, passing the relative distance in the vector v."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
float vec[3], *c_v;
if (! (c_v = __glx_getFloatsFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rdr((Coord)(c_v[0]), (Coord)(c_v[1]), (Coord)(c_v[2]));
- RETURN (true);
#endif
%}
@@ -2827,16 +2834,15 @@
to a new 3D position, passing the relative distance in x/y/z."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Coord c_x, c_y, c_z;
_COORD_ (x, c_x)
_COORD_ (y, c_y)
_COORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rdr(c_x, c_y, c_z);
- RETURN (true);
#endif
%}
@@ -2848,16 +2854,15 @@
to a new 3D position, passing the relative distance in x/y/z."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Icoord c_x, c_y, c_z;
_ICOORD_ (x, c_x)
_ICOORD_ (y, c_y)
_ICOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rdri(c_x, c_y, c_z);
- RETURN (true);
#endif
%}
@@ -2869,16 +2874,15 @@
to a new 3D position, passing the relative distance in x/y/z."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Scoord c_x, c_y, c_z;
_SCOORD_ (x, c_x)
_SCOORD_ (y, c_y)
_SCOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rdrs(c_x, c_y, c_z);
- RETURN (true);
#endif
%}
@@ -2890,11 +2894,11 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
setlinestyle(_shortVal(index));
- RETURN (true);
-%}
-.
- ^ false
+#endif
+%}
! !
!GLXWorkstation methodsFor:'materials & lights'!
@@ -2932,17 +2936,14 @@
else if (target == @symbol(lightModel))
defType = LMODEL;
else {
- RETURN (false);
+ RETURN (nil);
}
_INT_ (index, i_index);
SETWIN(aGLXWindowId)
lmbind(defType, i_index);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxLmdef:what index:index np:np props:props in:aGLXWindowId
@@ -2965,7 +2966,7 @@
else if (what == @symbol(lightModel))
defType = DEFLMODEL;
else {
- RETURN (false);
+ RETURN (nil);
}
_INT_ (index, i_index);
@@ -2981,17 +2982,14 @@
ninstVars = __intVal(_ClassInstPtr(cls)->c_ninstvars);
fp = (float *) &(_InstPtr(props)->i_instvars[ninstVars]);
} else {
- RETURN (false);
+ RETURN (nil);
}
}
}
SETWIN(aGLXWindowId)
lmdef(defType, i_index, i_np, fp);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxTevbind:target index:index in:aGLXWindowId
@@ -3008,16 +3006,13 @@
if (target == @symbol(env0)) {
t = TV_ENV0;
} else {
- RETURN (false);
+ RETURN (nil);
}
}
SETWIN(aGLXWindowId)
tevbind(t, __intVal(index));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxTevdef:index np:np props:props in:aGLXWindowId
@@ -3030,11 +3025,8 @@
SETWIN(aGLXWindowId)
fp = __glx_getFloatsFromFloatArrayInto(props, fbuff);
tevdef(__intVal(index), __intVal(np), fp);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxTexDef2d:index nc:nc width:w height:h bits:image np:np props:props in:aGLXWindowId
@@ -3058,12 +3050,9 @@
SETWIN(aGLXWindowId)
texdef2d(__intVal(index), __intVal(nc), __intVal(w), __intVal(h),
(const unsigned long *)cp, __intVal(np), fp);
- RETURN (true);
}
#endif
%}
-.
- ^ false
!
glxTexDef3d:index nc:nc width:w height:h depth:d bits:image np:np props:props in:aGLXWindowId
@@ -3088,12 +3077,9 @@
texdef3d(__intVal(index), __intVal(nc), __intVal(w), __intVal(h),
__intVal(d),
(const unsigned long *)cp, __intVal(np), fp);
- RETURN (true);
}
#endif
%}
-.
- ^ false
!
glxTexbind:target index:index in:aGLXWindowId
@@ -3114,16 +3100,13 @@
} else if (target == @symbol(textureIdle)) {
t = TX_TEXTURE_IDLE;
} else {
- RETURN (false);
+ RETURN (nil);
}
}
SETWIN(aGLXWindowId)
texbind(t, __intVal(index));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
! !
!GLXWorkstation methodsFor:'matrix stack'!
@@ -3140,10 +3123,8 @@
SETWIN(aGLXWindowId)
getmatrix(matrix);
if (! __glx_putFloatsFromInto(matrix, arrayOf16Floats, 16)) RETURN(false);
- RETURN (true);
-#endif
-%}.
- ^ false
+#endif
+%}
!
glxLoadMatrix:arrayOf16Floats in:aGLXWindowId
@@ -3159,7 +3140,6 @@
if (! (m = __glx_getFloatsFromMatrixInto(arrayOf16Floats, &matrix))) RETURN (false);
SETWIN(aGLXWindowId)
loadmatrix(*m);
- RETURN (true);
#endif
%}
!
@@ -3177,7 +3157,6 @@
if (! (m = __glx_getFloatsFromMatrixInto(arrayOf16Floats, &matrix))) RETURN (false);
SETWIN(aGLXWindowId)
multmatrix(*m);
- RETURN (true);
#endif
%}
!
@@ -3187,7 +3166,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
popmatrix();
+#endif
%}
!
@@ -3196,7 +3178,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pushmatrix();
+#endif
%}
! !
@@ -3209,8 +3194,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
gconfig();
- RETURN (true);
+#endif
%}
!
@@ -3414,27 +3401,22 @@
"start a NURBS curve def - in real GL only"
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
bgncurve();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxBeginSurfaceIn:aGLXWindowId
"start a NURBS surface def - in real GL only"
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
bgnsurface();
- RETURN (true);
-#endif
-%}.
- ^ false
+#endif
+%}
!
glxDefBasis:id mat:aMatrix in:aGLXWindowId
@@ -3450,11 +3432,9 @@
if (__isSmallInteger(id)) {
SETWIN(aGLXWindowId)
defbasis((short)(__intVal(id)), *m);
- RETURN (true);
}
#endif
-%}.
- ^ false
+%}
"Modified: 19.3.1996 / 18:52:56 / cg"
!
@@ -3463,26 +3443,22 @@
"end a NURBS curve def - in real GL only"
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
endcurve();
- RETURN (true);
-#endif
-%}.
- ^ false
+#endif
+%}
!
glxEndSurfaceIn:aGLXWindowId
"end a NURBS surface def - in real GL only"
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
endsurface();
- RETURN (true);
-#endif
-%}.
- ^ false
+#endif
+%}
!
glxNurbsSurfaceUKnotCount: uKnotCount uKnot: uKnot
@@ -3533,11 +3509,12 @@
%{ /* NOCONTEXT */
if (__bothSmallInteger(u, v)) {
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
patchbasis((long)__intVal(u), (long)__intVal(v));
- RETURN (true);
+#endif
}
-%}.
- ^ false
+%}
"Modified: 19.3.1996 / 18:53:18 / cg"
!
@@ -3548,11 +3525,12 @@
%{ /* NOCONTEXT */
if (__bothSmallInteger(u, v)) {
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
patchcurves((long)__intVal(u), (long)__intVal(v));
- RETURN (true);
+#endif
}
-%}.
- ^ false
+%}
"Modified: 19.3.1996 / 18:53:34 / cg"
!
@@ -3563,11 +3541,12 @@
%{ /* NOCONTEXT */
if (__bothSmallInteger(u, v)) {
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
patchprecision((long)__intVal(u), (long)__intVal(v));
- RETURN (true);
+#endif
}
-%}.
- ^ false
+%}
!
glxPatchX:arrayOf16XFloats y:arrayOf16YFloats z:arrayOf16ZFloats in:aGLXWindowId
@@ -3580,12 +3559,14 @@
Matrix matrixX, matrixY, matrixZ;
Matrix *mX, *mY, *mZ;
- if (! (mX = __glx_getFloatsFromMatrixInto(arrayOf16XFloats, &matrixX))) RETURN (false);
- if (! (mY = __glx_getFloatsFromMatrixInto(arrayOf16YFloats, &matrixY))) RETURN (false);
- if (! (mZ = __glx_getFloatsFromMatrixInto(arrayOf16ZFloats, &matrixZ))) RETURN (false);
+ if (! (mX = __glx_getFloatsFromMatrixInto(arrayOf16XFloats, &matrixX)))
+ RETURN (nil);
+ if (! (mY = __glx_getFloatsFromMatrixInto(arrayOf16YFloats, &matrixY)))
+ RETURN (nil);
+ if (! (mZ = __glx_getFloatsFromMatrixInto(arrayOf16ZFloats, &matrixZ)))
+ RETURN (nil);
SETWIN(aGLXWindowId)
patch(*mX, *mY, *mZ);
- RETURN (true);
#endif
%}
@@ -3602,13 +3583,16 @@
Matrix matrixX, matrixY, matrixZ, matrixW;
Matrix *mX, *mY, *mZ, *mW;
- if (! (mX = __glx_getFloatsFromMatrixInto(arrayOf16XFloats, &matrixX))) RETURN (false);
- if (! (mY = __glx_getFloatsFromMatrixInto(arrayOf16YFloats, &matrixY))) RETURN (false);
- if (! (mZ = __glx_getFloatsFromMatrixInto(arrayOf16ZFloats, &matrixZ))) RETURN (false);
- if (! (mW = __glx_getFloatsFromMatrixInto(arrayOf16WFloats, &matrixW))) RETURN (false);
+ if (! (mX = __glx_getFloatsFromMatrixInto(arrayOf16XFloats, &matrixX)))
+ RETURN (nil);
+ if (! (mY = __glx_getFloatsFromMatrixInto(arrayOf16YFloats, &matrixY)))
+ RETURN (nil);
+ if (! (mZ = __glx_getFloatsFromMatrixInto(arrayOf16ZFloats, &matrixZ)))
+ RETURN (nil);
+ if (! (mW = __glx_getFloatsFromMatrixInto(arrayOf16WFloats, &matrixW)))
+ RETURN (nil);
SETWIN(aGLXWindowId)
rpatch(*mX, *mY, *mZ, *mW);
- RETURN (true);
#endif
%}
@@ -3629,10 +3613,8 @@
rectcopy(_screencoordVal(x1), _screencoordVal(y1),
_screencoordVal(x2), _screencoordVal(y2),
_screencoordVal(newx), _screencoordVal(newy));
- RETURN (true);
-#endif
-%}.
- ^ false
+#endif
+%}
! !
!GLXWorkstation methodsFor:'pixel reading'!
@@ -3701,11 +3683,8 @@
}
readsource(what);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxRectreadX1:x1 y1:y1 x2:x2 y2:y2 h:viewHeight to:dest in:aGLXWindowId
@@ -3785,7 +3764,7 @@
%{
#ifdef VGL
- if (__isSmallInteger(x) && __isSmallInteger(y)) {
+ if (__bothSmallInteger(x, y)) {
SETWIN(aGLXWindowId)
RETURN (__MKSMALLINT(X11_getPixel(__intVal(x), __intVal(y))));
}
@@ -3802,15 +3781,14 @@
"plot a point in x, y, 0."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Coord c_x, c_y;
_COORD_ (x, c_x)
_COORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pnt2(c_x, c_y);
- RETURN (true);
#endif
%}
@@ -3821,15 +3799,14 @@
"plot a point in x, y, 0."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Icoord c_x, c_y;
_ICOORD_ (x, c_x)
_ICOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pnt2i(c_x, c_y);
- RETURN (true);
#endif
%}
@@ -3840,15 +3817,14 @@
"plot a point in x, y, 0."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Scoord c_x, c_y;
_SCOORD_ (x, c_x)
_SCOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pnt2s(c_x, c_y);
- RETURN (true);
#endif
%}
@@ -3859,16 +3835,15 @@
"plot a point in x, y, z."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Coord c_x, c_y, c_z;
_COORD_ (x, c_x)
_COORD_ (y, c_y)
_COORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pnt(c_x, c_y, c_z);
- RETURN (true);
#endif
%}
@@ -3879,16 +3854,15 @@
"plot a point in x, y, z."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Icoord c_x, c_y, c_z;
_ICOORD_ (x, c_x)
_ICOORD_ (y, c_y)
_ICOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pnti(c_x, c_y, c_z);
- RETURN (true);
#endif
%}
@@ -3899,16 +3873,15 @@
"plot a point in x, y, z."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Scoord c_x, c_y, c_z;
_SCOORD_ (x, c_x)
_SCOORD_ (y, c_y)
_SCOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pnts(c_x, c_y, c_z);
- RETURN (true);
#endif
%}
@@ -3918,27 +3891,21 @@
glxPntsize: n in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
pntsize(_shortVal(n));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxPntsizef: n in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
pntsizef(_floatVal(n));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
! !
!GLXWorkstation methodsFor:'polygons'!
@@ -3949,8 +3916,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
backface(_booleanVal(b));
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:26:50 / cg"
@@ -3961,8 +3930,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
concave(_booleanVal(b));
- RETURN (true);
+#endif
%}
!
@@ -3974,13 +3945,11 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
frontface(_booleanVal(b));
- RETURN (true);
-%}
-.
- ^ false
-
- "Modified: 19.3.1996 / 18:27:50 / cg"
+#endif
+%}
!
glxPdr2X: x y: y in: aGLXWindowId
@@ -3992,11 +3961,11 @@
_COORD_ (x, c_x)
_COORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pdr2(c_x, c_y);
- RETURN (true);
-%}
-
- "Modified: 19.3.1996 / 18:33:09 / cg"
+#endif
+%}
!
glxPdr2iX: x y: y in: aGLXWindowId
@@ -4008,8 +3977,10 @@
_ICOORD_ (x, c_x)
_ICOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pdr2i(c_x, c_y);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:33:28 / cg"
@@ -4024,8 +3995,10 @@
_SCOORD_ (x, c_x)
_SCOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pdr2s(c_x, c_y);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:34:03 / cg"
@@ -4041,8 +4014,10 @@
_COORD_ (y, c_y)
_COORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pdr(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:34:06 / cg"
@@ -4058,8 +4033,10 @@
_ICOORD_ (y, c_y)
_ICOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pdri(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:34:11 / cg"
@@ -4075,8 +4052,10 @@
_SCOORD_ (y, c_y)
_SCOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pdrs(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:34:14 / cg"
@@ -4091,8 +4070,10 @@
_COORD_ (x, c_x)
_COORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pmv2(c_x, c_y);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:32:45 / cg"
@@ -4107,8 +4088,10 @@
_ICOORD_ (x, c_x)
_ICOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pmv2i(c_x, c_y);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:32:42 / cg"
@@ -4123,8 +4106,10 @@
_SCOORD_ (x, c_x)
_SCOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pmv2s(c_x, c_y);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:32:38 / cg"
@@ -4140,8 +4125,10 @@
_COORD_ (y, c_y)
_COORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pmv(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:31:52 / cg"
@@ -4157,8 +4144,10 @@
_ICOORD_ (y, c_y)
_ICOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pmvi(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:31:59 / cg"
@@ -4174,8 +4163,10 @@
_SCOORD_ (y, c_y)
_SCOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pmvs(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:32:03 / cg"
@@ -4187,8 +4178,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
polymode(_longVal(mode));
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:29:32 / cg"
@@ -4203,8 +4196,10 @@
_COORD_ (x, c_x)
_COORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rpdr2(c_x, c_y);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:34:31 / cg"
@@ -4219,8 +4214,10 @@
_ICOORD_ (x, c_x)
_ICOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rpdr2i(c_x, c_y);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:34:36 / cg"
@@ -4235,8 +4232,10 @@
_SCOORD_ (x, c_x)
_SCOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rpdr2s(c_x, c_y);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:34:40 / cg"
@@ -4252,8 +4251,10 @@
_COORD_ (y, c_y)
_COORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rpdr(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:34:48 / cg"
@@ -4269,8 +4270,10 @@
_ICOORD_ (y, c_y)
_ICOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rpdri(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:34:51 / cg"
@@ -4286,8 +4289,10 @@
_SCOORD_ (y, c_y)
_SCOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rpdrs(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:34:55 / cg"
@@ -4302,8 +4307,10 @@
_COORD_ (x, c_x)
_COORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rpmv2(c_x, c_y);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:37:15 / cg"
@@ -4318,8 +4325,10 @@
_ICOORD_ (x, c_x)
_ICOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rpmv2i(c_x, c_y);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:37:20 / cg"
@@ -4334,8 +4343,10 @@
_SCOORD_ (x, c_x)
_SCOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rpmv2s(c_x, c_y);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:38:06 / cg"
@@ -4351,8 +4362,10 @@
_COORD_ (y, c_y)
_COORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rpmv(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:38:03 / cg"
@@ -4368,8 +4381,10 @@
_ICOORD_ (y, c_y)
_ICOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rpmvi(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:37:53 / cg"
@@ -4385,8 +4400,10 @@
_SCOORD_ (y, c_y)
_SCOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rpmvs(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:37:58 / cg"
@@ -4403,14 +4420,17 @@
#ifdef VGL
RETURN (__MKSTRING("vogl"));
#else
+# ifdef GLX
char buffer[128];
if (_INST(glOK) == true) {
gversion(buffer);
RETURN (__MKSTRING(buffer));
- } else {
- RETURN (nil);
}
+ RETURN (nil);
+# else
+ RETURN (nil);
+# endif
#endif
%}
@@ -4423,13 +4443,13 @@
"Returns the number if bit planes available on the device."
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
RETURN (__MKSMALLINT(getplanes()));
#endif
-%}
-.
- ^ false
+%}.
+ ^ 0
"Modified: 19.3.1996 / 18:50:44 / cg"
!
@@ -4447,13 +4467,30 @@
!
isTrueGL
- "return true, if this is a true GL (as opposed to a simulated VOGL)"
+ "return true, if this is a true GL (as opposed to a simulated VOGL).
+ Returns false for all openGL systems."
%{ /* NOCONTEXT */
#ifdef VGL
RETURN ( false );
#else
+# ifdef GLX
RETURN ( true );
+# else
+ RETURN (false);
+# endif
+#endif
+%}
+!
+
+isOpenGL
+ "return true, if this is an openGL (as opposed to a GL)"
+
+%{ /* NOCONTEXT */
+#ifdef OPENGL
+ RETURN ( true );
+#else
+ RETURN ( false );
#endif
%}
!
@@ -4461,7 +4498,8 @@
maxZValue
"return the max. Z value (only valid if z-buffer is supported)"
%{
-#ifdef GLX
+#ifndef OPENGL
+# ifdef GD_ZMAX
long zMax;
if (_INST(glOK) == true) {
@@ -4472,6 +4510,7 @@
}
RETURN ( __MKLARGEINT(zMax) );
}
+# endif
#endif
%}.
^ nil
@@ -4484,10 +4523,16 @@
%{ /* NOCONTEXT */
-#ifdef GLX
+#ifndef OPENGL
+# ifdef VGL
+ RETURN (true);
+# else
+# ifdef GD_BITS_NORM_DBL_RED
if (getgdesc(GD_BITS_NORM_DBL_RED) != 0) {
RETURN ( _INST(glOK) );
}
+# endif
+# endif
#endif
%}.
^ false
@@ -4551,10 +4596,12 @@
if the display supports GL drawing at all."
%{ /* NOCONTEXT */
-#ifdef GLX
+#ifndef OPENGL
+# ifdef GD_TEXTURE
if (getgdesc(GD_TEXTURE) != 0) {
RETURN ( _INST(glOK) );
}
+# endif
#endif
%}.
^ false
@@ -4571,10 +4618,12 @@
%{ /* NOCONTEXT */
-#ifdef GLX
+#ifndef OPENGL
+# ifdef GD_BITS_NORM_ZBUFFER
if (getgdesc(GD_BITS_NORM_ZBUFFER) != 0) {
RETURN ( _INST(glOK) );
}
+# endif
#endif
%}.
^ false
@@ -4590,8 +4639,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rect(_coordVal(x1), _coordVal(y1), _coordVal(x2), _coordVal(y2));
- RETURN (true);
+#endif
%}
!
@@ -4599,8 +4650,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rectf(_coordVal(x1), _coordVal(y1), _coordVal(x2), _coordVal(y2));
- RETURN (true);
+#endif
%}
!
@@ -4608,8 +4661,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rectfi(_icoordVal(x1), _icoordVal(y1), _icoordVal(x2), _icoordVal(y2));
- RETURN (true);
+#endif
%}
!
@@ -4617,8 +4672,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rectfs(_scoordVal(x1), _scoordVal(y1), _scoordVal(x2), _scoordVal(y2));
- RETURN (true);
+#endif
%}
!
@@ -4626,8 +4683,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
recti(_icoordVal(x1), _icoordVal(y1), _icoordVal(x2), _icoordVal(y2));
- RETURN (true);
+#endif
%}
!
@@ -4635,8 +4694,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rects(_scoordVal(x1), _scoordVal(y1), _scoordVal(x2), _scoordVal(y2));
- RETURN (true);
+#endif
%}
! !
@@ -4653,11 +4714,8 @@
if (! (v = __glx_getFloatsFromInto(arrayOf4Floats, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
sphdraw(v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxSphDrawX:x y:y z:z radius:r in:aGLXWindowId
@@ -4673,11 +4731,8 @@
_FLOAT_(r, vec[3])
SETWIN(aGLXWindowId)
sphdraw(vec);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxSphfreeIn: aGLXWindowId
@@ -4686,11 +4741,8 @@
#ifdef GLX
SETWIN(aGLXWindowId)
sphfree();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxSphgnpolysIn: aGLXWindowId
@@ -4701,8 +4753,6 @@
RETURN (__MKSMALLINT(sphgnpolys()));
#endif
%}
-.
- ^ false
!
glxSphmode: attribute value: value in: aGLXWindowId
@@ -4711,11 +4761,8 @@
#ifdef GLX
SETWIN(aGLXWindowId)
sphmode(__intVal(attribute), __intVal(value));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxSphobj: objid in: aGLXWindowId
@@ -4724,11 +4771,8 @@
#ifdef GLX
SETWIN(aGLXWindowId)
sphobj(_objectVal(objid));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxSphrotmatrix: mat in: aGLXWindowId
@@ -4740,11 +4784,8 @@
if (! (m = __glx_getFloatsFromMatrixInto(mat, &matrix))) RETURN (false);
SETWIN(aGLXWindowId)
sphrotmatrix(*m);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
! !
!GLXWorkstation methodsFor:'stereo extension'!
@@ -4755,11 +4796,8 @@
#ifdef FULL_GLX
SETWIN(aGLXWindowId)
leftbuffer(_booleanVal(bool));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxMonobufferIn: aGLXWindowId
@@ -4768,11 +4806,8 @@
#ifdef FULL_GLX
SETWIN(aGLXWindowId)
monobuffer();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxRightbuffer: bool in: aGLXWindowId
@@ -4781,11 +4816,8 @@
#ifdef FULL_GLX
SETWIN(aGLXWindowId)
rightbuffer(_booleanVal(bool));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
stereoExtensionBuffer:aBufferSymbol for:aWindowId
@@ -4957,11 +4989,8 @@
if (! (c_v = __glx_getDoublesFromInto(v, vec, 2))) RETURN(false);
SETWIN(aGLXWindowId)
t2d(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxT2f: v in: aGLXWindowId
@@ -4973,11 +5002,8 @@
if (! (c_v = __glx_getFloatsFromInto(v, vec, 2))) RETURN(false);
SETWIN(aGLXWindowId)
t2f(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxT2i: v in: aGLXWindowId
@@ -4989,11 +5015,8 @@
if (! (c_v = __glx_getLongsFromInto(v, vec, 2))) RETURN(false);
SETWIN(aGLXWindowId)
t2i(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxT2s: v in: aGLXWindowId
@@ -5005,11 +5028,8 @@
if (! (c_v = __glx_getShortsFromInto(v, vec, 2))) RETURN(false);
SETWIN(aGLXWindowId)
t2s(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxT3d:v in:aGLXWindowId
@@ -5021,11 +5041,8 @@
if (! (c_v = __glx_getDoublesFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
t3d(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxT3f:v in:aGLXWindowId
@@ -5037,11 +5054,8 @@
if (! (c_v = __glx_getFloatsFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
t3f(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxT3i:v in:aGLXWindowId
@@ -5053,11 +5067,8 @@
if (! (c_v = __glx_getLongsFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
t3i(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxT3s:v in:aGLXWindowId
@@ -5069,11 +5080,8 @@
if (! (c_v = __glx_getShortsFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
t3s(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxT4d: v in: aGLXWindowId
@@ -5085,11 +5093,8 @@
if (! (c_v = __glx_getDoublesFromInto(v, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
t4d(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxT4f: v in: aGLXWindowId
@@ -5101,11 +5106,8 @@
if (! (c_v = __glx_getFloatsFromInto(v, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
t4f(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxT4i: v in: aGLXWindowId
@@ -5117,11 +5119,8 @@
if (! (c_v = __glx_getLongsFromInto(v, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
t4i(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxT4s: v in: aGLXWindowId
@@ -5133,11 +5132,8 @@
if (! (c_v = __glx_getShortsFromInto(v, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
t4s(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
! !
!GLXWorkstation methodsFor:'transformations'!
@@ -5177,10 +5173,12 @@
if (! (v = __glx_getFloatsFromInto(arrayOf3Floats, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rot(v[0], 'x');
rot(v[1], 'y');
rot(v[2], 'z');
- RETURN (true);
+#endif
%}
!
@@ -5205,12 +5203,12 @@
if (__isSmallInteger(angle)) {
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rotate(__intVal(angle), c_axis);
- RETURN (true);
+#endif
}
%}
-.
- ^ false
!
glxRotateIX:angle in:aGLXWindowId
@@ -5221,12 +5219,12 @@
if (__isSmallInteger(angle)) {
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rotate(__intVal(angle), 'x');
- RETURN (true);
+#endif
}
%}
-.
- ^ false
!
glxRotateIX:xAngle y:yAngle z:zAngle in:aGLXWindowId
@@ -5238,14 +5236,14 @@
if (__bothSmallInteger(xAngle, yAngle)
&& __isSmallInteger(zAngle)) {
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rotate(__intVal(xAngle), 'x');
rotate(__intVal(yAngle), 'y');
rotate(__intVal(zAngle), 'z');
- RETURN (true);
+#endif
}
%}
-.
- ^ false
!
glxRotateIY:angle in:aGLXWindowId
@@ -5256,12 +5254,12 @@
if (__isSmallInteger(angle)) {
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rotate(__intVal(angle), 'y');
- RETURN (true);
+#endif
}
%}
-.
- ^ false
!
glxRotateIZ:angle in:aGLXWindowId
@@ -5272,12 +5270,12 @@
if (__isSmallInteger(angle)) {
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rotate(__intVal(angle), 'z');
- RETURN (true);
+#endif
}
%}
-.
- ^ false
!
glxRotateX:angle in:aGLXWindowId
@@ -5304,8 +5302,6 @@
}
}
%}
-.
- ^ false
!
glxRotateY:angle in:aGLXWindowId
@@ -5340,8 +5336,10 @@
if (! (v = __glx_getFloatsFromInto(arrayOf3Floats, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
scale(v[0], v[1], v[2]);
- RETURN (true);
+#endif
%}
!
@@ -5354,8 +5352,10 @@
_FLOAT_ (x, f_x)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
scale(f_x, (float)0, (float)0);
- RETURN (true);
+#endif
%}
!
@@ -5370,8 +5370,10 @@
_FLOAT_ (y, f_y)
_FLOAT_ (z, f_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
scale(f_x, f_y, f_z);
- RETURN (true);
+#endif
%}
!
@@ -5384,8 +5386,10 @@
_FLOAT_ (y, f_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
scale((float)0, f_y, (float)0);
- RETURN (true);
+#endif
%}
!
@@ -5398,8 +5402,10 @@
_FLOAT_ (z, f_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
scale((float)0, (float)0, f_z);
- RETURN (true);
+#endif
%}
!
@@ -5413,8 +5419,10 @@
if (! (v = __glx_getFloatsFromInto(arrayOf3Floats, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
translate((Coord)(v[0]), (Coord)(v[1]), (Coord)(v[2]));
- RETURN (true);
+#endif
%}
!
@@ -5427,8 +5435,10 @@
_COORD_ (x, c_x)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
translate(c_x, (Coord)0, (Coord)0);
- RETURN (true);
+#endif
%}
!
@@ -5443,8 +5453,10 @@
_COORD_ (y, c_y)
_COORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
translate(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
!
@@ -5457,8 +5469,10 @@
_COORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
translate((Coord)0, c_y, (Coord)0);
- RETURN (true);
+#endif
%}
!
@@ -5471,8 +5485,10 @@
_COORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
translate((Coord)0, (Coord)0, c_z);
- RETURN (true);
+#endif
%}
! !
@@ -5481,46 +5497,36 @@
glxAcbufOp:op value:value in:aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
acbuf(__intVal(op), _floatVal(value));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxAcsizePlanes: planes in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
acsize(__intVal(planes));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxAfunctionRef: ref func: func in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
afunction(__intVal(ref), __intVal(func));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxBbox2Xmin: xmin ymin: ymin x1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
Screencoord c_xmin, c_ymin;
Coord c_x1, c_y1, c_x2, c_y2;
@@ -5531,18 +5537,15 @@
_COORD_ (x2, c_x2)
_COORD_ (y2, c_y2)
SETWIN(aGLXWindowId)
+#ifdef GLX
bbox2(c_xmin, c_ymin, c_x1, c_y1, c_x2, c_y2);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxBbox2iXmin: xmin ymin: ymin x1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
Screencoord c_xmin, c_ymin;
Icoord c_x1, c_y1, c_x2, c_y2;
@@ -5553,18 +5556,15 @@
_ICOORD_ (x2, c_x2)
_ICOORD_ (y2, c_y2)
SETWIN(aGLXWindowId)
+#ifdef GLX
bbox2i(c_xmin, c_ymin, c_x1, c_y1, c_x2, c_y2);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxBbox2sXmin: xmin ymin: ymin x1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
Screencoord c_xmin, c_ymin;
Scoord c_x1, c_y1, c_x2, c_y2;
@@ -5575,241 +5575,195 @@
_SCOORD_ (x2, c_x2)
_SCOORD_ (y2, c_y2)
SETWIN(aGLXWindowId)
+#ifdef GLX
bbox2s(c_xmin, c_ymin, c_x1, c_y1, c_x2, c_y2);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxBeginTrimIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
bgntrim();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxBlankscreen: b in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
blankscreen(_booleanVal(b));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxBlanktime: count in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
blanktime(__intVal(count));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxBlendcolorRed: red green: green blue: blue alpha: alpha in: aGLXWindowId
%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
#ifdef FULL_GLX
- SETWIN(aGLXWindowId)
blendcolor(_floatVal(red), _floatVal(green), _floatVal(blue), _floatVal(alpha));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxBlendfunctionSfactr: sfactr dfactr: dfactr in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
blendfunction(__intVal(sfactr), __intVal(dfactr));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxBlinkRate: rate i: i red: red green: green blue: blue in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
blink(_shortVal(rate), _colorindexVal(i),
_shortVal(red), _shortVal(green), _shortVal(blue));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxBlkqreadData: data n: n in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
- RETURN (__MKSMALLINT(blkqread((short *)_indexedArea(data), __intVal(n))));
-#endif
-%}
-.
- ^ false
+ int rslt = -1;
+
+ SETWIN(aGLXWindowId)
+#ifdef GLX
+ rslt = blkqread((short *)_indexedArea(data), __intVal(n));
+#endif
+ RETURN (__MKSMALLINT(rslt));
+%}
!
glxC3f: v in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
float vec[3], *c_v;
if (! (c_v = __glx_getFloatsFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef GLX
c3f(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxC3i: v in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
long vec[3], *c_v;
if (! (c_v = __glx_getLongsFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef GLX
c3i(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxC3s: v in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
short vec[3], *c_v;
if (! (c_v = __glx_getShortsFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef GLX
c3s(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxC4f: v in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
float vec[4], *c_v;
if (! (c_v = __glx_getFloatsFromInto(v, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef GLX
c4f(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxC4i: v in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
long vec[4], *c_v;
if (! (c_v = __glx_getLongsFromInto(v, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef GLX
c4i(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxC4s: v in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
short vec[4], *c_v;
if (! (c_v = __glx_getShortsFromInto(v, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef GLX
c4s(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxClearhitcodeIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
clearhitcode();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxClipplaneIndex: index mode: mode params: params in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
float vec[4], *v;
if (! (v = __glx_getFloatsFromInto(params, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef GLX
clipplane(__intVal(index), __intVal(mode), v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxCmodeIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
cmode();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxColorfIndex: index in: aGLXWindowId
@@ -5820,217 +5774,170 @@
glxCuroriginN: n xorigin: xorigin yorigin: yorigin in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
curorigin(_shortVal(n), _shortVal(xorigin), _shortVal(yorigin));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxCursoffIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
cursoff();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxCursonIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
curson();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxCurstype: type in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
curstype(__intVal(type));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxCyclemapDuration: duration map: map nxtmap: nxtmap in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
cyclemap(_shortVal(duration), _shortVal(map), _shortVal(nxtmap));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxDefpatternN: n size: size mask: mask in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
defpattern(_shortVal(n), _shortVal(size), (unsigned short *)_indexedArea(mask));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxDeltag: t in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
deltag(_tagVal(t));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxDepthcueMode: mode in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
depthcue(_booleanVal(mode));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxDitherMode: mode in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
dither(_longVal(mode));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxDopup: pup in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
dopup(_longVal(pup));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxDrawmode: mode in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
drawmode(_longVal(mode));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxEditobj: obj in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
editobj(_objectVal(obj));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxEndTrimIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
endtrim();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxEndfullscrnIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
endfullscrn();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxEndpupmodeIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
endpupmode();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxFinishIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
finish();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxFont: fntnum in: aGLXWindowId
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef GLX
font(_shortVal(fntnum));
- RETURN (true);
+#endif
%}
!
@@ -6038,127 +5945,131 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
foreground();
- RETURN (true);
+#endif
%}
!
glxFreepup: pup in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
freepup(_longVal(pup));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxFudgeXfudge: xfudge yfudge: yfudge in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
fudge(_longVal(xfudge), _longVal(yfudge));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxFullscrnIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
fullscrn();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxGbeginIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
gbegin();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxGentagIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
- RETURN (__MKSMALLINT(gentag()));
-#endif
-%}
-.
- ^ false
+ int rslt = -1;
+
+#ifdef GLX
+ SETWIN(aGLXWindowId)
+ rslt = gentag();
+#endif
+ RETURN (__MKSMALLINT(rslt));
+%}
!
glxGetbackfaceIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
- RETURN (__MKSMALLINT(getbackface()));
-#endif
-%}
-.
- ^ false
+ int rslt = -1;
+
+#ifdef GLX
+ SETWIN(aGLXWindowId)
+ rslt = getbackface();
+#endif
+ RETURN (__MKSMALLINT(rslt));
+%}
!
glxGetbufferIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
- RETURN (__MKSMALLINT(getbuffer()));
-#endif
-%}
-.
- ^ false
+ int rslt = -1;
+
+#ifdef GLX
+ SETWIN(aGLXWindowId)
+ rslt = getbuffer();
+#endif
+ RETURN (__MKSMALLINT(rslt));
+%}
!
glxGetbutton: num in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifndef OPENGL
- SETWIN(aGLXWindowId)
- RETURN (__MKSMALLINT(getbutton(_deviceVal(num))));
-#endif
+ int rslt = -1;
+
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
+ rslt = getbutton(_deviceVal(num));
+#endif
+ RETURN (__MKSMALLINT(rslt));
%}
!
glxGetcmmodeIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
- RETURN (__MKBOOLEAN(getcmmode()));
-#endif
-%}
-.
- ^ false
+ int rslt = 0;
+
+ SETWIN(aGLXWindowId)
+#ifdef GLX
+ rslt = getcmmode();
+#endif
+ RETURN (__MKBOOLEAN(rslt));
+%}
!
glxGetcolorIn: aGLXWindowId
"return the current drawing color"
%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- RETURN (__MKSMALLINT(getcolor()));
+ int rslt = -1;
+
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
+ rslt = getcolor();
+#endif
+ RETURN (__MKSMALLINT(rslt));
%}
!
@@ -6237,16 +6148,28 @@
glxGetgdescInquiry: inquiry in: aGLXWindowId
%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- RETURN (__MKSMALLINT(getgdesc(_longVal(inquiry))));
+ int rslt = 0;
+
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
+ rslt = getgdesc(_longVal(inquiry));
+#endif
+ RETURN (__MKSMALLINT(rslt));
%}
!
glxGetheightIn: aGLXWindowId
%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- RETURN (__MKSMALLINT(getheight()));
+ int rslt = 0;
+
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
+ rslt = getheight();
+#endif
+ RETURN (__MKSMALLINT(rslt));
%}
!
@@ -6481,14 +6404,12 @@
glxGexitIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
gexit();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxGflushIn: aGLXWindowId
@@ -6497,24 +6418,19 @@
#ifdef GLX
SETWIN(aGLXWindowId)
gflush();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxGinitIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
ginit();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxGlcompatMode: mode value: value in: aGLXWindowId
@@ -6523,11 +6439,8 @@
#ifdef GLX
SETWIN(aGLXWindowId)
glcompat(_longVal(mode), _longVal(value));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxGresetIn: aGLXWindowId
@@ -6536,11 +6449,8 @@
#ifdef GLX
SETWIN(aGLXWindowId)
greset();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxGsyncIn: aGLXWindowId
@@ -6549,11 +6459,8 @@
#ifdef GLX
SETWIN(aGLXWindowId)
gsync();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxIconsizeX: x y: y in: aGLXWindowId
@@ -6562,11 +6469,8 @@
#ifdef GLX
SETWIN(aGLXWindowId)
iconsize(_longVal(x), _longVal(y));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxImakebackgroundIn: aGLXWindowId
@@ -6575,11 +6479,8 @@
#ifdef GLX
SETWIN(aGLXWindowId)
imakebackground();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxInitnamesIn: aGLXWindowId
@@ -6588,11 +6489,8 @@
#ifdef GLX
SETWIN(aGLXWindowId)
initnames();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxIsqueued: dev in: aGLXWindowId
@@ -7128,7 +7026,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
prefposition(_longVal(x1), _longVal(x2), _longVal(y1), _longVal(y2));
+#endif
RETURN (true);
%}
!
@@ -7137,7 +7038,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
prefsize(_longVal(x), _longVal(y));
+#endif
RETURN (true);
%}
!
@@ -7171,10 +7075,10 @@
glxQdevice: dev in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifndef OPENGL
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
qdevice(_deviceVal(dev));
- RETURN (true);
#endif
%}
!
@@ -7183,8 +7087,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
qenter(_deviceVal(dev), _shortVal(val));
- RETURN (true);
+#endif
%}
!
@@ -7207,8 +7113,11 @@
short c_data;
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
dev = __MKSMALLINT(qread(&c_data));
data = __MKSMALLINT(c_data);
+#endif
%}
.
^ Array with: dev with: data
@@ -7218,7 +7127,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
qreset();
+#endif
RETURN (true);
%}
!
@@ -7226,8 +7138,14 @@
glxQtestIn: aGLXWindowId
%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- RETURN (__MKSMALLINT(qtest()));
+ int rslt = 0;
+
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
+ rslt = qtest();
+#endif
+ RETURN (__MKSMALLINT(rslt));
%}
!
@@ -7814,14 +7732,12 @@
glxUnqdevice: dev in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
unqdevice(_deviceVal(dev));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxWmpack: pack in: aGLXWindowId
@@ -8040,7 +7956,10 @@
if (! (c_v = __glx_getDoublesFromInto(v, vec, 2))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v2d(c_v);
+#endif
RETURN (true);
%}
!
@@ -8053,7 +7972,10 @@
if (! (c_v = __glx_getFloatsFromInto(v, vec, 2))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v2f(c_v);
+#endif
RETURN (true);
%}
!
@@ -8067,7 +7989,10 @@
_FLOAT_(x, vec[0])
_FLOAT_(y, vec[1])
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v2f(vec);
+#endif
RETURN (true);
%}
!
@@ -8080,7 +8005,10 @@
if (! (c_v = __glx_getLongsFromInto(v, vec, 2))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v2i(c_v);
+#endif
RETURN (true);
%}
!
@@ -8093,7 +8021,10 @@
if (! (c_v = __glx_getShortsFromInto(v, vec, 2))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v2s(c_v);
+#endif
RETURN (true);
%}
!
@@ -8106,7 +8037,10 @@
if (! (c_v = __glx_getDoublesFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v3d(c_v);
+#endif
RETURN (true);
%}
.
@@ -8121,7 +8055,10 @@
if (! (c_v = __glx_getFloatsFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v3f(c_v);
+#endif
RETURN (true);
%}
!
@@ -8136,7 +8073,10 @@
_FLOAT_(y, vec[1])
_FLOAT_(z, vec[2])
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v3f(vec);
+#endif
RETURN (true);
%}
!
@@ -8149,7 +8089,10 @@
if (! (c_v = __glx_getLongsFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v3i(c_v);
+#endif
RETURN (true);
%}
!
@@ -8162,7 +8105,10 @@
if (! (c_v = __glx_getShortsFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v3s(c_v);
+#endif
RETURN (true);
%}
!
@@ -8176,7 +8122,10 @@
if (! (c_v = __glx_getDoublesFromInto(v, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v4d(c_v);
+#endif
RETURN (true);
%}
!
@@ -8190,7 +8139,10 @@
if (! (c_v = __glx_getFloatsFromInto(v, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v4f(c_v);
+#endif
RETURN (true);
%}
!
@@ -8204,7 +8156,10 @@
if (! (c_v = __glx_getLongsFromInto(v, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v4i(c_v);
+#endif
RETURN (true);
%}
!
@@ -8218,7 +8173,10 @@
if (! (c_v = __glx_getShortsFromInto(v, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v4s(c_v);
+#endif
RETURN (true);
%}
!
@@ -8232,7 +8190,10 @@
static float vec[3] = {0.0, 0.0, 0.0};
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v3f(vec);
+#endif
RETURN (true);
%}
!
@@ -8246,7 +8207,10 @@
static float vec[3] = {1.0, 0.0, 0.0};
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v3f(vec);
+#endif
RETURN (true);
%}
!
@@ -8260,7 +8224,10 @@
static float vec[3] = {0.0, 1.0, 0.0};
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v3f(vec);
+#endif
RETURN (true);
%}
!
@@ -8274,7 +8241,10 @@
static float vec[3] = {0.0, 0.0, 1.0};
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v3f(vec);
+#endif
RETURN (true);
%}
! !
@@ -8351,8 +8321,10 @@
_COORD_ (pz, f_pz)
_ANGLE_ (twist, a_twist)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
lookat(f_vx, f_vy, f_vz, f_px, f_py, f_pz, a_twist);
- RETURN (true);
+#endif
%}
!
@@ -8367,10 +8339,11 @@
_FLOAT_(right, f_right)
_FLOAT_(bottom, f_bottom)
_FLOAT_(top, f_top)
+#ifdef OPENGL
+#else
ortho2(f_left, f_right, f_bottom, f_top);
-%}
-.
- ^ true
+#endif
+%}
!
glxOrthoLeft: left right: right bottom: bottom top: top near: near far: far in: aGLXWindowId
@@ -8387,8 +8360,10 @@
_FLOAT_(near, f_near)
_FLOAT_(far, f_far)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
ortho(f_left, f_right, f_bottom, f_top, f_near, f_far);
- RETURN (true);
+#endif
%}
!
@@ -8407,9 +8382,10 @@
_COORD_ (far, c_far)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
perspective(a_fovy, f_aspect, c_near, c_far);
-
- RETURN (true);
+#endif
%}
!
@@ -8424,8 +8400,10 @@
_ANGLE_(inc, a_inc)
_ANGLE_(twist, a_twist)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
polarview(c_dist, a_azim, a_inc, a_twist);
- RETURN (true);
+#endif
%}
!
@@ -8434,8 +8412,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
popviewport();
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:58:24 / cg"
@@ -8446,8 +8426,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pushviewport();
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:58:02 / cg"
@@ -8457,19 +8439,22 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
reshapeviewport();
-%}
-.
- ^ true
+#endif
+%}
!
glxViewportLeft:left right:right bottom:bottom top:top in:aGLXWindowId
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
viewport(_screencoordVal(left), _screencoordVal(right),
_screencoordVal(bottom), _screencoordVal(top));
- RETURN (true);
+#endif
%}
!
@@ -8492,9 +8477,10 @@
_COORD_ (near, c_near)
_COORD_ (far, c_far)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
window(c_left, c_right, c_bot, c_top, c_near, c_far);
-
- RETURN (true);
+#endif
%}
! !
@@ -8792,5 +8778,5 @@
!GLXWorkstation class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libview/Attic/GLXWorkstat.st,v 1.67 1997-09-18 20:21:07 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libview/Attic/GLXWorkstat.st,v 1.68 1997-10-21 18:20:51 cg Exp $'
! !
--- a/GLXWorkstation.st Tue Oct 21 20:11:53 1997 +0200
+++ b/GLXWorkstation.st Tue Oct 21 20:22:05 1997 +0200
@@ -24,7 +24,7 @@
* for simulation (using vogl), this is compiled with -DVGL
*
* New note: starting to support openGL (tm) (compile with -DOPENGL)
- * or its simulation (compile with -DOPENGL -DMESA)
+ * or its simulation (compile with -DMESA)
*/
/*
@@ -44,7 +44,9 @@
* these are not available on all gl's
*/
+#ifdef GLX
/* #define FULL_GLX */
+#endif
/*
* this is stupid, GLX type-defs String, which is also defined here ...
@@ -71,6 +73,12 @@
#include <stdio.h>
+#ifndef OPENGL
+# ifdef MESA
+# define OPENGL
+# endif
+#endif
+
#ifdef OPENGL /* SGI or others OPENGL library */
# include "GL/gl.h"
@@ -404,10 +412,10 @@
}
if (@global(ErrorPrinting) == true) {
- fprintf(stderr, "XWORKSTAT: x-error caught maj=%d (0x%x) min=%d (0x%x) resource=%x\n",
+ fprintf(stderr, "GLXWORKSTAT: x-error caught maj=%d (0x%x) min=%d (0x%x) resource=%x\n",
event->request_code, event->request_code,
event->minor_code, event->minor_code, event->resourceid);
- fprintf(stderr, "XWORKSTAT: x-error message is [%d] '%s'\n", event->error_code, lastErrorMsg);
+ fprintf(stderr, "GLXWORKSTAT: x-error message is [%d] '%s'\n", event->error_code, lastErrorMsg);
}
__errorInterruptWithIDAndParameter__(@symbol(DisplayError), __MKOBJ(dpy));
@@ -431,7 +439,7 @@
* this file has been just copied from a 4Dgifts demo ..
* (will need more than a day to show more ...)
*/
-#if defined(GLX) || defined(VGL)
+#if !defined(OPENGL)
# include <X11/Xlib.h>
# include <X11/Xutil.h>
@@ -460,7 +468,9 @@
"rgb double buffer",
};
-# ifndef VGL
+#endif /* GLX || VGL */
+
+#if defined(GLX) && !defined(VGL)
/*
* Dorky little helper function used to build up a GLXconfig array.
*/
@@ -472,7 +482,7 @@
ptr->mode = m;
ptr->arg = a;
}
-# endif /* not VGL */
+#endif /* GLX & not VGL */
static JMP_BUF errorReturn;
@@ -505,41 +515,56 @@
Window parent;
GLXWindowType type;
{
-# ifdef VGL
- Visual visual;
-# else
+#if !defined(OPENGL)
+# ifndef VGL
GLXconfig params[50];
GLXconfig* next;
GLXconfig* retconfig;
Colormap cmap = DefaultColormap(dpy, DefaultScreen(dpy));
+# endif
+#endif
+ Visual visual;
XVisualInfo *vis;
-# endif
XVisualInfo template;
XColor white;
XSetWindowAttributes cwa;
XWindowAttributes pwa;
int scr, i, nret;
Window win;
-# ifdef HAS_SIGACTION
+#ifdef HAS_SIGACTION
struct sigaction oldSig, newSig;
-# else
+#else
void *oldSig;
-# endif
-
+#endif
+
+#if !defined(OPENGL)
__catchExit(1);
+#endif
if (setjmp(errorReturn)) {
printf("hard error in GL - return\n");
-# ifdef HAS_SIGACTION
+#ifdef HAS_SIGACTION
sigaction(SIGSEGV, &oldSig, 0);
-# else
+#else
signal(SIGSEGV, oldSig);
-# endif
+#endif
+#if !defined(OPENGL)
__catchExit(0);
+#endif
return 0;
}
__CONT__
+ if (w <= 0) {
+ printf("GL: bad width: %d\n", w);
+ w = 1;
+ }
+ if (h <= 0) {
+ printf("GL: bad height: %d\n", h);
+ h = 1;
+ }
+
+#if !defined(OPENGL)
# ifdef VGL
/*
* I know what VGL supports; its somewhat unclean to hard code it here
@@ -559,14 +584,6 @@
scr = DefaultScreen(dpy);
visual.visualid = CopyFromParent;
cwa.border_pixel = 0; /* Even if we don't use it, it must be something */
- if (w <= 0) {
- printf("VGL: bad width: %d\n", w);
- w = 1;
- }
- if (h <= 0) {
- printf("VGL: bad height: %d\n", h);
- h = 1;
- }
win = XCreateWindow(dpy, parent, x, y, w, h,
borderWidth, DisplayPlanes(dpy, scr),
InputOutput, &visual,
@@ -717,8 +734,22 @@
*/
XSetErrorHandler(__XErrorHandler__);
# endif /* not VGL */
-
__catchExit(0);
+
+#else /* OPENGL | MESA */
+
+ scr = DefaultScreen(dpy);
+ visual.visualid = CopyFromParent;
+ cwa.border_pixel = 0; /* Even if we don't use it, it must be something */
+ win = XCreateWindow(dpy, parent, x, y, w, h,
+ borderWidth, DisplayPlanes(dpy, scr),
+ InputOutput, &visual,
+ CWBorderPixel, &cwa);
+
+ vis = XGetVisualInfo(dpy, VisualScreenMask|VisualIDMask, &visual, &nret);
+printf("vis is %x\n", vis);
+#endif /* GLX || VGL */
+
return win;
}
@@ -729,17 +760,11 @@
/*
* only needed for VGL - GLX does it automatically
*/
-# ifdef VGL
+#ifdef VGL
GLXunlink(dpy, win);
-# endif
+#endif
}
-#endif /* GLX or VGL */
-
-/*
- * end moved from GLXsupport.c
- */
-
/*
* helper for rotation - calls rot()
*/
@@ -752,8 +777,12 @@
if (__isFloat(angle)) {
f_angle = (float)(_floatVal(angle));
- if (f_angle != 0.0)
+ if (f_angle != 0.0) {
+#ifdef OPENGL
+#else
rot(f_angle, axis);
+#endif
+ }
return (true);
}
if (__isFraction(angle)
@@ -764,14 +793,22 @@
n = (float)(__intVal(_FractionInstPtr(angle)->f_numerator));
d = (float)(__intVal(_FractionInstPtr(angle)->f_denominator));
f_angle = n / d;
- if (f_angle != 0.0)
+ if (f_angle != 0.0) {
+#ifdef OPENGL
+#else
rot(f_angle, axis);
+#endif
+ }
return (true);
}
if (__isSmallInteger(angle)) {
f_angle = (float)(__intVal(angle));
- if (f_angle != 0.0)
+ if (f_angle != 0.0) {
+#ifdef OPENGL
+#else
rot(f_angle, axis);
+#endif
+ }
return (true);
}
return false;
@@ -1232,8 +1269,6 @@
startang and endang must be smallIntegers (10th of a degree)."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Coord c_x, c_y, c_radius;
Angle a_startang, a_endang;
@@ -1244,8 +1279,9 @@
_ANGLE_(endang, a_endang)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
arc(c_x, c_y, c_radius, a_startang, a_endang);
- RETURN (true);
#endif
%}
@@ -1258,8 +1294,6 @@
startang and endang must be smallIntegers (10th of a degree)."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Coord c_x, c_y, c_radius;
Angle a_startang, a_endang;
@@ -1270,8 +1304,9 @@
_ANGLE_(endang, a_endang)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
arcf(c_x, c_y, c_radius, a_startang, a_endang);
- RETURN (true);
#endif
%}
!
@@ -1281,8 +1316,6 @@
All arguments must be smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Icoord c_x, c_y, c_radius;
Angle a_startang, a_endang;
@@ -1293,8 +1326,9 @@
_ANGLE_(endang, a_endang)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
arcfi(c_x, c_y, c_radius, a_startang, a_endang);
- RETURN (true);
#endif
%}
!
@@ -1304,8 +1338,6 @@
All arguments must be (16bit) smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Scoord c_x, c_y, c_radius;
Angle a_startang, a_endang;
@@ -1316,8 +1348,9 @@
_ANGLE_(endang, a_endang)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
arcfs(c_x, c_y, c_radius, a_startang, a_endang);
- RETURN (true);
#endif
%}
!
@@ -1327,8 +1360,6 @@
All arguments must be smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Icoord c_x, c_y, c_radius;
Angle a_startang, a_endang;
@@ -1339,8 +1370,9 @@
_ANGLE_(endang, a_endang)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
arci(c_x, c_y, c_radius, a_startang, a_endang);
- RETURN (true);
#endif
%}
!
@@ -1350,22 +1382,19 @@
All arguments must be (16bit) smallIntegers."
%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
- {
- Scoord c_x, c_y, c_radius;
- Angle a_startang, a_endang;
-
- _SCOORD_(x, c_x)
- _SCOORD_(y, c_y)
- _SCOORD_(radius, c_radius)
- _ANGLE_(startang, a_startang)
- _ANGLE_(endang, a_endang)
-
- arcs(c_x, c_y, c_radius, a_startang, a_endang);
- RETURN (true);
- }
+ Scoord c_x, c_y, c_radius;
+ Angle a_startang, a_endang;
+
+ _SCOORD_(x, c_x)
+ _SCOORD_(y, c_y)
+ _SCOORD_(radius, c_radius)
+ _ANGLE_(startang, a_startang)
+ _ANGLE_(endang, a_endang)
+
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
+ arcs(c_x, c_y, c_radius, a_startang, a_endang);
#endif
%}
!
@@ -1375,19 +1404,16 @@
x/y/radius may be floats, fractions or smallIntegers."
%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
- {
- Coord c_x, c_y, c_radius;
-
- _COORD_ (x, c_x)
- _COORD_ (y, c_y)
- _COORD_ (radius, c_radius)
-
- circ(c_x, c_y, c_radius);
- RETURN (true);
- }
+ Coord c_x, c_y, c_radius;
+
+ _COORD_ (x, c_x)
+ _COORD_ (y, c_y)
+ _COORD_ (radius, c_radius)
+
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
+ circ(c_x, c_y, c_radius);
#endif
%}
!
@@ -1398,8 +1424,6 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
{
Coord c_x, c_y, c_radius;
@@ -1407,10 +1431,11 @@
_COORD_ (y, c_y)
_COORD_ (radius, c_radius)
+#ifdef OPENGL
+#else
circf(c_x, c_y, c_radius);
- RETURN (true);
+#endif
}
-#endif
%}
!
@@ -1420,8 +1445,6 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
{
Icoord c_x, c_y, c_radius;
@@ -1429,10 +1452,11 @@
_ICOORD_ (y, c_y)
_ICOORD_ (radius, c_radius)
+#ifdef OPENGL
+#else
circfi(c_x, c_y, c_radius);
- RETURN (true);
+#endif
}
-#endif
%}
!
@@ -1442,8 +1466,6 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
{
Scoord c_x, c_y, c_radius;
@@ -1451,10 +1473,11 @@
_SCOORD_ (y, c_y)
_SCOORD_ (radius, c_radius)
+#ifdef OPENGL
+#else
circfs(c_x, c_y, c_radius);
- RETURN (true);
+#endif
}
-#endif
%}
!
@@ -1464,8 +1487,6 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
{
Icoord c_x, c_y, c_radius;
@@ -1473,10 +1494,11 @@
_ICOORD_ (y, c_y)
_ICOORD_ (radius, c_radius)
+#ifdef OPENGL
+#else
circi(c_x, c_y, c_radius);
- RETURN (true);
+#endif
}
-#endif
%}
!
@@ -1486,8 +1508,6 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
{
Scoord c_x, c_y, c_radius;
@@ -1495,10 +1515,11 @@
_SCOORD_ (y, c_y)
_SCOORD_ (radius, c_radius)
+#ifdef OPENGL
+#else
circs(c_x, c_y, c_radius);
- RETURN (true);
+#endif
}
-#endif
%}
! !
@@ -1509,7 +1530,9 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifndef OPENGL
popattributes();
+#endif
%}
"Modified: 19.3.1996 / 18:42:53 / cg"
@@ -1520,7 +1543,9 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifndef OPENGL
pushattributes();
+#endif
%}
"Modified: 19.3.1996 / 18:43:04 / cg"
@@ -1534,18 +1559,17 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
{
Coord c_x, c_y;
_COORD_ (x, c_x)
_COORD_ (y, c_y)
+#ifdef OPENGL
+#else
cmov2(c_x, c_y);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:17:38 / cg"
@@ -1557,18 +1581,17 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
{
Icoord c_x, c_y;
_ICOORD_ (x, c_x)
_ICOORD_ (y, c_y)
+#ifdef OPENGL
+#else
cmov2i(c_x, c_y);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:17:43 / cg"
@@ -1580,18 +1603,17 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
{
Scoord c_x, c_y;
_SCOORD_ (x, c_x)
_SCOORD_ (y, c_y)
+#ifdef OPENGL
+#else
cmov2s(c_x, c_y);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:17:47 / cg"
@@ -1603,8 +1625,6 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
{
Coord c_x, c_y, c_z;
@@ -1612,10 +1632,11 @@
_COORD_ (y, c_y)
_COORD_ (z, c_z)
+#ifdef OPENGL
+#else
cmov(c_x, c_y, c_z);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:17:22 / cg"
@@ -1627,8 +1648,6 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
{
Icoord c_x, c_y, c_z;
@@ -1636,10 +1655,11 @@
_ICOORD_ (y, c_y)
_ICOORD_ (z, c_z)
+#ifdef OPENGL
+#else
cmovi(c_x, c_y, c_z);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:17:55 / cg"
@@ -1651,8 +1671,6 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
-#ifdef OPENGL
-#else
{
Scoord c_x, c_y, c_z;
@@ -1660,10 +1678,11 @@
_SCOORD_ (y, c_y)
_SCOORD_ (z, c_z)
+#ifdef OPENGL
+#else
cmovs(c_x, c_y, c_z);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:17:59 / cg"
@@ -1674,16 +1693,18 @@
| x y |
%{
-#ifdef GLX
short s_x, s_y;
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
+# ifdef GLX
getcpos(&s_x, &s_y);
x = __MKSMALLINT(s_x);
y = __MKSMALLINT(s_y);
-#endif
-%}
-.
+# endif
+#endif
+%}.
^x @ y
! !
@@ -1694,7 +1715,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
clear();
+#endif
%}
!
@@ -1702,29 +1726,28 @@
"clear to a color (cval) and clear z buffer to zval simultaniously"
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
-
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
+# ifdef GLX
czclear((ulong)__intVal(cval), __intVal(zval));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+# endif
+#endif
+%}
!
glxZClearIn:aGLXWindowId
"clear z buffer"
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
+# ifdef GLX
zclear();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+# endif
+#endif
+%}
! !
!GLXWorkstation methodsFor:'color'!
@@ -1741,15 +1764,14 @@
#else
if (__isSmallInteger(index)) {
color((Colorindex)(__intVal(index)));
- RETURN (true);
+ RETURN (self);
}
if (__isFloat(index)) {
colorf((float)(_floatVal(index)));
- RETURN (true);
+ RETURN (self);
}
#endif
-%}.
- ^ false
+%}
!
glxColorRed:r green:g blue:b alpha:a in:aGLXWindowId
@@ -1757,8 +1779,6 @@
The args must be integer values within 0..255"
%{ /* NOCONTEXT */
-
-#ifdef GLX
short s_r, s_g, s_b, s_a;
_INT_(r, s_r);
@@ -1766,12 +1786,10 @@
_INT_(b, s_b);
_INT_(a, s_a);
SETWIN(aGLXWindowId)
+#ifdef GLX
cpack((((((s_a<<8) | s_b) << 8) | s_g) << 8) | s_r);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxColorRed:r green:g blue:b in:aGLXWindowId
@@ -1779,36 +1797,29 @@
The args must be integer values in 0..255"
%{ /* NOCONTEXT */
-
-#ifdef GLX
short s_r, s_g, s_b;
_INT_(r, s_r);
_INT_(g, s_g);
_INT_(b, s_b);
SETWIN(aGLXWindowId)
+#ifdef GLX
RGBcolor(s_r, s_g, s_b);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxLrgbrangeRmin: rmin gmin: gmin bmin: bmin rmax: rmax gmax: gmax bmax: bmax
znear: znear zfar: zfar in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
lRGBrange(_shortVal(rmin), _shortVal(gmin), _shortVal(bmin),
_shortVal(rmax), _shortVal(gmax), _shortVal(bmax),
_longVal(znear), _longVal(zfar));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxMapcolorI: i red: red green: green blue: blue in: aGLXWindowId
@@ -1820,7 +1831,6 @@
#ifdef OPENGL
#else
mapcolor(_colorindexVal(i), _shortVal(red), _shortVal(green), _shortVal(blue));
- RETURN (true);
#endif
%}
!
@@ -1829,14 +1839,11 @@
"change the color used for text drawing"
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
textcolor(_colorindexVal(tcolor));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
! !
!GLXWorkstation methodsFor:'curves'!
@@ -1846,8 +1853,9 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef GLX
curvebasis(_shortVal(basid));
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:47:09 / cg"
@@ -1859,8 +1867,9 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef GLX
curveit(_shortVal(iterationcount));
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:48:57 / cg"
@@ -1871,8 +1880,9 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef GLX
curveprecision(_shortVal(nsegments));
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:47:43 / cg"
@@ -1891,7 +1901,6 @@
frontbuffer(FALSE);
# endif
backbuffer(TRUE);
- RETURN (true);
#endif
%}
!
@@ -1907,7 +1916,6 @@
#ifdef OPENGL
#else
backbuffer(_booleanVal(b));
- RETURN (true);
#endif
%}
@@ -1919,8 +1927,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
doublebuffer();
- RETURN (true);
+#endif
%}
!
@@ -1935,7 +1945,6 @@
backbuffer(FALSE);
# endif
frontbuffer(TRUE);
- RETURN (true);
#endif
%}
!
@@ -1951,7 +1960,6 @@
#ifdef OPENGL
#else
frontbuffer(_booleanVal(b));
- RETURN (true);
#endif
%}
@@ -1966,7 +1974,6 @@
#ifdef OPENGL
#else
singlebuffer();
- RETURN (true);
#endif
%}
!
@@ -1982,7 +1989,6 @@
#ifdef OPENGL
#else
swapbuffers();
- RETURN (true);
#endif
%}
@@ -1995,9 +2001,11 @@
"start a closed line"
%{ /* NOCONTEXT */
+#ifdef OPENGL
+#else
SETWIN(aGLXWindowId)
bgnclosedline();
- RETURN (true);
+#endif
%}
!
@@ -2005,8 +2013,11 @@
"start a line group"
%{ /* NOCONTEXT */
+#ifdef OPENGL
+#else
SETWIN(aGLXWindowId)
bgnline();
+#endif
%}
!
@@ -2014,9 +2025,11 @@
"start a point-group"
%{ /* NOCONTEXT */
+#ifdef OPENGL
+#else
SETWIN(aGLXWindowId)
bgnpoint();
- RETURN (true);
+#endif
%}
!
@@ -2024,9 +2037,11 @@
"start a polygon"
%{ /* NOCONTEXT */
+#ifdef OPENGL
+#else
SETWIN(aGLXWindowId)
bgnpolygon();
- RETURN (true);
+#endif
%}
!
@@ -2034,9 +2049,11 @@
"start a quadrilateral strip"
%{ /* NOCONTEXT */
+#ifdef OPENGL
+#else
SETWIN(aGLXWindowId)
bgnqstrip();
- RETURN (true);
+#endif
%}
!
@@ -2044,9 +2061,11 @@
"start a triangle mesh"
%{ /* NOCONTEXT */
+#ifdef OPENGL
+#else
SETWIN(aGLXWindowId)
bgntmesh();
- RETURN (true);
+#endif
%}
!
@@ -2054,9 +2073,11 @@
"end a closed line"
%{ /* NOCONTEXT */
+#ifdef OPENGL
+#else
SETWIN(aGLXWindowId)
endclosedline();
- RETURN (true);
+#endif
%}
!
@@ -2064,9 +2085,11 @@
"end a line group"
%{ /* NOCONTEXT */
+#ifdef OPENGL
+#else
SETWIN(aGLXWindowId)
endline();
- RETURN (true);
+#endif
%}
!
@@ -2074,9 +2097,11 @@
"end a point group"
%{ /* NOCONTEXT */
+#ifdef OPENGL
+#else
SETWIN(aGLXWindowId)
endpoint();
- RETURN (true);
+#endif
%}
!
@@ -2084,9 +2109,11 @@
"end a polygon"
%{ /* NOCONTEXT */
+#ifdef OPENGL
+#else
SETWIN(aGLXWindowId)
endpolygon();
- RETURN (true);
+#endif
%}
!
@@ -2094,9 +2121,11 @@
"end a quadrilateral strip"
%{ /* NOCONTEXT */
+#ifdef OPENGL
+#else
SETWIN(aGLXWindowId)
endqstrip();
- RETURN (true);
+#endif
%}
!
@@ -2104,9 +2133,11 @@
"end a triangle mesh"
%{ /* NOCONTEXT */
+#ifdef OPENGL
+#else
SETWIN(aGLXWindowId)
endtmesh();
- RETURN (true);
+#endif
%}
! !
@@ -2134,18 +2165,17 @@
"change the graphics position to a 2D point, as passed in x/y"
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Coord c_x, c_y;
_COORD_ (x, c_x)
_COORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
move2(c_x, c_y);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:15:02 / cg"
@@ -2156,18 +2186,17 @@
The arguments must be smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Icoord c_x, c_y;
_ICOORD_ (x, c_x)
_ICOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
move2i(c_x, c_y);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:15:08 / cg"
@@ -2178,18 +2207,17 @@
The arguments must be smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Scoord c_x, c_y;
_SCOORD_ (x, c_x)
_SCOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
move2s(c_x, c_y);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:15:13 / cg"
@@ -2199,17 +2227,16 @@
"change the graphics position to a 3D point, as passed in vector v"
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
float vec[3], *c_v;
if (! (c_v = __glx_getFloatsFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
move((Coord)(c_v[0]), (Coord)(c_v[1]), (Coord)(c_v[2]));
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:14:29 / cg"
@@ -2219,8 +2246,6 @@
"change the graphics position to a 3D point, as passed in x/y/z"
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Coord c_x, c_y, c_z;
@@ -2228,10 +2253,11 @@
_COORD_ (y, c_y)
_COORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
move(c_x, c_y, c_z);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:14:38 / cg"
@@ -2242,8 +2268,6 @@
The arguments must be smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Icoord c_x, c_y, c_z;
@@ -2251,10 +2275,11 @@
_ICOORD_ (y, c_y)
_ICOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
movei(c_x, c_y, c_z);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:14:44 / cg"
@@ -2265,8 +2290,6 @@
The arguments must be smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Scoord c_x, c_y, c_z;
@@ -2274,10 +2297,11 @@
_SCOORD_ (y, c_y)
_SCOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
moves(c_x, c_y, c_z);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:14:48 / cg"
@@ -2288,17 +2312,16 @@
the relative distance is passed in vector v"
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
float vec[2], *c_v;
if (! (c_v = __glx_getFloatsFromInto(v, vec, 2))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rmv2((Coord)(c_v[0]), (Coord)(c_v[1]));
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:15:57 / cg"
@@ -2309,18 +2332,17 @@
the relative distance is passed in x/y"
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Coord c_x, c_y;
_COORD_ (x, c_x)
_COORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rmv2(c_x, c_y);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:16:42 / cg"
@@ -2332,18 +2354,17 @@
The arguments must be smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Icoord c_x, c_y;
_ICOORD_ (x, c_x)
_ICOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rmv2i(c_x, c_y);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:16:39 / cg"
@@ -2355,18 +2376,17 @@
The arguments must be smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Scoord c_x, c_y;
_SCOORD_ (x, c_x)
_SCOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rmv2s(c_x, c_y);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:16:33 / cg"
@@ -2377,17 +2397,16 @@
the relative distance is passed in vector v"
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
float vec[3], *c_v;
if (! (c_v = __glx_getFloatsFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rmv((Coord)(c_v[0]), (Coord)(c_v[1]), (Coord)(c_v[2]));
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:16:08 / cg"
@@ -2398,8 +2417,6 @@
the relative distance is passed in x/y/z"
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Coord c_x, c_y, c_z;
@@ -2407,10 +2424,11 @@
_COORD_ (y, c_y)
_COORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rmv(c_x, c_y, c_z);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:16:16 / cg"
@@ -2422,8 +2440,6 @@
The arguments must be smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Icoord c_x, c_y, c_z;
@@ -2431,10 +2447,11 @@
_ICOORD_ (y, c_y)
_ICOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rmvi(c_x, c_y, c_z);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:16:21 / cg"
@@ -2446,8 +2463,6 @@
The arguments must be smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Scoord c_x, c_y, c_z;
@@ -2455,10 +2470,11 @@
_SCOORD_ (y, c_y)
_SCOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rmvs(c_x, c_y, c_z);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:16:25 / cg"
@@ -2503,7 +2519,7 @@
if (ISCONNECTED) {
_INST(hasStereoExtension) = false;
-#if defined(XSGIStereo) && !defined(VGL)
+#if defined(XSGIStereo) && defined(GLX)
if (_INST(glOK) == true) {
if (XQueryExtension(dpy, "SGIFullScreenStereo", &dummy, &dummy, &dummy))
_INST(hasStereoExtension) = true;
@@ -2519,11 +2535,10 @@
"define a line style"
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
deflinestyle(_shortVal(n), _linestyleVal(ls));
- RETURN (true);
#endif
%}
!
@@ -2540,7 +2555,6 @@
#ifdef OPENGL
#else
draw2((Coord)(c_v[0]), (Coord)(c_v[1]));
- RETURN (true);
#endif
%}
@@ -2552,18 +2566,17 @@
to a new 2D position, passed in x/y."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Coord c_x, c_y;
_COORD_ (x, c_x)
_COORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
draw2(c_x, c_y);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:03:50 / cg"
@@ -2574,18 +2587,17 @@
to a new 2D position, passed in x/y."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Icoord c_x, c_y;
_ICOORD_ (x, c_x)
_ICOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
draw2i(c_x, c_y);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:04:07 / cg"
@@ -2596,18 +2608,17 @@
to a new 2D position, passed in x/y."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Scoord c_x, c_y;
_SCOORD_ (x, c_x)
_SCOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
draw2s(c_x, c_y);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:04:19 / cg"
@@ -2625,7 +2636,6 @@
#ifdef OPENGL
#else
draw((Coord)(c_v[0]), (Coord)(c_v[1]), (Coord)(c_v[2]));
- RETURN (true);
#endif
%}
@@ -2638,8 +2648,6 @@
The arguments may be floats, fractions or smallIntegers"
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Coord c_x, c_y, c_z;
@@ -2647,10 +2655,11 @@
_COORD_ (y, c_y)
_COORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
draw(c_x, c_y, c_z);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:04:46 / cg"
@@ -2662,8 +2671,6 @@
The arguments must be smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Icoord c_x, c_y, c_z;
@@ -2671,10 +2678,11 @@
_ICOORD_ (y, c_y)
_ICOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
drawi(c_x, c_y, c_z);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:04:54 / cg"
@@ -2686,8 +2694,6 @@
The arguments must be (16bit) smallIntegers."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
{
Scoord c_x, c_y, c_z;
@@ -2695,10 +2701,11 @@
_SCOORD_ (y, c_y)
_SCOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
draws(c_x, c_y, c_z);
- RETURN (true);
+#endif
}
-#endif
%}
"Modified: 22.3.1996 / 18:05:01 / cg"
@@ -2709,8 +2716,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
linewidth(_shortVal(n));
- RETURN (true);
+#endif
%}
!
@@ -2719,7 +2728,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
linewidthf(_floatVal(n));
+#endif
RETURN (true);
%}
!
@@ -2729,14 +2741,13 @@
to a new 2D position, passing the relative distance in the vector v."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
float vec[2], *c_v;
if (! (c_v = __glx_getFloatsFromInto(v, vec, 2))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rdr2((Coord)(c_v[0]), (Coord)(c_v[1]));
- RETURN (true);
#endif
%}
@@ -2748,15 +2759,14 @@
to a new 2D position, passing the relative distance in x/y."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Coord c_x, c_y;
_COORD_ (x, c_x)
_COORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rdr2(c_x, c_y);
- RETURN (true);
#endif
%}
@@ -2768,15 +2778,14 @@
to a new 2D position, passing the relative distance in x/y."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Icoord c_x, c_y;
_ICOORD_ (x, c_x)
_ICOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rdr2i(c_x, c_y);
- RETURN (true);
#endif
%}
@@ -2788,15 +2797,14 @@
to a new 2D position, passing the relative distance in x/y."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Scoord c_x, c_y;
_SCOORD_ (x, c_x)
_SCOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rdr2s(c_x, c_y);
- RETURN (true);
#endif
%}
@@ -2808,14 +2816,13 @@
to a new 3D position, passing the relative distance in the vector v."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
float vec[3], *c_v;
if (! (c_v = __glx_getFloatsFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rdr((Coord)(c_v[0]), (Coord)(c_v[1]), (Coord)(c_v[2]));
- RETURN (true);
#endif
%}
@@ -2827,16 +2834,15 @@
to a new 3D position, passing the relative distance in x/y/z."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Coord c_x, c_y, c_z;
_COORD_ (x, c_x)
_COORD_ (y, c_y)
_COORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rdr(c_x, c_y, c_z);
- RETURN (true);
#endif
%}
@@ -2848,16 +2854,15 @@
to a new 3D position, passing the relative distance in x/y/z."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Icoord c_x, c_y, c_z;
_ICOORD_ (x, c_x)
_ICOORD_ (y, c_y)
_ICOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rdri(c_x, c_y, c_z);
- RETURN (true);
#endif
%}
@@ -2869,16 +2874,15 @@
to a new 3D position, passing the relative distance in x/y/z."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Scoord c_x, c_y, c_z;
_SCOORD_ (x, c_x)
_SCOORD_ (y, c_y)
_SCOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rdrs(c_x, c_y, c_z);
- RETURN (true);
#endif
%}
@@ -2890,11 +2894,11 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
setlinestyle(_shortVal(index));
- RETURN (true);
-%}
-.
- ^ false
+#endif
+%}
! !
!GLXWorkstation methodsFor:'materials & lights'!
@@ -2932,17 +2936,14 @@
else if (target == @symbol(lightModel))
defType = LMODEL;
else {
- RETURN (false);
+ RETURN (nil);
}
_INT_ (index, i_index);
SETWIN(aGLXWindowId)
lmbind(defType, i_index);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxLmdef:what index:index np:np props:props in:aGLXWindowId
@@ -2965,7 +2966,7 @@
else if (what == @symbol(lightModel))
defType = DEFLMODEL;
else {
- RETURN (false);
+ RETURN (nil);
}
_INT_ (index, i_index);
@@ -2981,17 +2982,14 @@
ninstVars = __intVal(_ClassInstPtr(cls)->c_ninstvars);
fp = (float *) &(_InstPtr(props)->i_instvars[ninstVars]);
} else {
- RETURN (false);
+ RETURN (nil);
}
}
}
SETWIN(aGLXWindowId)
lmdef(defType, i_index, i_np, fp);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxTevbind:target index:index in:aGLXWindowId
@@ -3008,16 +3006,13 @@
if (target == @symbol(env0)) {
t = TV_ENV0;
} else {
- RETURN (false);
+ RETURN (nil);
}
}
SETWIN(aGLXWindowId)
tevbind(t, __intVal(index));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxTevdef:index np:np props:props in:aGLXWindowId
@@ -3030,11 +3025,8 @@
SETWIN(aGLXWindowId)
fp = __glx_getFloatsFromFloatArrayInto(props, fbuff);
tevdef(__intVal(index), __intVal(np), fp);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxTexDef2d:index nc:nc width:w height:h bits:image np:np props:props in:aGLXWindowId
@@ -3058,12 +3050,9 @@
SETWIN(aGLXWindowId)
texdef2d(__intVal(index), __intVal(nc), __intVal(w), __intVal(h),
(const unsigned long *)cp, __intVal(np), fp);
- RETURN (true);
}
#endif
%}
-.
- ^ false
!
glxTexDef3d:index nc:nc width:w height:h depth:d bits:image np:np props:props in:aGLXWindowId
@@ -3088,12 +3077,9 @@
texdef3d(__intVal(index), __intVal(nc), __intVal(w), __intVal(h),
__intVal(d),
(const unsigned long *)cp, __intVal(np), fp);
- RETURN (true);
}
#endif
%}
-.
- ^ false
!
glxTexbind:target index:index in:aGLXWindowId
@@ -3114,16 +3100,13 @@
} else if (target == @symbol(textureIdle)) {
t = TX_TEXTURE_IDLE;
} else {
- RETURN (false);
+ RETURN (nil);
}
}
SETWIN(aGLXWindowId)
texbind(t, __intVal(index));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
! !
!GLXWorkstation methodsFor:'matrix stack'!
@@ -3140,10 +3123,8 @@
SETWIN(aGLXWindowId)
getmatrix(matrix);
if (! __glx_putFloatsFromInto(matrix, arrayOf16Floats, 16)) RETURN(false);
- RETURN (true);
-#endif
-%}.
- ^ false
+#endif
+%}
!
glxLoadMatrix:arrayOf16Floats in:aGLXWindowId
@@ -3159,7 +3140,6 @@
if (! (m = __glx_getFloatsFromMatrixInto(arrayOf16Floats, &matrix))) RETURN (false);
SETWIN(aGLXWindowId)
loadmatrix(*m);
- RETURN (true);
#endif
%}
!
@@ -3177,7 +3157,6 @@
if (! (m = __glx_getFloatsFromMatrixInto(arrayOf16Floats, &matrix))) RETURN (false);
SETWIN(aGLXWindowId)
multmatrix(*m);
- RETURN (true);
#endif
%}
!
@@ -3187,7 +3166,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
popmatrix();
+#endif
%}
!
@@ -3196,7 +3178,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pushmatrix();
+#endif
%}
! !
@@ -3209,8 +3194,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
gconfig();
- RETURN (true);
+#endif
%}
!
@@ -3414,27 +3401,22 @@
"start a NURBS curve def - in real GL only"
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
bgncurve();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxBeginSurfaceIn:aGLXWindowId
"start a NURBS surface def - in real GL only"
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
bgnsurface();
- RETURN (true);
-#endif
-%}.
- ^ false
+#endif
+%}
!
glxDefBasis:id mat:aMatrix in:aGLXWindowId
@@ -3450,11 +3432,9 @@
if (__isSmallInteger(id)) {
SETWIN(aGLXWindowId)
defbasis((short)(__intVal(id)), *m);
- RETURN (true);
}
#endif
-%}.
- ^ false
+%}
"Modified: 19.3.1996 / 18:52:56 / cg"
!
@@ -3463,26 +3443,22 @@
"end a NURBS curve def - in real GL only"
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
endcurve();
- RETURN (true);
-#endif
-%}.
- ^ false
+#endif
+%}
!
glxEndSurfaceIn:aGLXWindowId
"end a NURBS surface def - in real GL only"
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
endsurface();
- RETURN (true);
-#endif
-%}.
- ^ false
+#endif
+%}
!
glxNurbsSurfaceUKnotCount: uKnotCount uKnot: uKnot
@@ -3533,11 +3509,12 @@
%{ /* NOCONTEXT */
if (__bothSmallInteger(u, v)) {
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
patchbasis((long)__intVal(u), (long)__intVal(v));
- RETURN (true);
+#endif
}
-%}.
- ^ false
+%}
"Modified: 19.3.1996 / 18:53:18 / cg"
!
@@ -3548,11 +3525,12 @@
%{ /* NOCONTEXT */
if (__bothSmallInteger(u, v)) {
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
patchcurves((long)__intVal(u), (long)__intVal(v));
- RETURN (true);
+#endif
}
-%}.
- ^ false
+%}
"Modified: 19.3.1996 / 18:53:34 / cg"
!
@@ -3563,11 +3541,12 @@
%{ /* NOCONTEXT */
if (__bothSmallInteger(u, v)) {
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
patchprecision((long)__intVal(u), (long)__intVal(v));
- RETURN (true);
+#endif
}
-%}.
- ^ false
+%}
!
glxPatchX:arrayOf16XFloats y:arrayOf16YFloats z:arrayOf16ZFloats in:aGLXWindowId
@@ -3580,12 +3559,14 @@
Matrix matrixX, matrixY, matrixZ;
Matrix *mX, *mY, *mZ;
- if (! (mX = __glx_getFloatsFromMatrixInto(arrayOf16XFloats, &matrixX))) RETURN (false);
- if (! (mY = __glx_getFloatsFromMatrixInto(arrayOf16YFloats, &matrixY))) RETURN (false);
- if (! (mZ = __glx_getFloatsFromMatrixInto(arrayOf16ZFloats, &matrixZ))) RETURN (false);
+ if (! (mX = __glx_getFloatsFromMatrixInto(arrayOf16XFloats, &matrixX)))
+ RETURN (nil);
+ if (! (mY = __glx_getFloatsFromMatrixInto(arrayOf16YFloats, &matrixY)))
+ RETURN (nil);
+ if (! (mZ = __glx_getFloatsFromMatrixInto(arrayOf16ZFloats, &matrixZ)))
+ RETURN (nil);
SETWIN(aGLXWindowId)
patch(*mX, *mY, *mZ);
- RETURN (true);
#endif
%}
@@ -3602,13 +3583,16 @@
Matrix matrixX, matrixY, matrixZ, matrixW;
Matrix *mX, *mY, *mZ, *mW;
- if (! (mX = __glx_getFloatsFromMatrixInto(arrayOf16XFloats, &matrixX))) RETURN (false);
- if (! (mY = __glx_getFloatsFromMatrixInto(arrayOf16YFloats, &matrixY))) RETURN (false);
- if (! (mZ = __glx_getFloatsFromMatrixInto(arrayOf16ZFloats, &matrixZ))) RETURN (false);
- if (! (mW = __glx_getFloatsFromMatrixInto(arrayOf16WFloats, &matrixW))) RETURN (false);
+ if (! (mX = __glx_getFloatsFromMatrixInto(arrayOf16XFloats, &matrixX)))
+ RETURN (nil);
+ if (! (mY = __glx_getFloatsFromMatrixInto(arrayOf16YFloats, &matrixY)))
+ RETURN (nil);
+ if (! (mZ = __glx_getFloatsFromMatrixInto(arrayOf16ZFloats, &matrixZ)))
+ RETURN (nil);
+ if (! (mW = __glx_getFloatsFromMatrixInto(arrayOf16WFloats, &matrixW)))
+ RETURN (nil);
SETWIN(aGLXWindowId)
rpatch(*mX, *mY, *mZ, *mW);
- RETURN (true);
#endif
%}
@@ -3629,10 +3613,8 @@
rectcopy(_screencoordVal(x1), _screencoordVal(y1),
_screencoordVal(x2), _screencoordVal(y2),
_screencoordVal(newx), _screencoordVal(newy));
- RETURN (true);
-#endif
-%}.
- ^ false
+#endif
+%}
! !
!GLXWorkstation methodsFor:'pixel reading'!
@@ -3701,11 +3683,8 @@
}
readsource(what);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxRectreadX1:x1 y1:y1 x2:x2 y2:y2 h:viewHeight to:dest in:aGLXWindowId
@@ -3785,7 +3764,7 @@
%{
#ifdef VGL
- if (__isSmallInteger(x) && __isSmallInteger(y)) {
+ if (__bothSmallInteger(x, y)) {
SETWIN(aGLXWindowId)
RETURN (__MKSMALLINT(X11_getPixel(__intVal(x), __intVal(y))));
}
@@ -3802,15 +3781,14 @@
"plot a point in x, y, 0."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Coord c_x, c_y;
_COORD_ (x, c_x)
_COORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pnt2(c_x, c_y);
- RETURN (true);
#endif
%}
@@ -3821,15 +3799,14 @@
"plot a point in x, y, 0."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Icoord c_x, c_y;
_ICOORD_ (x, c_x)
_ICOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pnt2i(c_x, c_y);
- RETURN (true);
#endif
%}
@@ -3840,15 +3817,14 @@
"plot a point in x, y, 0."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Scoord c_x, c_y;
_SCOORD_ (x, c_x)
_SCOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pnt2s(c_x, c_y);
- RETURN (true);
#endif
%}
@@ -3859,16 +3835,15 @@
"plot a point in x, y, z."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Coord c_x, c_y, c_z;
_COORD_ (x, c_x)
_COORD_ (y, c_y)
_COORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pnt(c_x, c_y, c_z);
- RETURN (true);
#endif
%}
@@ -3879,16 +3854,15 @@
"plot a point in x, y, z."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Icoord c_x, c_y, c_z;
_ICOORD_ (x, c_x)
_ICOORD_ (y, c_y)
_ICOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pnti(c_x, c_y, c_z);
- RETURN (true);
#endif
%}
@@ -3899,16 +3873,15 @@
"plot a point in x, y, z."
%{ /* NOCONTEXT */
-#ifdef OPENGL
-#else
Scoord c_x, c_y, c_z;
_SCOORD_ (x, c_x)
_SCOORD_ (y, c_y)
_SCOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pnts(c_x, c_y, c_z);
- RETURN (true);
#endif
%}
@@ -3918,27 +3891,21 @@
glxPntsize: n in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
pntsize(_shortVal(n));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxPntsizef: n in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
pntsizef(_floatVal(n));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
! !
!GLXWorkstation methodsFor:'polygons'!
@@ -3949,8 +3916,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
backface(_booleanVal(b));
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:26:50 / cg"
@@ -3961,8 +3930,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
concave(_booleanVal(b));
- RETURN (true);
+#endif
%}
!
@@ -3974,13 +3945,11 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
frontface(_booleanVal(b));
- RETURN (true);
-%}
-.
- ^ false
-
- "Modified: 19.3.1996 / 18:27:50 / cg"
+#endif
+%}
!
glxPdr2X: x y: y in: aGLXWindowId
@@ -3992,11 +3961,11 @@
_COORD_ (x, c_x)
_COORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pdr2(c_x, c_y);
- RETURN (true);
-%}
-
- "Modified: 19.3.1996 / 18:33:09 / cg"
+#endif
+%}
!
glxPdr2iX: x y: y in: aGLXWindowId
@@ -4008,8 +3977,10 @@
_ICOORD_ (x, c_x)
_ICOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pdr2i(c_x, c_y);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:33:28 / cg"
@@ -4024,8 +3995,10 @@
_SCOORD_ (x, c_x)
_SCOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pdr2s(c_x, c_y);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:34:03 / cg"
@@ -4041,8 +4014,10 @@
_COORD_ (y, c_y)
_COORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pdr(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:34:06 / cg"
@@ -4058,8 +4033,10 @@
_ICOORD_ (y, c_y)
_ICOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pdri(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:34:11 / cg"
@@ -4075,8 +4052,10 @@
_SCOORD_ (y, c_y)
_SCOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pdrs(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:34:14 / cg"
@@ -4091,8 +4070,10 @@
_COORD_ (x, c_x)
_COORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pmv2(c_x, c_y);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:32:45 / cg"
@@ -4107,8 +4088,10 @@
_ICOORD_ (x, c_x)
_ICOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pmv2i(c_x, c_y);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:32:42 / cg"
@@ -4123,8 +4106,10 @@
_SCOORD_ (x, c_x)
_SCOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pmv2s(c_x, c_y);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:32:38 / cg"
@@ -4140,8 +4125,10 @@
_COORD_ (y, c_y)
_COORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pmv(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:31:52 / cg"
@@ -4157,8 +4144,10 @@
_ICOORD_ (y, c_y)
_ICOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pmvi(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:31:59 / cg"
@@ -4174,8 +4163,10 @@
_SCOORD_ (y, c_y)
_SCOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pmvs(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:32:03 / cg"
@@ -4187,8 +4178,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
polymode(_longVal(mode));
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:29:32 / cg"
@@ -4203,8 +4196,10 @@
_COORD_ (x, c_x)
_COORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rpdr2(c_x, c_y);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:34:31 / cg"
@@ -4219,8 +4214,10 @@
_ICOORD_ (x, c_x)
_ICOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rpdr2i(c_x, c_y);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:34:36 / cg"
@@ -4235,8 +4232,10 @@
_SCOORD_ (x, c_x)
_SCOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rpdr2s(c_x, c_y);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:34:40 / cg"
@@ -4252,8 +4251,10 @@
_COORD_ (y, c_y)
_COORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rpdr(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:34:48 / cg"
@@ -4269,8 +4270,10 @@
_ICOORD_ (y, c_y)
_ICOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rpdri(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:34:51 / cg"
@@ -4286,8 +4289,10 @@
_SCOORD_ (y, c_y)
_SCOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rpdrs(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:34:55 / cg"
@@ -4302,8 +4307,10 @@
_COORD_ (x, c_x)
_COORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rpmv2(c_x, c_y);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:37:15 / cg"
@@ -4318,8 +4325,10 @@
_ICOORD_ (x, c_x)
_ICOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rpmv2i(c_x, c_y);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:37:20 / cg"
@@ -4334,8 +4343,10 @@
_SCOORD_ (x, c_x)
_SCOORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rpmv2s(c_x, c_y);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:38:06 / cg"
@@ -4351,8 +4362,10 @@
_COORD_ (y, c_y)
_COORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rpmv(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:38:03 / cg"
@@ -4368,8 +4381,10 @@
_ICOORD_ (y, c_y)
_ICOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rpmvi(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:37:53 / cg"
@@ -4385,8 +4400,10 @@
_SCOORD_ (y, c_y)
_SCOORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rpmvs(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:37:58 / cg"
@@ -4403,14 +4420,17 @@
#ifdef VGL
RETURN (__MKSTRING("vogl"));
#else
+# ifdef GLX
char buffer[128];
if (_INST(glOK) == true) {
gversion(buffer);
RETURN (__MKSTRING(buffer));
- } else {
- RETURN (nil);
}
+ RETURN (nil);
+# else
+ RETURN (nil);
+# endif
#endif
%}
@@ -4423,13 +4443,13 @@
"Returns the number if bit planes available on the device."
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
RETURN (__MKSMALLINT(getplanes()));
#endif
-%}
-.
- ^ false
+%}.
+ ^ 0
"Modified: 19.3.1996 / 18:50:44 / cg"
!
@@ -4447,13 +4467,30 @@
!
isTrueGL
- "return true, if this is a true GL (as opposed to a simulated VOGL)"
+ "return true, if this is a true GL (as opposed to a simulated VOGL).
+ Returns false for all openGL systems."
%{ /* NOCONTEXT */
#ifdef VGL
RETURN ( false );
#else
+# ifdef GLX
RETURN ( true );
+# else
+ RETURN (false);
+# endif
+#endif
+%}
+!
+
+isOpenGL
+ "return true, if this is an openGL (as opposed to a GL)"
+
+%{ /* NOCONTEXT */
+#ifdef OPENGL
+ RETURN ( true );
+#else
+ RETURN ( false );
#endif
%}
!
@@ -4461,7 +4498,8 @@
maxZValue
"return the max. Z value (only valid if z-buffer is supported)"
%{
-#ifdef GLX
+#ifndef OPENGL
+# ifdef GD_ZMAX
long zMax;
if (_INST(glOK) == true) {
@@ -4472,6 +4510,7 @@
}
RETURN ( __MKLARGEINT(zMax) );
}
+# endif
#endif
%}.
^ nil
@@ -4484,10 +4523,16 @@
%{ /* NOCONTEXT */
-#ifdef GLX
+#ifndef OPENGL
+# ifdef VGL
+ RETURN (true);
+# else
+# ifdef GD_BITS_NORM_DBL_RED
if (getgdesc(GD_BITS_NORM_DBL_RED) != 0) {
RETURN ( _INST(glOK) );
}
+# endif
+# endif
#endif
%}.
^ false
@@ -4551,10 +4596,12 @@
if the display supports GL drawing at all."
%{ /* NOCONTEXT */
-#ifdef GLX
+#ifndef OPENGL
+# ifdef GD_TEXTURE
if (getgdesc(GD_TEXTURE) != 0) {
RETURN ( _INST(glOK) );
}
+# endif
#endif
%}.
^ false
@@ -4571,10 +4618,12 @@
%{ /* NOCONTEXT */
-#ifdef GLX
+#ifndef OPENGL
+# ifdef GD_BITS_NORM_ZBUFFER
if (getgdesc(GD_BITS_NORM_ZBUFFER) != 0) {
RETURN ( _INST(glOK) );
}
+# endif
#endif
%}.
^ false
@@ -4590,8 +4639,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rect(_coordVal(x1), _coordVal(y1), _coordVal(x2), _coordVal(y2));
- RETURN (true);
+#endif
%}
!
@@ -4599,8 +4650,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rectf(_coordVal(x1), _coordVal(y1), _coordVal(x2), _coordVal(y2));
- RETURN (true);
+#endif
%}
!
@@ -4608,8 +4661,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rectfi(_icoordVal(x1), _icoordVal(y1), _icoordVal(x2), _icoordVal(y2));
- RETURN (true);
+#endif
%}
!
@@ -4617,8 +4672,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rectfs(_scoordVal(x1), _scoordVal(y1), _scoordVal(x2), _scoordVal(y2));
- RETURN (true);
+#endif
%}
!
@@ -4626,8 +4683,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
recti(_icoordVal(x1), _icoordVal(y1), _icoordVal(x2), _icoordVal(y2));
- RETURN (true);
+#endif
%}
!
@@ -4635,8 +4694,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rects(_scoordVal(x1), _scoordVal(y1), _scoordVal(x2), _scoordVal(y2));
- RETURN (true);
+#endif
%}
! !
@@ -4653,11 +4714,8 @@
if (! (v = __glx_getFloatsFromInto(arrayOf4Floats, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
sphdraw(v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxSphDrawX:x y:y z:z radius:r in:aGLXWindowId
@@ -4673,11 +4731,8 @@
_FLOAT_(r, vec[3])
SETWIN(aGLXWindowId)
sphdraw(vec);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxSphfreeIn: aGLXWindowId
@@ -4686,11 +4741,8 @@
#ifdef GLX
SETWIN(aGLXWindowId)
sphfree();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxSphgnpolysIn: aGLXWindowId
@@ -4701,8 +4753,6 @@
RETURN (__MKSMALLINT(sphgnpolys()));
#endif
%}
-.
- ^ false
!
glxSphmode: attribute value: value in: aGLXWindowId
@@ -4711,11 +4761,8 @@
#ifdef GLX
SETWIN(aGLXWindowId)
sphmode(__intVal(attribute), __intVal(value));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxSphobj: objid in: aGLXWindowId
@@ -4724,11 +4771,8 @@
#ifdef GLX
SETWIN(aGLXWindowId)
sphobj(_objectVal(objid));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxSphrotmatrix: mat in: aGLXWindowId
@@ -4740,11 +4784,8 @@
if (! (m = __glx_getFloatsFromMatrixInto(mat, &matrix))) RETURN (false);
SETWIN(aGLXWindowId)
sphrotmatrix(*m);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
! !
!GLXWorkstation methodsFor:'stereo extension'!
@@ -4755,11 +4796,8 @@
#ifdef FULL_GLX
SETWIN(aGLXWindowId)
leftbuffer(_booleanVal(bool));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxMonobufferIn: aGLXWindowId
@@ -4768,11 +4806,8 @@
#ifdef FULL_GLX
SETWIN(aGLXWindowId)
monobuffer();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxRightbuffer: bool in: aGLXWindowId
@@ -4781,11 +4816,8 @@
#ifdef FULL_GLX
SETWIN(aGLXWindowId)
rightbuffer(_booleanVal(bool));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
stereoExtensionBuffer:aBufferSymbol for:aWindowId
@@ -4957,11 +4989,8 @@
if (! (c_v = __glx_getDoublesFromInto(v, vec, 2))) RETURN(false);
SETWIN(aGLXWindowId)
t2d(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxT2f: v in: aGLXWindowId
@@ -4973,11 +5002,8 @@
if (! (c_v = __glx_getFloatsFromInto(v, vec, 2))) RETURN(false);
SETWIN(aGLXWindowId)
t2f(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxT2i: v in: aGLXWindowId
@@ -4989,11 +5015,8 @@
if (! (c_v = __glx_getLongsFromInto(v, vec, 2))) RETURN(false);
SETWIN(aGLXWindowId)
t2i(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxT2s: v in: aGLXWindowId
@@ -5005,11 +5028,8 @@
if (! (c_v = __glx_getShortsFromInto(v, vec, 2))) RETURN(false);
SETWIN(aGLXWindowId)
t2s(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxT3d:v in:aGLXWindowId
@@ -5021,11 +5041,8 @@
if (! (c_v = __glx_getDoublesFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
t3d(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxT3f:v in:aGLXWindowId
@@ -5037,11 +5054,8 @@
if (! (c_v = __glx_getFloatsFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
t3f(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxT3i:v in:aGLXWindowId
@@ -5053,11 +5067,8 @@
if (! (c_v = __glx_getLongsFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
t3i(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxT3s:v in:aGLXWindowId
@@ -5069,11 +5080,8 @@
if (! (c_v = __glx_getShortsFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
t3s(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxT4d: v in: aGLXWindowId
@@ -5085,11 +5093,8 @@
if (! (c_v = __glx_getDoublesFromInto(v, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
t4d(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxT4f: v in: aGLXWindowId
@@ -5101,11 +5106,8 @@
if (! (c_v = __glx_getFloatsFromInto(v, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
t4f(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxT4i: v in: aGLXWindowId
@@ -5117,11 +5119,8 @@
if (! (c_v = __glx_getLongsFromInto(v, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
t4i(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxT4s: v in: aGLXWindowId
@@ -5133,11 +5132,8 @@
if (! (c_v = __glx_getShortsFromInto(v, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
t4s(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
! !
!GLXWorkstation methodsFor:'transformations'!
@@ -5177,10 +5173,12 @@
if (! (v = __glx_getFloatsFromInto(arrayOf3Floats, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rot(v[0], 'x');
rot(v[1], 'y');
rot(v[2], 'z');
- RETURN (true);
+#endif
%}
!
@@ -5205,12 +5203,12 @@
if (__isSmallInteger(angle)) {
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rotate(__intVal(angle), c_axis);
- RETURN (true);
+#endif
}
%}
-.
- ^ false
!
glxRotateIX:angle in:aGLXWindowId
@@ -5221,12 +5219,12 @@
if (__isSmallInteger(angle)) {
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rotate(__intVal(angle), 'x');
- RETURN (true);
+#endif
}
%}
-.
- ^ false
!
glxRotateIX:xAngle y:yAngle z:zAngle in:aGLXWindowId
@@ -5238,14 +5236,14 @@
if (__bothSmallInteger(xAngle, yAngle)
&& __isSmallInteger(zAngle)) {
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rotate(__intVal(xAngle), 'x');
rotate(__intVal(yAngle), 'y');
rotate(__intVal(zAngle), 'z');
- RETURN (true);
+#endif
}
%}
-.
- ^ false
!
glxRotateIY:angle in:aGLXWindowId
@@ -5256,12 +5254,12 @@
if (__isSmallInteger(angle)) {
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rotate(__intVal(angle), 'y');
- RETURN (true);
+#endif
}
%}
-.
- ^ false
!
glxRotateIZ:angle in:aGLXWindowId
@@ -5272,12 +5270,12 @@
if (__isSmallInteger(angle)) {
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
rotate(__intVal(angle), 'z');
- RETURN (true);
+#endif
}
%}
-.
- ^ false
!
glxRotateX:angle in:aGLXWindowId
@@ -5304,8 +5302,6 @@
}
}
%}
-.
- ^ false
!
glxRotateY:angle in:aGLXWindowId
@@ -5340,8 +5336,10 @@
if (! (v = __glx_getFloatsFromInto(arrayOf3Floats, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
scale(v[0], v[1], v[2]);
- RETURN (true);
+#endif
%}
!
@@ -5354,8 +5352,10 @@
_FLOAT_ (x, f_x)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
scale(f_x, (float)0, (float)0);
- RETURN (true);
+#endif
%}
!
@@ -5370,8 +5370,10 @@
_FLOAT_ (y, f_y)
_FLOAT_ (z, f_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
scale(f_x, f_y, f_z);
- RETURN (true);
+#endif
%}
!
@@ -5384,8 +5386,10 @@
_FLOAT_ (y, f_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
scale((float)0, f_y, (float)0);
- RETURN (true);
+#endif
%}
!
@@ -5398,8 +5402,10 @@
_FLOAT_ (z, f_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
scale((float)0, (float)0, f_z);
- RETURN (true);
+#endif
%}
!
@@ -5413,8 +5419,10 @@
if (! (v = __glx_getFloatsFromInto(arrayOf3Floats, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
translate((Coord)(v[0]), (Coord)(v[1]), (Coord)(v[2]));
- RETURN (true);
+#endif
%}
!
@@ -5427,8 +5435,10 @@
_COORD_ (x, c_x)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
translate(c_x, (Coord)0, (Coord)0);
- RETURN (true);
+#endif
%}
!
@@ -5443,8 +5453,10 @@
_COORD_ (y, c_y)
_COORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
translate(c_x, c_y, c_z);
- RETURN (true);
+#endif
%}
!
@@ -5457,8 +5469,10 @@
_COORD_ (y, c_y)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
translate((Coord)0, c_y, (Coord)0);
- RETURN (true);
+#endif
%}
!
@@ -5471,8 +5485,10 @@
_COORD_ (z, c_z)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
translate((Coord)0, (Coord)0, c_z);
- RETURN (true);
+#endif
%}
! !
@@ -5481,46 +5497,36 @@
glxAcbufOp:op value:value in:aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
acbuf(__intVal(op), _floatVal(value));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxAcsizePlanes: planes in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
acsize(__intVal(planes));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxAfunctionRef: ref func: func in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
afunction(__intVal(ref), __intVal(func));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxBbox2Xmin: xmin ymin: ymin x1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
Screencoord c_xmin, c_ymin;
Coord c_x1, c_y1, c_x2, c_y2;
@@ -5531,18 +5537,15 @@
_COORD_ (x2, c_x2)
_COORD_ (y2, c_y2)
SETWIN(aGLXWindowId)
+#ifdef GLX
bbox2(c_xmin, c_ymin, c_x1, c_y1, c_x2, c_y2);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxBbox2iXmin: xmin ymin: ymin x1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
Screencoord c_xmin, c_ymin;
Icoord c_x1, c_y1, c_x2, c_y2;
@@ -5553,18 +5556,15 @@
_ICOORD_ (x2, c_x2)
_ICOORD_ (y2, c_y2)
SETWIN(aGLXWindowId)
+#ifdef GLX
bbox2i(c_xmin, c_ymin, c_x1, c_y1, c_x2, c_y2);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxBbox2sXmin: xmin ymin: ymin x1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
Screencoord c_xmin, c_ymin;
Scoord c_x1, c_y1, c_x2, c_y2;
@@ -5575,241 +5575,195 @@
_SCOORD_ (x2, c_x2)
_SCOORD_ (y2, c_y2)
SETWIN(aGLXWindowId)
+#ifdef GLX
bbox2s(c_xmin, c_ymin, c_x1, c_y1, c_x2, c_y2);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxBeginTrimIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
bgntrim();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxBlankscreen: b in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
blankscreen(_booleanVal(b));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxBlanktime: count in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
blanktime(__intVal(count));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxBlendcolorRed: red green: green blue: blue alpha: alpha in: aGLXWindowId
%{ /* NOCONTEXT */
+ SETWIN(aGLXWindowId)
#ifdef FULL_GLX
- SETWIN(aGLXWindowId)
blendcolor(_floatVal(red), _floatVal(green), _floatVal(blue), _floatVal(alpha));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxBlendfunctionSfactr: sfactr dfactr: dfactr in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
blendfunction(__intVal(sfactr), __intVal(dfactr));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxBlinkRate: rate i: i red: red green: green blue: blue in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
blink(_shortVal(rate), _colorindexVal(i),
_shortVal(red), _shortVal(green), _shortVal(blue));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxBlkqreadData: data n: n in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
- RETURN (__MKSMALLINT(blkqread((short *)_indexedArea(data), __intVal(n))));
-#endif
-%}
-.
- ^ false
+ int rslt = -1;
+
+ SETWIN(aGLXWindowId)
+#ifdef GLX
+ rslt = blkqread((short *)_indexedArea(data), __intVal(n));
+#endif
+ RETURN (__MKSMALLINT(rslt));
+%}
!
glxC3f: v in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
float vec[3], *c_v;
if (! (c_v = __glx_getFloatsFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef GLX
c3f(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxC3i: v in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
long vec[3], *c_v;
if (! (c_v = __glx_getLongsFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef GLX
c3i(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxC3s: v in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
short vec[3], *c_v;
if (! (c_v = __glx_getShortsFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef GLX
c3s(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxC4f: v in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
float vec[4], *c_v;
if (! (c_v = __glx_getFloatsFromInto(v, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef GLX
c4f(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxC4i: v in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
long vec[4], *c_v;
if (! (c_v = __glx_getLongsFromInto(v, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef GLX
c4i(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxC4s: v in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
short vec[4], *c_v;
if (! (c_v = __glx_getShortsFromInto(v, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef GLX
c4s(c_v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxClearhitcodeIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
clearhitcode();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxClipplaneIndex: index mode: mode params: params in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
float vec[4], *v;
if (! (v = __glx_getFloatsFromInto(params, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef GLX
clipplane(__intVal(index), __intVal(mode), v);
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxCmodeIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
cmode();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxColorfIndex: index in: aGLXWindowId
@@ -5820,217 +5774,170 @@
glxCuroriginN: n xorigin: xorigin yorigin: yorigin in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
curorigin(_shortVal(n), _shortVal(xorigin), _shortVal(yorigin));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxCursoffIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
cursoff();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxCursonIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
curson();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxCurstype: type in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
curstype(__intVal(type));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxCyclemapDuration: duration map: map nxtmap: nxtmap in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
cyclemap(_shortVal(duration), _shortVal(map), _shortVal(nxtmap));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxDefpatternN: n size: size mask: mask in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
defpattern(_shortVal(n), _shortVal(size), (unsigned short *)_indexedArea(mask));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxDeltag: t in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
deltag(_tagVal(t));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxDepthcueMode: mode in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
depthcue(_booleanVal(mode));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxDitherMode: mode in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
dither(_longVal(mode));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxDopup: pup in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
dopup(_longVal(pup));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxDrawmode: mode in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
drawmode(_longVal(mode));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxEditobj: obj in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
editobj(_objectVal(obj));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxEndTrimIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
endtrim();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxEndfullscrnIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
endfullscrn();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxEndpupmodeIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
endpupmode();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxFinishIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
finish();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxFont: fntnum in: aGLXWindowId
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef GLX
font(_shortVal(fntnum));
- RETURN (true);
+#endif
%}
!
@@ -6038,127 +5945,131 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
foreground();
- RETURN (true);
+#endif
%}
!
glxFreepup: pup in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
freepup(_longVal(pup));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxFudgeXfudge: xfudge yfudge: yfudge in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
fudge(_longVal(xfudge), _longVal(yfudge));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxFullscrnIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
fullscrn();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxGbeginIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef GLX
gbegin();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxGentagIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
- RETURN (__MKSMALLINT(gentag()));
-#endif
-%}
-.
- ^ false
+ int rslt = -1;
+
+#ifdef GLX
+ SETWIN(aGLXWindowId)
+ rslt = gentag();
+#endif
+ RETURN (__MKSMALLINT(rslt));
+%}
!
glxGetbackfaceIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
- RETURN (__MKSMALLINT(getbackface()));
-#endif
-%}
-.
- ^ false
+ int rslt = -1;
+
+#ifdef GLX
+ SETWIN(aGLXWindowId)
+ rslt = getbackface();
+#endif
+ RETURN (__MKSMALLINT(rslt));
+%}
!
glxGetbufferIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
- RETURN (__MKSMALLINT(getbuffer()));
-#endif
-%}
-.
- ^ false
+ int rslt = -1;
+
+#ifdef GLX
+ SETWIN(aGLXWindowId)
+ rslt = getbuffer();
+#endif
+ RETURN (__MKSMALLINT(rslt));
+%}
!
glxGetbutton: num in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifndef OPENGL
- SETWIN(aGLXWindowId)
- RETURN (__MKSMALLINT(getbutton(_deviceVal(num))));
-#endif
+ int rslt = -1;
+
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
+ rslt = getbutton(_deviceVal(num));
+#endif
+ RETURN (__MKSMALLINT(rslt));
%}
!
glxGetcmmodeIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
- RETURN (__MKBOOLEAN(getcmmode()));
-#endif
-%}
-.
- ^ false
+ int rslt = 0;
+
+ SETWIN(aGLXWindowId)
+#ifdef GLX
+ rslt = getcmmode();
+#endif
+ RETURN (__MKBOOLEAN(rslt));
+%}
!
glxGetcolorIn: aGLXWindowId
"return the current drawing color"
%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- RETURN (__MKSMALLINT(getcolor()));
+ int rslt = -1;
+
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
+ rslt = getcolor();
+#endif
+ RETURN (__MKSMALLINT(rslt));
%}
!
@@ -6237,16 +6148,28 @@
glxGetgdescInquiry: inquiry in: aGLXWindowId
%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- RETURN (__MKSMALLINT(getgdesc(_longVal(inquiry))));
+ int rslt = 0;
+
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
+ rslt = getgdesc(_longVal(inquiry));
+#endif
+ RETURN (__MKSMALLINT(rslt));
%}
!
glxGetheightIn: aGLXWindowId
%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- RETURN (__MKSMALLINT(getheight()));
+ int rslt = 0;
+
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
+ rslt = getheight();
+#endif
+ RETURN (__MKSMALLINT(rslt));
%}
!
@@ -6481,14 +6404,12 @@
glxGexitIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
gexit();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxGflushIn: aGLXWindowId
@@ -6497,24 +6418,19 @@
#ifdef GLX
SETWIN(aGLXWindowId)
gflush();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxGinitIn: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
ginit();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxGlcompatMode: mode value: value in: aGLXWindowId
@@ -6523,11 +6439,8 @@
#ifdef GLX
SETWIN(aGLXWindowId)
glcompat(_longVal(mode), _longVal(value));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxGresetIn: aGLXWindowId
@@ -6536,11 +6449,8 @@
#ifdef GLX
SETWIN(aGLXWindowId)
greset();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxGsyncIn: aGLXWindowId
@@ -6549,11 +6459,8 @@
#ifdef GLX
SETWIN(aGLXWindowId)
gsync();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxIconsizeX: x y: y in: aGLXWindowId
@@ -6562,11 +6469,8 @@
#ifdef GLX
SETWIN(aGLXWindowId)
iconsize(_longVal(x), _longVal(y));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxImakebackgroundIn: aGLXWindowId
@@ -6575,11 +6479,8 @@
#ifdef GLX
SETWIN(aGLXWindowId)
imakebackground();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxInitnamesIn: aGLXWindowId
@@ -6588,11 +6489,8 @@
#ifdef GLX
SETWIN(aGLXWindowId)
initnames();
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxIsqueued: dev in: aGLXWindowId
@@ -7128,7 +7026,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
prefposition(_longVal(x1), _longVal(x2), _longVal(y1), _longVal(y2));
+#endif
RETURN (true);
%}
!
@@ -7137,7 +7038,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
prefsize(_longVal(x), _longVal(y));
+#endif
RETURN (true);
%}
!
@@ -7171,10 +7075,10 @@
glxQdevice: dev in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifndef OPENGL
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
qdevice(_deviceVal(dev));
- RETURN (true);
#endif
%}
!
@@ -7183,8 +7087,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
qenter(_deviceVal(dev), _shortVal(val));
- RETURN (true);
+#endif
%}
!
@@ -7207,8 +7113,11 @@
short c_data;
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
dev = __MKSMALLINT(qread(&c_data));
data = __MKSMALLINT(c_data);
+#endif
%}
.
^ Array with: dev with: data
@@ -7218,7 +7127,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
qreset();
+#endif
RETURN (true);
%}
!
@@ -7226,8 +7138,14 @@
glxQtestIn: aGLXWindowId
%{ /* NOCONTEXT */
- SETWIN(aGLXWindowId)
- RETURN (__MKSMALLINT(qtest()));
+ int rslt = 0;
+
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
+ rslt = qtest();
+#endif
+ RETURN (__MKSMALLINT(rslt));
%}
!
@@ -7814,14 +7732,12 @@
glxUnqdevice: dev in: aGLXWindowId
%{ /* NOCONTEXT */
-#ifdef GLX
- SETWIN(aGLXWindowId)
+ SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
unqdevice(_deviceVal(dev));
- RETURN (true);
-#endif
-%}
-.
- ^ false
+#endif
+%}
!
glxWmpack: pack in: aGLXWindowId
@@ -8040,7 +7956,10 @@
if (! (c_v = __glx_getDoublesFromInto(v, vec, 2))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v2d(c_v);
+#endif
RETURN (true);
%}
!
@@ -8053,7 +7972,10 @@
if (! (c_v = __glx_getFloatsFromInto(v, vec, 2))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v2f(c_v);
+#endif
RETURN (true);
%}
!
@@ -8067,7 +7989,10 @@
_FLOAT_(x, vec[0])
_FLOAT_(y, vec[1])
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v2f(vec);
+#endif
RETURN (true);
%}
!
@@ -8080,7 +8005,10 @@
if (! (c_v = __glx_getLongsFromInto(v, vec, 2))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v2i(c_v);
+#endif
RETURN (true);
%}
!
@@ -8093,7 +8021,10 @@
if (! (c_v = __glx_getShortsFromInto(v, vec, 2))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v2s(c_v);
+#endif
RETURN (true);
%}
!
@@ -8106,7 +8037,10 @@
if (! (c_v = __glx_getDoublesFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v3d(c_v);
+#endif
RETURN (true);
%}
.
@@ -8121,7 +8055,10 @@
if (! (c_v = __glx_getFloatsFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v3f(c_v);
+#endif
RETURN (true);
%}
!
@@ -8136,7 +8073,10 @@
_FLOAT_(y, vec[1])
_FLOAT_(z, vec[2])
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v3f(vec);
+#endif
RETURN (true);
%}
!
@@ -8149,7 +8089,10 @@
if (! (c_v = __glx_getLongsFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v3i(c_v);
+#endif
RETURN (true);
%}
!
@@ -8162,7 +8105,10 @@
if (! (c_v = __glx_getShortsFromInto(v, vec, 3))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v3s(c_v);
+#endif
RETURN (true);
%}
!
@@ -8176,7 +8122,10 @@
if (! (c_v = __glx_getDoublesFromInto(v, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v4d(c_v);
+#endif
RETURN (true);
%}
!
@@ -8190,7 +8139,10 @@
if (! (c_v = __glx_getFloatsFromInto(v, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v4f(c_v);
+#endif
RETURN (true);
%}
!
@@ -8204,7 +8156,10 @@
if (! (c_v = __glx_getLongsFromInto(v, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v4i(c_v);
+#endif
RETURN (true);
%}
!
@@ -8218,7 +8173,10 @@
if (! (c_v = __glx_getShortsFromInto(v, vec, 4))) RETURN(false);
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v4s(c_v);
+#endif
RETURN (true);
%}
!
@@ -8232,7 +8190,10 @@
static float vec[3] = {0.0, 0.0, 0.0};
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v3f(vec);
+#endif
RETURN (true);
%}
!
@@ -8246,7 +8207,10 @@
static float vec[3] = {1.0, 0.0, 0.0};
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v3f(vec);
+#endif
RETURN (true);
%}
!
@@ -8260,7 +8224,10 @@
static float vec[3] = {0.0, 1.0, 0.0};
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v3f(vec);
+#endif
RETURN (true);
%}
!
@@ -8274,7 +8241,10 @@
static float vec[3] = {0.0, 0.0, 1.0};
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
v3f(vec);
+#endif
RETURN (true);
%}
! !
@@ -8351,8 +8321,10 @@
_COORD_ (pz, f_pz)
_ANGLE_ (twist, a_twist)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
lookat(f_vx, f_vy, f_vz, f_px, f_py, f_pz, a_twist);
- RETURN (true);
+#endif
%}
!
@@ -8367,10 +8339,11 @@
_FLOAT_(right, f_right)
_FLOAT_(bottom, f_bottom)
_FLOAT_(top, f_top)
+#ifdef OPENGL
+#else
ortho2(f_left, f_right, f_bottom, f_top);
-%}
-.
- ^ true
+#endif
+%}
!
glxOrthoLeft: left right: right bottom: bottom top: top near: near far: far in: aGLXWindowId
@@ -8387,8 +8360,10 @@
_FLOAT_(near, f_near)
_FLOAT_(far, f_far)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
ortho(f_left, f_right, f_bottom, f_top, f_near, f_far);
- RETURN (true);
+#endif
%}
!
@@ -8407,9 +8382,10 @@
_COORD_ (far, c_far)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
perspective(a_fovy, f_aspect, c_near, c_far);
-
- RETURN (true);
+#endif
%}
!
@@ -8424,8 +8400,10 @@
_ANGLE_(inc, a_inc)
_ANGLE_(twist, a_twist)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
polarview(c_dist, a_azim, a_inc, a_twist);
- RETURN (true);
+#endif
%}
!
@@ -8434,8 +8412,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
popviewport();
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:58:24 / cg"
@@ -8446,8 +8426,10 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
pushviewport();
- RETURN (true);
+#endif
%}
"Modified: 19.3.1996 / 18:58:02 / cg"
@@ -8457,19 +8439,22 @@
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
reshapeviewport();
-%}
-.
- ^ true
+#endif
+%}
!
glxViewportLeft:left right:right bottom:bottom top:top in:aGLXWindowId
%{ /* NOCONTEXT */
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
viewport(_screencoordVal(left), _screencoordVal(right),
_screencoordVal(bottom), _screencoordVal(top));
- RETURN (true);
+#endif
%}
!
@@ -8492,9 +8477,10 @@
_COORD_ (near, c_near)
_COORD_ (far, c_far)
SETWIN(aGLXWindowId)
+#ifdef OPENGL
+#else
window(c_left, c_right, c_bot, c_top, c_near, c_far);
-
- RETURN (true);
+#endif
%}
! !
@@ -8792,5 +8778,5 @@
!GLXWorkstation class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libview/GLXWorkstation.st,v 1.67 1997-09-18 20:21:07 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libview/GLXWorkstation.st,v 1.68 1997-10-21 18:20:51 cg Exp $'
! !
--- a/Image.st Tue Oct 21 20:11:53 1997 +0200
+++ b/Image.st Tue Oct 21 20:22:05 1997 +0200
@@ -10,11 +10,13 @@
hereby transferred.
"
+'From Smalltalk/X, Version:3.2.1 on 19-oct-1997 at 5:20:30 pm' !
+
Object subclass:#Image
instanceVariableNames:'bytes width height bitsPerPixel depth colorMap maxPixelValue
rowByteSize bitsPerSample samplesPerPixel photometric device
deviceForm monoDeviceForm fullColorDeviceForm mask
- maskedPixelsAre0'
+ maskedPixelsAre0 fileName imageSequence'
classVariableNames:'Lobby DitherAlgorithm NumberOfDitherColors
CollectGarbageWhenRunningOutOfColors ImageNotFoundQuerySignal
BadImageFormatQuerySignal ImageSaveErrorSignal
@@ -149,6 +151,15 @@
if true, masked pixels are known to be
zero in the pixel bytes.
+ fileName <String> the name of the file from which the
+ image was loaded - nil otherwise.
+ Useful for image save functions
+ and for the UIPainter utility.
+
+ imageSequence the imageSequence, of which the
+ instance is a frame or nil,
+ if its not part of a sequence.
+
bitsPerPixel not used in ST/X
depth - these have been added in instVar-slots
maxPixelValue - according to the ST-80's image class.
@@ -2985,12 +2996,12 @@
|ditheredBits|
(depth == 1) ifTrue:[
- ^ self asFloydSteinbergDitheredMonochromeImage
+ ^ self asFloydSteinbergDitheredMonochromeImage
].
ditheredBits := self floydSteinbergDitheredGrayBitsDepth:depth.
^ (self class implementorForDepth:depth)
- width:width height:height fromArray:ditheredBits
+ width:width height:height fromArray:ditheredBits
"
|i|
@@ -3006,11 +3017,11 @@
|i|
i := Depth24Image width:4 height:1
- fromArray:#[
- 16rFF 16r00 16r00 16rFF 16r00 16r00 16rFF 16r00 16r00 16rFF 16r00 16r00
- 16rFF 16r00 16r00 16rFF 16r00 16r00 16rFF 16r00 16r00 16rFF 16r00 16r00
- 16rFF 16r00 16r00 16rFF 16r00 16r00 16rFF 16r00 16r00 16rFF 16r00 16r00
- 16rFF 16r00 16r00 16rFF 16r00 16r00 16rFF 16r00 16r00 16rFF 16r00 16r00].
+ fromArray:#[
+ 16rFF 16r00 16r00 16rFF 16r00 16r00 16rFF 16r00 16r00 16rFF 16r00 16r00
+ 16rFF 16r00 16r00 16rFF 16r00 16r00 16rFF 16r00 16r00 16rFF 16r00 16r00
+ 16rFF 16r00 16r00 16rFF 16r00 16r00 16rFF 16r00 16r00 16rFF 16r00 16r00
+ 16rFF 16r00 16r00 16rFF 16r00 16r00 16rFF 16r00 16r00 16rFF 16r00 16r00].
i := i magnifiedBy:4@1.
i inspect.
@@ -3023,13 +3034,13 @@
|i|
i := Depth24Image width:4 height:6
- fromArray:#[
- 16r00 16r00 16r00 16r00 16r00 16r80 16r00 16r00 16rff 16r00 16r80 16r00
- 16r00 16r80 16r80 16r00 16rFF 16r00 16r00 16rFF 16r80 16r00 16rFF 16rFF
- 16r80 16r00 16r00 16r80 16r00 16r80 16r80 16r00 16rff 16r80 16r80 16r00
- 16r80 16r80 16r80 16r80 16rFF 16r00 16r80 16rFF 16r80 16r80 16rFF 16rFF
- 16rFF 16r00 16r00 16rFF 16r00 16r80 16rFF 16r00 16rff 16rFF 16r80 16r00
- 16rFF 16r80 16r80 16rFF 16rFF 16r00 16rFF 16rFF 16r80 16rFF 16rFF 16rFF].
+ fromArray:#[
+ 16r00 16r00 16r00 16r00 16r00 16r80 16r00 16r00 16rff 16r00 16r80 16r00
+ 16r00 16r80 16r80 16r00 16rFF 16r00 16r00 16rFF 16r80 16r00 16rFF 16rFF
+ 16r80 16r00 16r00 16r80 16r00 16r80 16r80 16r00 16rff 16r80 16r80 16r00
+ 16r80 16r80 16r80 16r80 16rFF 16r00 16r80 16rFF 16r80 16r80 16rFF 16rFF
+ 16rFF 16r00 16r00 16rFF 16r00 16r80 16rFF 16r00 16rff 16rFF 16r80 16r00
+ 16rFF 16r80 16r80 16rFF 16rFF 16r00 16rFF 16rFF 16r80 16rFF 16rFF 16rFF].
i := i magnifiedBy:30.
i inspect.
@@ -3061,14 +3072,14 @@
|i|
i := Depth4Image
- width:4
- height:4
- fromArray:#[
- 16r01 16r23
- 16r45 16r67
- 16r89 16rab
- 16rcd 16ref
- ].
+ width:4
+ height:4
+ fromArray:#[
+ 16r01 16r23
+ 16r45 16r67
+ 16r89 16rab
+ 16rcd 16ref
+ ].
i := i magnifiedBy:30.
i inspect.
(i asFloydSteinbergDitheredGrayImageDepth:1) inspect.
@@ -3077,7 +3088,7 @@
"
"Created: 10.6.1996 / 12:33:47 / cg"
- "Modified: 17.4.1997 / 01:13:55 / cg"
+ "Modified: 19.10.1997 / 04:09:04 / cg"
!
asFloydSteinbergDitheredMonochromeFormOn:aDevice
@@ -4609,15 +4620,15 @@
!Image methodsFor:'converting greyscale images'!
greyImageAsFormOn:aDevice
- "return a thresholded grey-deviceForm from the grey image."
+ "return a grey-deviceForm from the grey image."
|pictureDepth nPlanes|
nPlanes := samplesPerPixel.
(nPlanes == 2) ifTrue:[
- 'Image [info]: alpha plane ignored' infoPrintCR.
- nPlanes := 1
+ 'Image [info]: alpha plane ignored' infoPrintCR.
+ nPlanes := 1
].
pictureDepth := bitsPerSample at:1.
@@ -4625,23 +4636,19 @@
"monochrome is very easy ..."
(pictureDepth == 1) ifTrue:[
- ^ Form width:width height:height fromArray:bytes on:aDevice
+ ^ Form width:width height:height fromArray:bytes on:aDevice
].
(aDevice visualType == #TrueColor) ifTrue:[
- ^ self greyImageAsTrueColorFormOn:aDevice
- ].
-
-"/ (aDevice visualType == #PseudoColor
-"/ or:[aDevice visualType == #GrayScale
-"/ or:[aDevice visualType == #StaticColor]]) ifTrue:[
+ ^ self greyImageAsTrueColorFormOn:aDevice
+ ].
"/ PseudoColor conversion also works for StaticColor,
"/ GrayScale and DirectColor; although possibly with suboptimal results
^ self greyImageAsPseudoFormOn:aDevice
- "Modified: 10.1.1997 / 17:52:49 / cg"
+ "Modified: 19.10.1997 / 05:17:25 / cg"
!
greyImageAsPseudoFormOn:aDevice
@@ -4651,7 +4658,8 @@
colorMap usedColors nUsed aColor
nColors "{ Class: SmallInteger }"
range id
- cube nR nG nB grayColors|
+ cube nR nG nB grayColors
+ fit|
pictureDepth := bitsPerSample at:1.
@@ -4702,33 +4710,25 @@
nUsed := usedColors max + 1.
colorMap := Array new:nUsed.
- photometric == #blackIs0 ifTrue:[
- usedColors do:[:grey |
- colorMap at:(grey + 1) put:(Color gray:(100.0 / 256.0 * grey))
- ]
- ] ifFalse:[
- usedColors do:[:grey |
- colorMap at:(grey + 1) put:(Color gray:(100 - (100.0 / 256.0 * grey)))
- ]
- ]
+ range := 100 / 255.0.
+ usedColors do:[:grey |
+ colorMap at:(grey + 1) put:(Color gray:(range * grey))
+ ].
] ifFalse:[
nColors := (1 bitShift:pictureDepth).
colorMap := Array new:nColors.
range := 100 / (nColors - 1) asFloat.
- photometric == #blackIs0 ifTrue:[
- 1 to:nColors do:[:i |
- colorMap at:i put:(Color gray:(i - 1) * range).
- ].
- ] ifFalse:[
- 1 to:nColors do:[:i |
- colorMap at:(nColors - i + 1) put:(Color gray:(i - 1) * range).
- ].
+ 1 to:nColors do:[:i |
+ colorMap at:i put:(Color gray:(i - 1) * range).
].
].
-
- "XXX should reduce 8->6->4->2 planes, if not all colors could be allocated"
-
- "setup the translation map"
+ photometric ~~ #blackIs0 ifTrue:[
+ colorMap reverse
+ ].
+
+ "allocate those colors & setup the translation map"
+
+ fit := true.
map := ByteArray uninitializedNew:256.
nColors := colorMap size.
1 to:nColors do:[:i |
@@ -4737,14 +4737,21 @@
aColor := aColor on:aDevice.
colorMap at:i put:aColor.
id := aColor colorId.
- id notNil ifTrue:[
- map at:i put:id
- ] ifFalse:[
- map at:i put:0
- ]
+ id isNil ifTrue:[
+ id := 0.
+ fit := false.
+ ].
+ map at:i put:id
]
].
+ fit ifFalse:[
+ "/ here comes the hard part - some grey value
+ "/ could not be allocated.
+ "/ Must dither.
+
+ ].
+
"expand & translate"
bytes expandPixels:pictureDepth
width:width
@@ -4761,7 +4768,7 @@
into:(f id) x:0 y:0 width:width height:height with:(f gcId).
^ f
- "Modified: 23.6.1997 / 15:36:41 / cg"
+ "Modified: 19.10.1997 / 05:19:44 / cg"
!
greyImageAsTrueColorFormOn:aDevice
@@ -10985,6 +10992,6 @@
!Image class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libview/Image.st,v 1.222 1997-10-16 10:33:23 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libview/Image.st,v 1.223 1997-10-21 18:21:17 cg Exp $'
! !
Image initialize!
--- a/styles/iris.style Tue Oct 21 20:11:53 1997 +0200
+++ b/styles/iris.style Tue Oct 21 20:22:05 1997 +0200
@@ -3,7 +3,7 @@
; silicon graphics style
; (somwehat like motif, but with smooth edges and bells&whistles)
;
-; $Header: /cvs/stx/stx/libview/styles/iris.style,v 1.22 1997-08-13 15:30:50 cg Exp $
+; $Header: /cvs/stx/stx/libview/styles/iris.style,v 1.23 1997-10-21 18:22:05 cg Exp $
comment 'Silicon graphics'' Iris look alike'
@@ -43,8 +43,8 @@
textLightColor =viewGrey
#if Display hasColors
-textSelectionForegroundColor Color black
-textSelectionBackgroundColor Color green
+textSelection.foregroundColor Color black
+textSelection.backgroundColor Color green
#endif
textCursorForegroundColor Color white
@@ -85,46 +85,46 @@
labelFont =variableFont
#if Display hasColors
-toggleShowLamp true
-toggleLampColor Color yellow
-checkToggleCheckColor Color red
-checkToggleBitmapFile 'CheckOnColor.xpm'
-checkToggleLabelOverMargin true
+toggle.showLamp true
+toggle.lampColor Color yellow
+checkToggle.checkColor Color red
+checkToggle.bitmapFile 'CheckOnColor.xpm'
+checkToggle.labelOverMargin true
radioButtonShowLamp false
radioButtonStyle #iris
#endif
-scrollerLevel -1
-scrollerThumbLevel 3
-scrollerThumbColor =viewGrey
+scroller.level -1
+scroller.thumbLevel 3
+scroller.thumbColor =viewGrey
#if Display hasGreyscales
-scrollerThumbEnteredColor =veryLightGray
+scroller.thumbEnteredColor =veryLightGray
#endif
-scrollerThumbEdgeStyle #soft
-scrollerNTallyMarks 3
-scrollerTallyLevel 1
-scrollerGhostColor =mediumGray
-scrollerGhostLevel -1
+scroller.thumbEdgeStyle #soft
+scroller.NTallyMarks 3
+scroller.tallyLevel 1
+scroller.ghostColor =mediumGray
+scroller.ghostLevel -1
#if Display hasGreyscales not
-scrollerViewBackground Color white
+scroller.viewBackground Color white
#endif
-scrollerMiddleButtonJump true
+scroller.middleButtonJump true
-sliderNTallyMarks 1
-sliderTallyLevel 1
+slider.NTallyMarks 1
+slider.tallyLevel 1
-buttonEdgeStyle #soft
-buttonActiveLevel -1
-buttonPassiveLevel 3
-buttonDisabledForegroundColor =darkGray
+button.edgeStyle #soft
+button.activeLevel -1
+button.passiveLevel 3
+button.disabledForegroundColor =darkGray
#if Display hasGreyscales
-buttonEnteredBackgroundColor =veryLightGray
-buttonActiveBackgroundColor nil
-buttonActiveForegroundColor Color black
+button.enteredBackgroundColor =veryLightGray
+button.activeBackgroundColor nil
+button.activeForegroundColor Color black
#else
-buttonEnteredBackgroundColor Color white
-buttonActiveForegroundColor Color white
-buttonActiveBackgroundColor Color black
+button.enteredBackgroundColor Color white
+button.activeForegroundColor Color white
+button.activeBackgroundColor Color black
#endif
#if OperatingSystem getOSType = 'irix'
@@ -140,11 +140,11 @@
menuCheckColor Color red
#endif
-pullDownMenuFont =menuFont
-pullDownMenuKeepMenu true
-pullDownMenuLevel 0
-pullDownMenuHilightLevel 2
-pullDownMenuEdgeStyle #soft
+pullDownMenu.font =menuFont
+pullDownMenu.keepMenu true
+pullDownMenu.level 0
+pullDownMenu.hilightLevel 2
+pullDownMenu.edgeStyle #soft
variablePanelHandleColor =darkGray
#if Display hasGreyscales