DIRECTORY Commander, CommanderOps, Convert, Imager, ImagerBitmapContext, ImagerFont, ImagerSample, IO, Process, Rope, ViewerPrivate; RTTest: CEDAR PROGRAM IMPORTS Commander, CommanderOps, Convert, Imager, ImagerBitmapContext, ImagerFont, ImagerSample, IO, Process, ViewerPrivate = BEGIN font: Imager.Font ~ ImagerFont.FindScaled["xerox/xc1-2-2/modern", 20]; colors: ARRAY BOOL OF RECORD [bg, fg: Imager.Color] ~ [ [Imager.black, Imager.white], [Imager.white, Imager.black]]; phase: BOOL ¬ FALSE; Test: PROC [bSize, sSize, n: NAT] RETURNS [bytesPerImage, total: INT] ~ { sm: ImagerSample.RasterSampleMap ~ ImagerSample.NewSampleMap[box: [[0, 0], [bSize, bSize]]]; sc: Imager.Context ~ ViewerPrivate.CreateContext[main]; bc: Imager.Context ~ ImagerBitmapContext.Create[deviceSpaceSize: [bSize, bSize], scanMode: [slow: down, fast: right], surfaceUnitsPerInch: [1, 1], pixelUnits: TRUE, fontCacheName: $Bitmap]; e: ImagerFont.Extents ~ ImagerFont.RopeBoundingBox[font, "XXXX"]; pos: Imager.VEC ~ [x: (bSize+e.leftExtent-e.rightExtent)/2, y: (bSize+e.descent-e.ascent)/2]; ImagerBitmapContext.SetBitmap[bc, sm]; bc.SetFont[font]; sc.ClipRectangleI[0, 0, sSize, sSize]; FOR i: NAT IN [0 .. n] DO bc.SetColor[colors[phase].bg]; bc.MaskRectangle[[0, 0, bSize, bSize]]; bc.SetColor[colors[phase].fg]; bc.SetXY[pos]; bc.ShowRope[IO.PutFR1["%04g", [integer[i]] ]]; sc.DrawBitmap[bitmap: sm, referencePoint: [bSize/2, bSize/2], scanMode: [down, right], position: [sSize/2, sSize/2]]; Process.CheckForAbort[]; phase ¬ NOT phase; ENDLOOP; bytesPerImage ¬ ImagerSample.WordsForMap[[bSize, bSize]]*BYTES[WORD]; total ¬ n*bytesPerImage; RETURN}; Cmd: Commander.CommandProc ~ { argv: CommanderOps.ArgumentVector ~ CommanderOps.Parse[cmd]; bSize: NAT ~ Convert.IntFromRope[argv[1]]; sSize: NAT ~ Convert.IntFromRope[argv[2]]; n: NAT ~ Convert.IntFromRope[argv[3]]; bytesPerImage, total: INT; [bytesPerImage, total] ¬ Test[bSize, sSize, n]; cmd.out.PutF["bytesPerImage=%g, total=%g.\n", [integer[bytesPerImage]], [integer[total]] ]; RETURN}; Commander.Register["RTTest", Cmd, "bSize, sSize, n: NAT"]; END. Ζ RTTest.Mesa Copyright Σ 1990, 1992 by Xerox Corporation. All rights reserved. Last tweaked by Mike Spreitzer on March 25, 1992 12:46 pm PST Michael Plass, September 14, 1989 3:49:47 pm PDT Κϊ–(cedarcode) style•NewlineDelimiter ™code™ Kšœ Οeœ7™BK™=K™0—K˜KšΟk œZžœ˜„K˜šΟnœžœž˜KšžœZžœ˜{K˜—K˜Kšž˜K˜K˜FK˜š œžœžœžœžœ˜7K˜K˜—K˜Kšœžœžœ˜K˜š Ÿœžœžœžœžœ˜IKšœ\˜\Kšœ7˜7KšœŸžœ˜½KšœA˜AKšœ žœN˜]Kšœ&˜&K˜K˜&šžœžœžœ ž˜Kšœ˜K˜'Kšœ˜K˜Kšœ žœ ˜.Kšœu˜uKšœ!žœ˜+Kšžœ˜—Kšœ9žœžœ˜EK˜Kšžœ˜—K˜šŸœ˜K˜