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