1General concerns
2----------------
3
4Machine type
5Display type
6Display on different machine?
7Visual
8Clipping
9Obscured by cursor
10Background tiling
11The whole software vs. hardware bit: computational overhead vs. time spent
12  drawing
13Planemask
14
15PolyFillRectangle
16-----------------
17Use same test as PolyRectangle?
18Perhaps give FillPoly some of these too, see if it special cases them.
19Fill Rectangle vs. Fill Poly for same size areas would be an
20  interesting comparison.
21
22Things to look for:
23	All it's really doing is setting or unsetting planes.
24	When a whole word is filled, it should be quite fast (just
25	setting it to 0 or ~0).
26	Otherwise, the speed of a single rectangle should be about
27	equal to its size.
28
29Data:
30	Pixels per second.
31	Average size of rectangle.
32
33GC fields:
34	function:
35	Tiling: likely to be a lot slower, although for whole words
36		you're just setting it to a certain value, rather than 0.
37		(You also have to look at the y value).  Strange width
38		tiles (are these allowed?) are likely to be real bad.
39	Stippling: also slower - I'm not sure whether or not this would
40		be slower than tiling.  This probably has a greater
41		chance of being done in hardware.
42
43	plane-mask:
44		plane of 0 would be real fast, since it doesn't modify
45		anything.  plane of ~0 should be fast, since it doesn't
46		have to think.  Anything else would probably be
47		proportional to the number of planes...
48
49	subwindow-mode: I don't believe it matters.
50
51	clip-x-origin
52	clip-y-origin
53	clip-mask:
54		Clipping in general should probably increase speed rather
55		than decrease it, unless the clipping region is strange.
56		Possible increase in speed because less change to the
57		display is being made; possible decrease in speed because
58		more thought has to be given to what is drawn or not.
59		Software vs. hardware, I suppose.
60
61Possibly
62	foreground: similar to plane-mask in its effect, I would think.
63
64	tile: "nice" width tiles would probably be better.  A width which
65		is not a divisor of the length of a word would be
66		significantly slower.  A width the size of a word is
67		probably perfect.  The actual contents of the tile
68		probably don't matter: Any code to check for tiles
69		which could be "simplified" would probably take too much
70		time to execute to do any good.
71
72	stipple: like tile
73
74Other:
75	alignment on word boundaries: fastest when one is changing whole
76	words at a time.  That way, you're just setting whole words to
77	0 or ~0 and not doing any computation.  A 32x1 rectangle should
78	be much faster than a 1x32 rectangle.
79
80---------
81Things to put in test:
82
83Check all alignments.
84Perhaps some sort of comparison between thin rectangles oriented
85  horizontally and oriented vertically.
86Small rectangles, big rectangles: compare pixels/second for each.
87  Good way of computing overhead costs.
88
89---------
90test
91(1-32)x32 at all 32 bits in a word.
92(97-128)x32
93(97-128)x128
94