1fd7d9bd3SmrgThe Commands menu should contain the following items:
2fd7d9bd3Smrg
3fd7d9bd3Smrg    Run                                                [the selected benchmark]
4fd7d9bd3Smrg    Benchmark Options.../Hide Benchmark Options                        [toggle]
5fd7d9bd3Smrg    Graphics Options.../Hide Graphics Options                          [toggle]
6fd7d9bd3Smrg    Describe Test.../Hide Test Description                             [toggle]
7fd7d9bd3Smrg    Start Recording/Stop Recording                                     [toggle]
8fd7d9bd3Smrg    Playback                        [pop up a dialogue box asking for filename]
9fd7d9bd3Smrg    --------
10fd7d9bd3Smrg    Quit                   [pop up a dialogue box asking if we are really done]
11fd7d9bd3Smrg
12fd7d9bd3Smrg
13fd7d9bd3SmrgThe Benchmark Options sheet should contain the information shown below.  The
14fd7d9bd3Smrglist of graphics primitives was derived from the "Definition of the Porting
15fd7d9bd3SmrgLayer for the X v11 Sample Server" by Angebranndt et al. and from the Protocol
16fd7d9bd3Smrgdocument.
17fd7d9bd3Smrg
18fd7d9bd3Smrg
19fd7d9bd3Smrg			       Benchmark Options
20fd7d9bd3Smrg
21fd7d9bd3Smrg
22fd7d9bd3Smrg            +-----------------------+-----------------------+
23fd7d9bd3Smrg Test       |      Copy Area        |      Copy Plane       |
24fd7d9bd3Smrg            +-----------------------+-----------------------+
25fd7d9bd3Smrg            |        Points         |        Lines          |
26fd7d9bd3Smrg            +-----------------------+-----------------------+
27fd7d9bd3Smrg            |       Segments        |      Rectangles       |
28fd7d9bd3Smrg            +-----------------------+-----------------------+
29fd7d9bd3Smrg            |         Arcs          |    Filled Polygons    |
30fd7d9bd3Smrg            +-----------------------+-----------------------+
31fd7d9bd3Smrg            |   Filled Rectangles   |      Filled Arcs      |
32fd7d9bd3Smrg            +-----------------------+-----------------------+
33fd7d9bd3Smrg            |       Put Image       |       Get Image       |
34fd7d9bd3Smrg            +-----------------------+-----------------------+
35fd7d9bd3Smrg            |        Text 8         |      Image Text 8     |
36fd7d9bd3Smrg            +-----------------------+-----------------------+
37fd7d9bd3Smrg            |        Text 16        |      Image Text 16    |
38fd7d9bd3Smrg            +-----------------------+-----------------------+
39fd7d9bd3Smrg
40fd7d9bd3Smrg            +---------+
41fd7d9bd3Smrg Iterations |   10000 |
42fd7d9bd3Smrg            +---------+
43fd7d9bd3Smrg
44fd7d9bd3Smrg            +----+-----+                         +----+-----+
45fd7d9bd3Smrg Record     | on | off |          Describe Test  | on | off |
46fd7d9bd3Smrg            +----+-----+                         +----+-----+
47fd7d9bd3Smrg
48fd7d9bd3Smrg            +-----------------------------------------------+
49fd7d9bd3Smrg Filename   |                                  ./xbench.log |
50fd7d9bd3Smrg            +-----------------------------------------------+
51fd7d9bd3Smrg
52fd7d9bd3Smrg
53fd7d9bd3Smrg*******************************************************************************
54fd7d9bd3Smrg
55fd7d9bd3Smrg
56fd7d9bd3SmrgThe Graphics Options area would contain the following entries:
57fd7d9bd3Smrg
58e53c48bfSmrg    Function - one-of { clear, and, andReverse, copy, andInverted, noop, xor,
59e53c48bfSmrg		        or, nor, equiv, invert, orReverse, copyInverted,
60fd7d9bd3Smrg		        orInverted, nand, set }
61fd7d9bd3Smrg    PlaneMask - unsigned value or many-of-n representing bits
62fd7d9bd3Smrg    Foreground - unsigned value in range 0..2^nplanes
63fd7d9bd3Smrg    Background - unsigned value in range 0..2^nplanes
64fd7d9bd3Smrg    ForegroundColor - set rgb value of Foreground
65fd7d9bd3Smrg    BackgroundColor - set rgb value of background
66fd7d9bd3Smrg    LineWidth - unsigned number in range 0..65535
67fd7d9bd3Smrg    LineStyle - oneof { Solid, OnOffDash, DoubleDash }
68fd7d9bd3Smrg    CapStyle - one-of { NotLast, Butt, Round, Projecting }
69fd7d9bd3Smrg    JoinStyle - one-of { Miter, Round, Bevel }
70fd7d9bd3Smrg    FillStyle - one-of { Solid, Tiled, OpaqueStippled, Stippled }
71fd7d9bd3Smrg    FillRule - one-of { EvenOdd, Winding }
72fd7d9bd3Smrg    ArcMode - one-of { Chord, PieSlice }
73fd7d9bd3Smrg    # Tile - pixmap [probably not edittable in first version]
74fd7d9bd3Smrg    # Stipple - pixmap [probably not edittable in first version]
75fd7d9bd3Smrg    TileStipXOrigin - signed number in range -32768..32767
76fd7d9bd3Smrg    TileStipYOrigin - signed number in range -32768..32767
77fd7d9bd3Smrg    Font - name of font
78fd7d9bd3Smrg    ClipXOrigin - signed number in range -32768..32767
79fd7d9bd3Smrg    ClipYOrigin - signed number in range -32768..32767
80fd7d9bd3Smrg    ClipMask - one-of { None, select } [user selects by clicking in work area]
81fd7d9bd3Smrg    DashOffset - unsigned number in range -32768..32767
82fd7d9bd3Smrg    DashList - many-of-n of 8 boxes for defining dashes
83fd7d9bd3Smrg
84fd7d9bd3Smrg
85fd7d9bd3Smrg
86fd7d9bd3Smrg
87fd7d9bd3Smrg			       Graphics Options
88fd7d9bd3Smrg
89fd7d9bd3Smrg
90fd7d9bd3Smrg             +--------------+--------------+--------------+--------------+
91fd7d9bd3Smrg Function    |     clear    |      and     |  andReverse  |     copy     |
92fd7d9bd3Smrg             +--------------+--------------+--------------+--------------+
93fd7d9bd3Smrg             | andInverted  |     noop     |      xor     |      or      |
94fd7d9bd3Smrg             +--------------+--------------+--------------+--------------+
95fd7d9bd3Smrg             |      nor     |     equiv    |    invert    |   orReverse  |
96fd7d9bd3Smrg             +--------------+--------------+--------------+--------------+
97fd7d9bd3Smrg             | copyInverted |  orInverted  |     nand     |      set     |
98fd7d9bd3Smrg             +--------------+--------------+--------------+--------------+
99fd7d9bd3Smrg
100fd7d9bd3Smrg             +-----+---------+
101fd7d9bd3Smrg Colormap    | new | default |
102fd7d9bd3Smrg             +-----+---------+
103fd7d9bd3Smrg
104fd7d9bd3Smrg             +----------+                     +--------+--------+--------+
105fd7d9bd3Smrg Foreground  |        1 |    ForegroundColor  |  ffff  |  ffff  |  ffff  |
106fd7d9bd3Smrg             +----------+                     +--------+--------+--------+
107fd7d9bd3Smrg
108fd7d9bd3Smrg             +----------+                     +--------+--------+--------+
109fd7d9bd3Smrg Background  |        0 |    BackgroundColor  |  0000  |  0000  |  0000  |
110fd7d9bd3Smrg             +----------+                     +--------+--------+--------+
111fd7d9bd3Smrg
112fd7d9bd3Smrg             +------+                   +-------+-----------+------------+
113fd7d9bd3Smrg LineWidth   |    3 |        LineStyle  | Solid | OnOffDash | DoubleDash |
114fd7d9bd3Smrg             +------+                   +-------+-----------+------------+
115fd7d9bd3Smrg
116fd7d9bd3Smrg             +---------+------+-------+------------+
117fd7d9bd3Smrg CapStyle    | NotLast | Butt | Round | Projecting |
118fd7d9bd3Smrg             +---------+------+-------+------------+
119fd7d9bd3Smrg
120fd7d9bd3Smrg             +-------+-------+-------+
121fd7d9bd3Smrg JoinStyle   | Miter | Round | Bevel |
122fd7d9bd3Smrg             +-------+-------+-------+
123fd7d9bd3Smrg
124fd7d9bd3Smrg             +-------+-------+----------+----------------+
125fd7d9bd3Smrg FillStyle   | Solid | Tiled | Stippled | OpaqueStippled |
126fd7d9bd3Smrg             +-------+-------+----------+----------------+
127fd7d9bd3Smrg
128fd7d9bd3Smrg             +---------+---------+
129fd7d9bd3Smrg FillRule    | EvenOdd | Winding |
130fd7d9bd3Smrg             +---------+---------+
131fd7d9bd3Smrg
132fd7d9bd3Smrg             +-------+----------+
133fd7d9bd3Smrg ArcMode     | Chord | PieSlice |
134fd7d9bd3Smrg             +-------+----------+
135fd7d9bd3Smrg
136fd7d9bd3Smrg             +--------------+
137fd7d9bd3Smrg TStipOrigin | +####, +#### |
138fd7d9bd3Smrg             +--------------+
139fd7d9bd3Smrg
140fd7d9bd3Smrg             +-+-+-+-+-+-+-+-+                                   +-------+
141fd7d9bd3Smrg DashList    | | |X|X| | |X|X|                       DashOffset  | +#### |
142fd7d9bd3Smrg             +-+-+-+-+-+-+-+-+                                   +-------+
143fd7d9bd3Smrg
144fd7d9bd3Smrg             +----+-----+-----+-------+                         +--------+
145fd7d9bd3Smrg ClipMask    | on | off | set | clear |             PlaneMask   |  ffff  |
146fd7d9bd3Smrg             +----+-----+-----+-------+                         +--------+
147fd7d9bd3Smrg
148fd7d9bd3Smrg
149fd7d9bd3Smrg*******************************************************************************
150fd7d9bd3Smrg
151fd7d9bd3Smrg				    Grammar
152fd7d9bd3Smrg
153fd7d9bd3Smrg
154fd7d9bd3SmrgBoth to support Record/Playback (used for debugging, demonstrations, and for
155fd7d9bd3Smrgcreating benchmark scripts), there needs to be a command line language that
156fd7d9bd3Smrgcan be used to set all options.  Although we won't be doing anything as
157fd7d9bd3Smrgsophisticated as what is provided in many UIMS's, it would be nice to keep
158fd7d9bd3Smrgthe application section of the benchmark as separate as possible from the
159fd7d9bd3Smrguser interface.
160fd7d9bd3Smrg
161e53c48bfSmrg    test  { CopyArea, CopyPlane, PolyPoint, PolyLine, PolySegment,
162fd7d9bd3Smrg	    PolyRectangle, PolyArc, FillPolygon, PolyFillRect, PolyFillArc,
163fd7d9bd3Smrg	    PutImage, GetImage, ImageText8, PolyText8, ImageText16,
164fd7d9bd3Smrg	    PolyText16 }
165fd7d9bd3Smrg	-  selects the test to be performed.
166fd7d9bd3Smrg
167fd7d9bd3Smrg    colormap  { new, default }
168fd7d9bd3Smrg	-  selects which colormap should be used for test
169fd7d9bd3Smrg
170fd7d9bd3Smrg    iterations UNSIGNEDNUMBER
171fd7d9bd3Smrg	-  specifies the number of times that the test should be run.
172fd7d9bd3Smrg
173fd7d9bd3Smrg    record BOOLEAN
174fd7d9bd3Smrg	-  indicates whether or not to record commands into the record-file.
175fd7d9bd3Smrg
176fd7d9bd3Smrg    record-file  FILENAME
177fd7d9bd3Smrg	-  specifies the name of the file into which commands are recorded.
178fd7d9bd3Smrg
179fd7d9bd3Smrg    describe  BOOLEAN
180e53c48bfSmrg	-  indicates whether or not a description of the test should be
181fd7d9bd3Smrg	   displayed whenever a test is selected (or when this option is
182fd7d9bd3Smrg	   specified).
183fd7d9bd3Smrg
184fd7d9bd3Smrg    function  { clear, and, andReverse, copy, andInverted, noop, xor, or, nor,
185fd7d9bd3Smrg		equiv, invert, orReverse, copyInverted, orInverted, nand, set }
186fd7d9bd3Smrg	-  selects the alu function to use in the GC.
187fd7d9bd3Smrg
188fd7d9bd3Smrg    foreground UNSIGNEDNUMBER
189fd7d9bd3Smrg	-  selects the foreground pixel value to use in the GC; if a new
190fd7d9bd3Smrg	   colormap is being used, the RGB value for this slot may be changed.
191fd7d9bd3Smrg
192fd7d9bd3Smrg    background UNSIGNEDNUMBER
193fd7d9bd3Smrg	-  selects the background pixel value to use in the GC; if a new
194fd7d9bd3Smrg	   colormap is being used, the RGB value for this slot may be changed.
195fd7d9bd3Smrg
196fd7d9bd3Smrg    forecolor COLORNAME
197e53c48bfSmrg	-  specifies the RGB value or name of the color to be used for the
198fd7d9bd3Smrg	   foreground pixel, if settable.
199fd7d9bd3Smrg
200fd7d9bd3Smrg    backcolor COLORNAME
201e53c48bfSmrg	-  specifies the RGB value or name of the color to be used for the
202fd7d9bd3Smrg	   background pixel, if settable.
203fd7d9bd3Smrg
204fd7d9bd3Smrg    linewidth NUMBER
205fd7d9bd3Smrg	-  specifies width of lines to use in the GC.
206fd7d9bd3Smrg
207fd7d9bd3Smrg    linestyle  { Solid, OnOffDash, DoubleDash }
208fd7d9bd3Smrg	-  selects the type of lines to use in the GC.
209fd7d9bd3Smrg
210fd7d9bd3Smrg    capstyle  { NotLast, Butt, Round, Projecting }
211fd7d9bd3Smrg	-  selects the type of caps to use in the GC.
212fd7d9bd3Smrg
213fd7d9bd3Smrg    joinstyle  { Miter, Round, Bevel }
214fd7d9bd3Smrg	-  selects the type of joins to use in the GC.
215fd7d9bd3Smrg
216fd7d9bd3Smrg    fillstyle  { Solid, Tiled, Stippled, OpaqueStippled }
217fd7d9bd3Smrg	-  selects the type of fills to use in the GC.
218fd7d9bd3Smrg
219fd7d9bd3Smrg    fillrule  { EvenOdd, Winding }
220fd7d9bd3Smrg	-  selects the fill rule to be used in the GC.
221fd7d9bd3Smrg
222fd7d9bd3Smrg    arcmode  { Chord, PieSlice }
223fd7d9bd3Smrg	-  selects the type of arcs to be drawn in the GC.
224fd7d9bd3Smrg
225fd7d9bd3Smrg    tsorigin  NUMBER  NUMBER
226fd7d9bd3Smrg	-  specifies the X and Y values of the TileStippleOrigin in the GC.
227fd7d9bd3Smrg
228fd7d9bd3Smrg    dashlist  DASHPATTERN
229fd7d9bd3Smrg	-  specifies a pattern of 8 binary digits to use in the dashlist
230fd7d9bd3Smrg	   in the GC; the characters are given in big-endian order such that
231fd7d9bd3Smrg	   they may be read in binary to form a number between 0 and 255.
232fd7d9bd3Smrg
233fd7d9bd3Smrg    dashoffset  NUMBER
234fd7d9bd3Smrg	-  specifies the dashoffset to use in the GC.
235fd7d9bd3Smrg
236fd7d9bd3Smrg    cliporigin  NUMBER  NUMBER
237fd7d9bd3Smrg	-  specifies the X and Y values of the cliporigin in the GC.
238fd7d9bd3Smrg
239fd7d9bd3Smrg    clipmask  { on, off, set NUMBER NUMBER NUMBER NUMBER, clear }
240fd7d9bd3Smrg	-  selects a clipping mode.  If "on", then use the most recently
241fd7d9bd3Smrg	   defined set of clipping rectangles; if "off", then do not do
242fd7d9bd3Smrg	   any clipping but keep the clipping rectangles for future
243fd7d9bd3Smrg	   reference; if "set", then add the rectangle specified by
244fd7d9bd3Smrg	   the remaining numeric arguments as X1 Y1 X2 Y2 relative to the
245fd7d9bd3Smrg	   cliporigin.
246fd7d9bd3Smrg
247fd7d9bd3Smrg    planemask  NUMBER
248fd7d9bd3Smrg	-  specifies the set of planes on to which graphics may be drawn
249fd7d9bd3Smrg	   in the GC.
250fd7d9bd3Smrg
251fd7d9bd3Smrg    run
252fd7d9bd3Smrg	-  run the currently configured test.
253fd7d9bd3Smrg
254fd7d9bd3Smrg    quit
255fd7d9bd3Smrg	-  exit the program
256