IITest.cm
Copyright © 1986 by Xerox Corporation. All rights reserved.
Michael Plass, December 2, 1986 4:46:53 pm PST
ColorDisplay on 1 640x480
StatementInterpreter
Run IIPackage
Run TimeIt
← &bw ← IISample.MapFromFrameBuffer[Terminal.GetBWFrameBuffer[Terminal.Current[]]]
← &b ← IISample.MapFromFrameBuffer[Terminal.GetColorFrameBufferA[Terminal.Current[]]]
← IISample.Clear[&b]
← &c ← IIBitmapContext.Create[[480, 640], [slow: down, fast: right], [60.0, 60.0], TRUE, $Bitmap]
← IIBitmapContext.SetBitmap[&c, &b]
← II.SetFont[&c, II.FindFontScaled["xerox/pressfonts/timesroman-mrr", 30]]
← II.SetFont[&c, II.FindFontScaled["xerox/pressfonts/APL-mrr", 30]]
← II.SetFont[&c, II.FindFontScaled["xerox/pressfonts/Gacha-mir", 30]]
← II.SetFont[&c, II.FindFontScaled["xerox/xc1-1-1/acmodern-bold-italic", 30]]
← II.RotateT[&c, 140]
← IISample.Clear[&b]
← II.SetXY[&c, [10,90]]
← II.ShowRope[&c, "Big yellow 0123456789"]
{ FOR i: INT IN [0..100) DO II.RotateT[&c, -40]; II.ScaleT[&c, .9]; II.ShowRope[&c, "Hello World"] ENDLOOP }
← II.MaskBitmap[context: &c, bitmap: IISample.MapFromFrameBuffer[Terminal.GetBWFrameBuffer[Terminal.Current[]]], referencePoint: [808, 0], position: [0, 0]]
{ FOR i: NAT IN [0..2) DO II.DrawBitmap[context: &c, bitmap: IISample.MapFromFrameBuffer[Terminal.GetBWFrameBuffer[Terminal.Current[]]], referencePoint: [808, 0], position: [0, 0]]; II.RotateT[&c, 10] ENDLOOP }
← IIBackdoor.SetT[&c, IITransformation.Scale[1]]
← II.ScaleT[&c, 2]
← II.ScaleT[&c, 0.5]
← II.RotateT[&c, 0.0001]
← II.MaskBitmap[context: &c, bitmap: IISample.MapFromFrameBuffer[Terminal.GetBWFrameBuffer[Terminal.Current[]]], referencePoint: [808, 0], position: [0, 0]]
← &fscale ← 1;
← &fscale ← 2;
← &fscale ← 4;
← &fscale ← 8;
← &fscale ← 16;
← II.SetFont[&c, II.FindFontScaled["xerox/pressfonts/timesroman-mrr", 30*&fscale]]
← II.SetXY[&c, [0,0]]
← II.ShowRope[&c, "Hello World"]
← II.SetGray[&c, 0]
← II.SetGray[&c, 0.5]
← II.SetColor[&c, IIBackdoor.invert]
← II.SetGray[&c, 1]
{ FOR a: REAL ← 0, a+45 UNTIL a >= 360 DO II.SetXY[&c, [3*RealFns.CosDeg[a], 3*RealFns.SinDeg[a]]]; II.ShowRope[&c, "Hello World"] ENDLOOP }
← II.SetXY[&c, [0,0]]
← II.ShowRope[&c, "Hello World"]
← &bits ← IIPixelArray.FromAIS["q.ais"]
← II.MaskPixel[&c, &bits]
← II.ScaleT[&c, 32]
← II.MaskPixel[&c, &bits]
← II.ScaleT[&c, 1.0/32]
← II.SetSampledBlack[&c, &bits]
← II.ScaleT[&c, 32]
← II.MaskPixel[&c, &bits]
← II.SetGray[&c, 0.5]
← &pa ← IIPixelArray.Join3AIS["[cyan]<AIS>Peppers-red.ais", "[cyan]<AIS>Peppers-green.ais", "[cyan]<AIS>Peppers-blue.ais"]
II.SetSampledColor[context: &c, pa: &pa, m: NIL, colorOperator: IIColor.NewColorOperatorRGB[255]]
II.MaskRectangleI[&c, 0, 0, 512, 512]
← II.MaskPixel[&c, &bits]
← II.DrawPixels[context: &c, pixelMap: IIPixel.MakePixelMap[IISample.MapFromFrameBuffer[Terminal.GetBWFrameBuffer[Terminal.Current[ ]]]], colorOperator: IIColor.NewColorOperatorGrayLinear[0, 1, 0, NIL], referencePoint: [808, 0], scanMode: [slow: down, fast: right]]
← II.DrawBitmap[context: &c, bitmap: IISample.MapFromFrameBuffer[Terminal.GetBWFrameBuffer[Terminal.Current[ ]]], referencePoint: [808, 0], scanMode: [slow: down, fast: right], position: [0, 0]]
← &font ← II.FindFontScaled["xerox/pressfonts/timesroman-mrr", 300]
← &fontAtom ← IIFontPrivate.MakeFontAtom[typeface: &font.impl.typeface, m: &font.charToClient]
← &A ← IIMaskCapture.CaptureChar[&fontAtom, [0,LOOPHOLE['A]], 1, NIL]
← IISample.Fill[map: &b, box: [max: [40, 40]], value: 1]
← IISample.Fill[map: &b, box: [max: [39, 39]], value: 0]
← IISample.Transfer[dst: &b, src: IIMaskCacheImpl.BitmapFromCharMask[&A], delta: [40, 40], function: [xor, null]]
← II.TranslateT[&c, [40, 40]];
← II.ScaleT[&c, 8];
← II.SetStrokeWidth[&c, 4];
← &traj ← IIPath.MoveTo[[2, 50]]
← &traj ← IIPath.CurveTo[&traj, [58, 50], [58, 50], [58, 2]]
← &t2 ← IIPath.MoveTo[[0, 30]]
← &t2 ← IIPath.ArcTo[&t2, [21.2132, 21.2132], [30, 0]]
← &t3 ← IIPath.MoveTo[[0, 30]]
← &t3 ← IIPath.CurveTo[&t3, [60, 30], [30, 60], [30, 0]]
← &t4 ← IIPath.LineTo[&t3, [30, 60]]
← &t3 ← IIPath.LineTo[&t3, [0, 0]]
← &t1 ← IIPath.MoveTo[[0, 30]]
← &t1 ← IIPath.LineTo[&t1, [30, 0]]
← &t1 ← IIPath.LineTo[&t1, [0, 30]]
← IISample.Clear[&b]
← &o ← TimeIt.ObjectFromTraj[&traj, NIL]
← II.DrawObject[context: &c, object: &o, position: [0, 0], interactive: TRUE]
← TimeIt.Paint[&c, &o]
← &t ← TimeIt.Sketch[&c];
← &o ← TimeIt.MakeStrokeObject[&t, 12]
← TimeIt.MultiObject[&c, &o, 30]
← II.SetStrokeWidth[&c, 120];
← II.SetStrokeWidth[&c, 60];
← II.SetStrokeWidth[&c, 30];
← II.SetStrokeWidth[&c, 15];
← II.SetStrokeWidth[&c, 8];
← II.SetStrokeWidth[&c, 4];
← II.SetStrokeJoint[&c, round]
← II.SetStrokeJoint[&c, bevel]
← II.SetStrokeJoint[&c, miter]
← II.SetStrokeEnd[&c, round]
← II.SetStrokeEnd[&c, butt]
← II.SetStrokeEnd[&c, square]
← II.MaskStrokeTrajectory[&c, &traj]
← TimeIt.StrokeOutline[&c, &traj, FALSE, IIStroke.bigBox]
← TimeIt.StrokeOutline[&c, &t2, FALSE, IIStroke.bigBox]
← &c ← ImagerTerminal.BWContext[Terminal.Current[], TRUE]
← Imager.TranslateT[&c, [40, 40]];
← Imager.ScaleT[&c, 8];
← Imager.SetStrokeWidth[&c, 4];
← &traj ← ImagerPath.MoveTo[[2, 50]]
← &traj ← ImagerPath.CurveTo[&traj, [58, 50], [58, 50], [58, 2]]
← &t2 ← ImagerPath.MoveTo[[0, 30]]
← &t2 ← ImagerPath.ArcTo[&t2, [21.2132, 21.2132], [30, 0]]
← &t3 ← ImagerPath.MoveTo[[0, 30]]
← &t3 ← ImagerPath.CurveTo[&t3, [60, 30], [30, 60], [30, 0]]
← &t4 ← ImagerPath.LineTo[&t3, [30, 60]]
← &t3 ← ImagerPath.LineTo[&t3, [0, 0]]