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