1 2 3ClearArea 4--------- 5Basically a special case of PolyFillRect. Put up some sort of image first 6so we can clear it away. Try both small areas and big areas, to give 7credit to servers for optimizing small ones. 8 9Data: Pixels per second. 10 Breaking that down into large and small areas would probably not 11 be useful. 12 13GC Fields: None. 14 15 16CopyArea 17-------- 18Putting up some image and then repeatedly copying from one part of it 19to another would do the right thing and could look neat if done right. 20 21We probably want to see what happens when the source area is clipped, 22as that as mentioned specifically in the protocol document. 23 24Data: Pixels per second. 25 26GC Fields: function (*) 27 plane-mask 28 subwindow-mode 29 graphics-exposures 30 clip-x-origin 31 clip-y-origin 32 clip-mask 33 34 35CopyPlane 36--------- 37Special case of CopyArea again. 38 39 40PolyPoint 41--------- 42Draw lots of points. 43Either start out with an image that's 50/50 black and white 44(preferred) or draw enough points that some points will get drawn at 45least twice (to test functions other than copy). 46 47Data: Points per second. 48 49GC fields: function (*) 50 plane-mask 51 foreground 52 subwindow-mode 53 clip-x-origin 54 clip-y-origin 55 clip-mask 56 57 58PolyLine 59-------- 60Circular test like there is now. 61Try clipping at window boundaries? 62 63Data: Lines per second. 64 Pixels per second (is this valid - do lines that are twice as 65 long take twice as long to draw? Also, is it valid to compare 66 thin lines and fat lines?) 67 68GC fields: function (*) 69 plane-mask 70 line-width (*) 71 line-style (*) 72 cap-style (*) 73 join-style (*) 74 fill-style (*) 75 subwindow-mode 76 clip-x-origin 77 clip-y-origin 78 clip-mask 79Possibly foreground 80 background 81 tile (*) 82 stipple (*) 83 tile-stipple-x-origin 84 tile-stipple-y-origin 85 dash-offset 86 dashes (*) 87 88 89PolySegment 90----------- 91Just like PolyLine but lines don't have to be connected. Crosshatching? 92 93Data: Lines per second, pixels per second(?) 94 95GC fields: function 96 plane-mask 97 line-width 98 line-style 99 cap-style 100 fill-style 101 subwindow-mode 102 clip-x-origin 103 clip-y-origin 104 clip-mask 105Possibly foreground 106 background 107 tile 108 stipple 109 tile-stipple-x-origin 110 tile-stipple-y-origin 111 dash-offset 112 dashes 113 114 115PolyRectangle 116------------- 117Lots of five point PolyLines. Partly concentric ones would look nice; we 118also need overlap for testing different functions. 119 120Data: Rectangles per second. 121 Pixels per second? (divide by perimeter) 122 123GC fields: function 124 plane-mask 125 line-width 126 line-style 127 join-style 128 fill-style 129 subwindow-mode 130 clip-x-origin 131 clip-y-origin 132 clip-mask 133Possibly foreground 134 background 135 tile 136 stipple 137 tile-stipple-x-origin 138 tile-stipple-y-origin 139 dash-offset 140 dashes 141 142 143PolyArc 144------- 145Overlapping concentric things (ripples) would look cool. 146Is it possible to special-case circles? Test for this? 147 148Data: Arcs per second? If we had the same test each time this might 149 be OK. 150 Pixels per second? Finding the length of an arc could be 151 annoying. 152 153GC fields: function 154 plane-mask 155 line-width 156 line-style 157 cap-style 158 join-style 159 fill-style 160 subwindow-mode 161 clip-x-origin 162 clip-y-origin 163 clip-mask 164Possibly foreground 165 background 166 tile 167 stipple 168 tile-stipple-x-origin 169 tile-stipple-y-origin 170 dash-offset 171 dashes 172 173 174FillPoly 175-------- 176Use the same test as PolyLine? 177Overlapping is a must to test functions. 178Convex vs. Concave polygons. 179 180Data: Pixels per second, I guess. 181 Data for convex vs. concave could be interesting. 182 183GC fields: function 184 plane-mask 185 fill-style 186 fill-rule 187 subwindow-mode 188 clip-x-origin 189 clip-y-origin 190 clip-mask 191Possibly foreground 192 background 193 tile 194 stipple 195 tile-stipple-x-origin 196 tile-stipple-y-origin 197 198 199PolyFillRectangle 200----------------- 201Use same test as PolyRectangle? 202Perhaps give FillPoly some of these too, see if it special cases them. 203Fill Rectangle vs. Fill Poly for same size areas would be an 204 interesting comparison. 205 206Data: Pixels per second. 207 208GC fields: function 209 plane-mask 210 fill-style 211 subwindow-mode 212 clip-x-origin 213 clip-y-origin 214 clip-mask 215Possibly foreground 216 background 217 tile 218 stipple 219 tile-stipple-x-origin 220 tile-stipple-y-origin 221 222 223PolyFillArc 224----------- 225Use same test as PolyArc? 226 227Data: Pixels per second would be hard to compute, but what else is there? 228 229GC fields: function 230 plane-mask 231 fill-style 232 arc-mode 233 subwindow-mode 234 clip-x-origin 235 clip-y-origin 236 clip-mask 237Possibly foreground 238 background 239 tile 240 stipple 241 tile-stipple-x-origin 242 tile-stipple-y-origin 243 244 245PutImage 246-------- 247 248GC fields: function 249 plane-mask 250 subwindow-mode 251 clip-x-origin 252 clip-y-origin 253 clip-mask 254Possibly foreground 255 background 256 257 258GetImage 259-------- 260 261PolyText8 262--------- 263 264GC fields: function 265 plane-mask 266 fill-style 267 font 268 subwindow-mode 269 clip-x-origin 270 clip-y-origin 271 clip-mask 272Possibly foreground 273 background 274 tile 275 stipple 276 tile-stipple-x-origin 277 tile-stipple-y-origin 278 279 280PolyText16 281---------- 282 283ImageText8 284---------- 285 286GC fields: plane-mask 287 foreground 288 background 289 font 290 subwindow-mode 291 clip-x-origin 292 clip-y-origin 293 clip-mask 294 295ImageText16 296--------- 297