do_tests.c revision 264fa531
1/* $Xorg: do_tests.c,v 1.3 2000/08/17 19:54:10 cpqbld Exp $ */
2/*****************************************************************************
3Copyright 1988, 1989 by Digital Equipment Corporation, Maynard, Massachusetts.
4
5                        All Rights Reserved
6
7Permission to use, copy, modify, and distribute this software and its
8documentation for any purpose and without fee is hereby granted,
9provided that the above copyright notice appear in all copies and that
10both that copyright notice and this permission notice appear in
11supporting documentation, and that the name of Digital not be
12used in advertising or publicity pertaining to distribution of the
13software without specific, written prior permission.
14
15DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
16ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
17DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
18ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
19WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
20ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
21SOFTWARE.
22
23******************************************************************************/
24/* $XFree86: xc/programs/x11perf/do_tests.c,v 1.9 2002/05/13 05:27:37 keithp Exp $ */
25
26#include "x11perf.h"
27
28/*
29 * some test must be done a certain multiple of times. That multiple is
30 * in the second half of the products below. You can edit the multiplier,
31 * just not the multiplicand.
32 */
33
34Test test[] = {
35  {"-dot",      "Dot", NULL,
36		InitDots, DoDots, NullProc, EndDots,
37		V1_2FEATURE, ROP, 0,
38		{POLY}},
39  {"-rect1",    "1x1 rectangle", NULL,
40		InitRectangles, DoRectangles, NullProc, EndRectangles,
41		V1_2FEATURE, ROP, 0,
42		{POLY, 1, NULL, NULL, FillSolid}},
43  {"-rect10",   "10x10 rectangle", NULL,
44		InitRectangles, DoRectangles, NullProc, EndRectangles,
45		V1_2FEATURE, ROP, 0,
46		{POLY, 10, NULL, NULL, FillSolid}},
47  {"-rect100",  "100x100 rectangle", NULL,
48		InitRectangles, DoRectangles, NullProc, EndRectangles,
49		V1_2FEATURE, ROP, 0,
50		{36, 100, NULL, NULL, FillSolid}},
51  {"-rect500",  "500x500 rectangle", NULL,
52		InitRectangles, DoRectangles, NullProc, EndRectangles,
53		V1_2FEATURE, ROP, 0,
54		{1, 500, NULL, NULL, FillSolid}},
55  {"-srect1",  "1x1 stippled rectangle",
56		"1x1 stippled rectangle (8x8 stipple)",
57		InitRectangles, DoRectangles, NullProc, EndRectangles,
58		V1_2FEATURE, ROP, 0,
59		{POLY, 1, NULL, NULL, FillStippled}},
60  {"-srect10", "10x10 stippled rectangle",
61		"10x10 stippled rectangle (8x8 stipple)",
62		InitRectangles, DoRectangles, NullProc, EndRectangles,
63		V1_2FEATURE, ROP, 0,
64		{POLY, 10, NULL, NULL, FillStippled}},
65  {"-srect100", "100x100 stippled rectangle",
66		"100x100 stippled rectangle (8x8 stipple)",
67		InitRectangles, DoRectangles, NullProc, EndRectangles,
68		V1_2FEATURE, ROP, 0,
69		{36, 100, NULL, NULL, FillStippled}},
70  {"-srect500", "500x500 stippled rectangle",
71		"500x500 stippled rectangle (8x8 stipple)",
72		InitRectangles, DoRectangles, NullProc, EndRectangles,
73		V1_2FEATURE, ROP, 0,
74		{1, 500, NULL, NULL, FillStippled}},
75  {"-osrect1",  "1x1 opaque stippled rectangle",
76		"1x1 opaque stippled rectangle (8x8 stipple)",
77		InitRectangles, DoRectangles, NullProc, EndRectangles,
78		V1_2FEATURE, ROP, 0,
79		{POLY, 1, NULL, NULL, FillOpaqueStippled}},
80  {"-osrect10", "10x10 opaque stippled rectangle",
81		"10x10 opaque stippled rectangle (8x8 stipple)",
82		InitRectangles, DoRectangles, NullProc, EndRectangles,
83		V1_2FEATURE, ROP, 0,
84		{POLY, 10, NULL, NULL, FillOpaqueStippled}},
85  {"-osrect100", "100x100 opaque stippled rectangle",
86		"100x100 opaque stippled rectangle (8x8 stipple)",
87		InitRectangles, DoRectangles, NullProc, EndRectangles,
88		V1_2FEATURE, ROP, 0,
89		{36, 100, NULL, NULL, FillOpaqueStippled}},
90  {"-osrect500", "500x500 opaque stippled rectangle",
91		"500x500 opaque stippled rectangle (8x8 stipple)",
92		InitRectangles, DoRectangles, NullProc, EndRectangles,
93		V1_2FEATURE, ROP, 0,
94		{1, 500, NULL, NULL, FillOpaqueStippled}},
95  {"-tilerect1", "1x1 4x4 tiled rectangle",
96		"1x1 tiled rectangle (4x4 tile)",
97		InitRectangles, DoRectangles, NullProc, EndRectangles,
98		V1_2FEATURE, ROP, 0,
99		{POLY, 1, NULL, NULL, FillTiled}},
100  {"-tilerect10", "10x10 4x4 tiled rectangle",
101		"10x10 tiled rectangle (4x4 tile)",
102		InitRectangles, DoRectangles, NullProc, EndRectangles,
103		V1_2FEATURE, ROP, 0,
104		{POLY, 10, NULL, NULL, FillTiled}},
105  {"-tilerect100", "100x100 4x4 tiled rectangle",
106		"100x100 tiled rectangle (4x4 tile)",
107		InitRectangles, DoRectangles, NullProc, EndRectangles,
108		V1_2FEATURE, ROP, 0,
109		{36, 100, NULL, NULL, FillTiled}},
110  {"-tilerect500", "500x500 4x4 tiled rectangle",
111		"500x500 tiled rectangle (4x4 tile)",
112		InitRectangles, DoRectangles, NullProc, EndRectangles,
113		V1_2FEATURE, ROP, 0,
114		{1, 500, NULL, NULL, FillTiled}},
115  {"-oddsrect1",  "1x1 stippled rectangle (17x15 stipple)", NULL,
116		InitRectangles, DoRectangles, NullProc, EndRectangles,
117		V1_4FEATURE, ROP, 0,
118		{POLY, 1, "OddTile", NULL, FillStippled}},
119  {"-oddsrect10", "10x10 stippled rectangle (17x15 stipple)", NULL,
120		InitRectangles, DoRectangles, NullProc, EndRectangles,
121		V1_4FEATURE, ROP, 0,
122		{POLY, 10, "OddTile", NULL, FillStippled}},
123  {"-oddsrect100", "100x100 stippled rectangle (17x15 stipple)", NULL,
124		InitRectangles, DoRectangles, NullProc, EndRectangles,
125		V1_4FEATURE, ROP, 0,
126		{36, 100, "OddTile", NULL, FillStippled}},
127  {"-oddsrect500", "500x500 stippled rectangle (17x15 stipple)", NULL,
128		InitRectangles, DoRectangles, NullProc, EndRectangles,
129		V1_4FEATURE, ROP, 0,
130		{1, 500, "OddTile", NULL, FillStippled}},
131  {"-oddosrect1",  "1x1 opaque stippled rectangle (17x15 stipple)", NULL,
132		InitRectangles, DoRectangles, NullProc, EndRectangles,
133		V1_4FEATURE, ROP, 0,
134		{POLY, 1, "OddTile", NULL, FillOpaqueStippled}},
135  {"-oddosrect10", "10x10 opaque stippled rectangle (17x15 stipple)", NULL,
136		InitRectangles, DoRectangles, NullProc, EndRectangles,
137		V1_4FEATURE, ROP, 0,
138		{POLY, 10, "OddTile", NULL, FillOpaqueStippled}},
139  {"-oddosrect100", "100x100 opaque stippled rectangle (17x15 stipple)", NULL,
140		InitRectangles, DoRectangles, NullProc, EndRectangles,
141		V1_4FEATURE, ROP, 0,
142		{36, 100, "OddTile", NULL, FillOpaqueStippled}},
143  {"-oddosrect500", "500x500 opaque stippled rectangle (17x15 stipple)", NULL,
144		InitRectangles, DoRectangles, NullProc, EndRectangles,
145		V1_4FEATURE, ROP, 0,
146		{1, 500, "OddTile", NULL, FillOpaqueStippled}},
147  {"-oddtilerect1", "1x1 tiled rectangle (17x15 tile)", NULL,
148		InitRectangles, DoRectangles, NullProc, EndRectangles,
149		V1_4FEATURE, ROP, 0,
150		{POLY, 1, "OddTile", NULL, FillTiled}},
151  {"-oddtilerect10", "10x10 tiled rectangle (17x15 tile)", NULL,
152		InitRectangles, DoRectangles, NullProc, EndRectangles,
153		V1_4FEATURE, ROP, 0,
154		{POLY, 10, "OddTile", NULL, FillTiled}},
155  {"-oddtilerect100", "100x100 tiled rectangle (17x15 tile)", NULL,
156		InitRectangles, DoRectangles, NullProc, EndRectangles,
157		V1_4FEATURE, ROP, 0,
158		{36, 100, "OddTile", NULL, FillTiled}},
159  {"-oddtilerect500", "500x500 tiled rectangle (17x15 tile)", NULL,
160		InitRectangles, DoRectangles, NullProc, EndRectangles,
161		V1_4FEATURE, ROP, 0,
162		{1, 500, "OddTile", NULL, FillTiled}},
163  {"-bigsrect1",  "1x1 161x145 stippled rectangle",
164		"1x1 stippled rectangle (161x145 stipple)",
165		InitRectangles, DoRectangles, NullProc, EndRectangles,
166		V1_3FEATURE, ROP, 0,
167		{POLY, 1, "mensetmanus", NULL, FillStippled}},
168  {"-bigsrect10", "10x10 161x145 stippled rectangle",
169		"10x10 stippled rectangle (161x145 stipple)",
170		InitRectangles, DoRectangles, NullProc, EndRectangles,
171		V1_3FEATURE, ROP, 0,
172		{POLY, 10, "mensetmanus", NULL, FillStippled}},
173  {"-bigsrect100", "100x100 161x145 stippled rectangle",
174		"100x100 stippled rectangle (161x145 stipple)",
175		InitRectangles, DoRectangles, NullProc, EndRectangles,
176		V1_3FEATURE, ROP, 0,
177		{36, 100, "mensetmanus", NULL, FillStippled}},
178  {"-bigsrect500", "500x500 161x145 stippled rectangle",
179		"500x500 stippled rectangle (161x145 stipple)",
180		InitRectangles, DoRectangles, NullProc, EndRectangles,
181		V1_3FEATURE, ROP, 0,
182		{1, 500, "mensetmanus", NULL, FillStippled}},
183  {"-bigosrect1",  "1x1 161x145 opaque stippled rectangle",
184		"1x1 opaque stippled rectangle (161x145 stipple)",
185		InitRectangles, DoRectangles, NullProc, EndRectangles,
186		V1_3FEATURE, ROP, 0,
187		{POLY, 1, "mensetmanus", NULL, FillOpaqueStippled}},
188  {"-bigosrect10", "10x10 161x145 opaque stippled rectangle",
189		"10x10 opaque stippled rectangle (161x145 stipple)",
190		InitRectangles, DoRectangles, NullProc, EndRectangles,
191		V1_3FEATURE, ROP, 0,
192		{POLY, 10, "mensetmanus", NULL, FillOpaqueStippled}},
193  {"-bigosrect100", "100x100 161x145 opaque stippled rectangle",
194		"100x100 opaque stippled rectangle (161x145 stipple)",
195		InitRectangles, DoRectangles, NullProc, EndRectangles,
196		V1_3FEATURE, ROP, 0,
197		{36, 100, "mensetmanus", NULL, FillOpaqueStippled}},
198  {"-bigosrect500", "500x500 161x145 opaque stippled rectangle",
199		"500x500 opaque stippled rectangle (161x145 stipple)",
200		InitRectangles, DoRectangles, NullProc, EndRectangles,
201		V1_3FEATURE, ROP, 0,
202		{1, 500, "mensetmanus", NULL, FillOpaqueStippled}},
203  {"-bigtilerect1", "1x1 161x145 tiled rectangle",
204		"1x1 tiled rectangle (161x145 tile)",
205		InitRectangles, DoRectangles, NullProc, EndRectangles,
206		V1_2FEATURE, ROP, 0,
207		{POLY, 1, "mensetmanus", NULL, FillTiled}},
208  {"-bigtilerect10", "10x10 161x145 tiled rectangle",
209		"10x10 tiled rectangle (161x145 tile)",
210		InitRectangles, DoRectangles, NullProc, EndRectangles,
211		V1_2FEATURE, ROP, 0,
212		{POLY, 10, "mensetmanus", NULL, FillTiled}},
213  {"-bigtilerect100", "100x100 161x145 tiled rectangle",
214		"100x100 tiled rectangle (161x145 tile)",
215		InitRectangles, DoRectangles, NullProc, EndRectangles,
216		V1_2FEATURE, ROP, 0,
217		{36, 100, "mensetmanus", NULL, FillTiled}},
218  {"-bigtilerect500", "500x500 161x145 tiled rectangle",
219		"500x500 tiled rectangle (161x145 tile)",
220		InitRectangles, DoRectangles, NullProc, EndRectangles,
221		V1_2FEATURE, ROP, 0,
222		{1, 500, "mensetmanus", NULL, FillTiled}},
223  {"-eschertilerect1", "1x1 216x208 tiled rectangle",
224		"1x1 tiled rectangle (216x208 tile)",
225		InitRectangles, DoRectangles, NullProc, EndRectangles,
226		V1_3FEATURE, ROP, 0,
227		{POLY, 1, "escherknot", NULL, FillTiled}},
228  {"-eschertilerect10", "10x10 216x208 tiled rectangle",
229		"10x10 tiled rectangle (216x208 tile)",
230		InitRectangles, DoRectangles, NullProc, EndRectangles,
231		V1_3FEATURE, ROP, 0,
232		{POLY, 10, "escherknot", NULL, FillTiled}},
233  {"-eschertilerect100", "100x100 216x208 tiled rectangle",
234		"100x100 tiled rectangle (216x208 tile)",
235		InitRectangles, DoRectangles, NullProc, EndRectangles,
236		V1_3FEATURE, ROP, 0,
237		{36, 100, "escherknot", NULL, FillTiled}},
238  {"-eschertilerect500", "500x500 216x208 tiled rectangle",
239		"500x500 tiled rectangle (216x208 tile)",
240		InitRectangles, DoRectangles, NullProc, EndRectangles,
241		V1_3FEATURE, ROP, 0,
242		{1, 500, "escherknot", NULL, FillTiled}},
243  {"-seg1",     "1-pixel line segment", NULL,
244		InitSegments, DoSegments, NullProc, EndSegments,
245		V1_2FEATURE, ROP, 0,
246		{POLY, 1}},
247  {"-seg10",    "10-pixel line segment", NULL,
248		InitSegments, DoSegments, NullProc, EndSegments,
249		V1_2FEATURE, ROP, 0,
250		{POLY, 10}},
251  {"-seg100",   "100-pixel line segment", NULL,
252		InitSegments, DoSegments, NullProc, EndSegments,
253		V1_2FEATURE, ROP, 0,
254		{POLY, 100}},
255  {"-seg500",   "500-pixel line segment", NULL,
256		InitSegments, DoSegments, NullProc, EndSegments,
257		V1_2FEATURE, ROP, 0,
258		{POLY, 500}},
259  {"-seg100c1", "100-pixel line segment (1 kid)", NULL,
260		InitSegments, DoSegments, NullProc, EndSegments,
261		V1_2FEATURE, ROP, 1,
262		{POLY, 100}},
263  {"-seg100c2", "100-pixel line segment (2 kids)", NULL,
264		InitSegments, DoSegments, NullProc, EndSegments,
265		V1_2FEATURE, ROP, 2,
266		{POLY, 100}},
267  {"-seg100c3", "100-pixel line segment (3 kids)", NULL,
268		InitSegments, DoSegments, NullProc, EndSegments,
269		V1_2FEATURE, ROP, 3,
270		{POLY, 100}},
271  {"-dseg10",   "10-pixel dashed segment", NULL,
272		InitDashedSegments, DoSegments, NullProc, EndSegments,
273		V1_2FEATURE, ROP, 0,
274		{POLY, 10}},
275  {"-dseg100", "100-pixel dashed segment", NULL,
276		InitDashedSegments, DoSegments, NullProc, EndSegments,
277		V1_2FEATURE, ROP, 0,
278		{POLY, 100}},
279  {"-ddseg100", "100-pixel double-dashed segment", NULL,
280		InitDoubleDashedSegments, DoSegments, NullProc, EndSegments,
281		V1_2FEATURE, ROP, 0,
282		{POLY, 100}},
283  {"-hseg10",   "10-pixel horizontal line segment", NULL,
284		InitHorizSegments, DoSegments, NullProc, EndSegments,
285		V1_3FEATURE, ROP, 0,
286		{POLY, 10}},
287  {"-hseg100",  "100-pixel horizontal line segment", NULL,
288		InitHorizSegments, DoSegments, NullProc, EndSegments,
289		V1_3FEATURE, ROP, 0,
290		{POLY, 100}},
291  {"-hseg500",  "500-pixel horizontal line segment", NULL,
292		InitHorizSegments, DoSegments, NullProc, EndSegments,
293		V1_3FEATURE, ROP, 0,
294		{POLY, 500}},
295  {"-vseg10",   "10-pixel vertical line segment", NULL,
296		InitVertSegments, DoSegments, NullProc, EndSegments,
297		V1_3FEATURE, ROP, 0,
298		{POLY, 10}},
299  {"-vseg100",  "100-pixel vertical line segment", NULL,
300		InitVertSegments, DoSegments, NullProc, EndSegments,
301		V1_3FEATURE, ROP, 0,
302		{POLY, 100}},
303  {"-vseg500",  "500-pixel vertical line segment", NULL,
304		InitVertSegments, DoSegments, NullProc, EndSegments,
305		V1_3FEATURE, ROP, 0,
306		{POLY, 500}},
307  {"-whseg10",  "10x1 wide horizontal line segment", NULL,
308		InitWideHorizSegments, DoSegments, NullProc, EndSegments,
309		V1_3FEATURE, ROP, 0,
310		{200, 10}},
311  {"-whseg100", "100x10 wide horizontal line segment", NULL,
312		InitWideHorizSegments, DoSegments, NullProc, EndSegments,
313		V1_3FEATURE, ROP, 0,
314		{100, 100}},
315  {"-whseg500", "500x50 wide horizontal line segment", NULL,
316		InitWideHorizSegments, DoSegments, NullProc, EndSegments,
317		V1_3FEATURE, ROP, 0,
318		{50, 500}},
319  {"-wvseg10",  "10x1 wide vertical line segment", NULL,
320		InitWideVertSegments, DoSegments, NullProc, EndSegments,
321		V1_3FEATURE, ROP, 0,
322		{200, 10}},
323  {"-wvseg100", "100x10 wide vertical line segment", NULL,
324		InitWideVertSegments, DoSegments, NullProc, EndSegments,
325		V1_3FEATURE, ROP, 0,
326		{100, 100}},
327  {"-wvseg500", "500x50 wide vertical line segment", NULL,
328		InitWideVertSegments, DoSegments, NullProc, EndSegments,
329		V1_3FEATURE, ROP, 0,
330		{50, 500}},
331  {"-line1",   "1-pixel line", NULL,
332		InitLines, DoLines, NullProc, EndLines,
333		V1_2FEATURE, ROP, 0,
334		{POLY, 1}},
335  {"-line10",   "10-pixel line", NULL,
336		InitLines, DoLines, NullProc, EndLines,
337		V1_2FEATURE, ROP, 0,
338		{POLY, 10}},
339  {"-line100",  "100-pixel line", NULL,
340		InitLines, DoLines, NullProc, EndLines,
341		V1_2FEATURE, ROP, 0,
342		{POLY, 100}},
343  {"-line500", "500-pixel line", NULL,
344		InitLines, DoLines, NullProc, EndLines,
345		V1_2FEATURE, ROP, 0,
346		{POLY, 500}},
347  {"-dline10",  "10-pixel dashed line", NULL,
348		InitDashedLines, DoLines, NullProc, EndLines,
349		V1_2FEATURE, ROP, 0,
350		{POLY, 10}},
351  {"-dline100", "100-pixel dashed line", NULL,
352		InitDashedLines, DoLines, NullProc, EndLines,
353		V1_2FEATURE, ROP, 0,
354		{POLY, 100}},
355  {"-ddline100", "100-pixel double-dashed line", NULL,
356		InitDoubleDashedLines, DoLines, NullProc, EndLines,
357		V1_2FEATURE, ROP, 0,
358		{POLY, 100}},
359  {"-wline10",  "10x1 wide line", NULL,
360		InitWideLines, DoLines, NullProc, EndLines,
361		V1_2FEATURE, ROP, 0,
362		{100, 10}},
363  {"-wline100", "100x10 wide line", NULL,
364		InitWideLines, DoLines, NullProc, EndLines,
365		V1_2FEATURE, ROP, 0,
366		{100, 100}},
367  {"-wline500", "500x50 wide line", NULL,
368		InitWideLines, DoLines, NullProc, EndLines,
369		V1_2FEATURE, ROP, 0,
370		{50, 500}},
371  {"-wdline100", "100x10 wide dashed line", NULL,
372		InitWideDashedLines, DoLines, NullProc, EndLines,
373		V1_2FEATURE, ROP, 0,
374		{100, 100}},
375  {"-wddline100",  "100x10 wide double-dashed line", NULL,
376		InitWideDoubleDashedLines, DoLines, NullProc, EndLines,
377		V1_2FEATURE, ROP, 0,
378		{100, 100}},
379  {"-orect10",  "10x10 rectangle outline", NULL,
380		InitRectangles, DoOutlineRectangles, NullProc, EndRectangles,
381		V1_3FEATURE, ROP, 0,
382		{POLY, 10, NULL, "0", FillSolid}},
383  {"-orect100", "100x100 rectangle outline", NULL,
384		InitRectangles, DoOutlineRectangles, NullProc, EndRectangles,
385		V1_3FEATURE, ROP, 0,
386		{36, 100, NULL, "0", FillSolid}},
387  {"-orect500",	"500x500 rectangle outline", NULL,
388		InitRectangles, DoOutlineRectangles, NullProc, EndRectangles,
389		V1_3FEATURE, ROP, 0,
390		{1, 500, NULL, "0", FillSolid}},
391  {"-worect10",	"10x10 wide rectangle outline", NULL,
392		InitRectangles, DoOutlineRectangles, NullProc, EndRectangles,
393		V1_3FEATURE, ROP, 0,
394		{POLY, 10, NULL, "1", FillSolid}},
395  {"-worect100", "100x100 wide rectangle outline", NULL,
396		InitRectangles, DoOutlineRectangles, NullProc, EndRectangles,
397		V1_3FEATURE, ROP, 0,
398		{36, 100, NULL, "10", FillSolid}},
399  {"-worect500", "500x500 wide rectangle outline", NULL,
400		InitRectangles, DoOutlineRectangles, NullProc, EndRectangles,
401		V1_3FEATURE, ROP, 0,
402		{1, 500, NULL, "50", FillSolid}},
403  {"-circle1",  "1-pixel circle", NULL,
404		InitCircles, DoArcs, NullProc, EndArcs,
405		V1_2FEATURE, ROP, 0,
406		{POLY, 1}},
407  {"-circle10", "10-pixel circle", NULL,
408		InitCircles, DoArcs, NullProc, EndArcs,
409		V1_2FEATURE, ROP, 0,
410		{POLY, 10}},
411  {"-circle100", "100-pixel circle", NULL,
412		InitCircles, DoArcs, NullProc, EndArcs,
413		V1_2FEATURE, ROP, 0,
414		{200, 100}},
415  {"-circle500", "500-pixel circle", NULL,
416		InitCircles, DoArcs, NullProc, EndArcs,
417		V1_2FEATURE, ROP, 0,
418		{50, 500}},
419  {"-dcircle100", "100-pixel dashed circle", NULL,
420		InitDashedCircles, DoArcs, NullProc, EndArcs,
421		V1_2FEATURE, ROP, 0,
422		{100, 100}},
423  {"-ddcircle100", "100-pixel double-dashed circle", NULL,
424		InitDoubleDashedCircles, DoArcs, NullProc, EndArcs,
425		V1_2FEATURE, ROP, 0,
426		{100, 100}},
427  {"-wcircle10", "10-pixel wide circle", NULL,
428		InitWideCircles, DoArcs, NullProc, EndArcs,
429		V1_2FEATURE, ROP, 0,
430		{POLY, 10}},
431  {"-wcircle100", "100-pixel wide circle", NULL,
432		InitWideCircles, DoArcs, NullProc, EndArcs,
433		V1_2FEATURE, ROP, 0,
434		{100, 100}},
435  {"-wcircle500", "500-pixel wide circle", NULL,
436		InitWideCircles, DoArcs, NullProc, EndArcs,
437		V1_2FEATURE, ROP, 0,
438		{25, 500}},
439  {"-wdcircle100", "100-pixel wide dashed circle", NULL,
440		InitWideDashedCircles, DoArcs, NullProc, EndArcs,
441		V1_2FEATURE, ROP, 0,
442		{100, 100}},
443  {"-wddcircle100", "100-pixel wide double-dashed circle", NULL,
444		InitWideDoubleDashedCircles, DoArcs, NullProc, EndArcs,
445		V1_2FEATURE, ROP, 0,
446		{100, 100}},
447  {"-pcircle10", "10-pixel partial circle", NULL,
448		InitPartCircles, DoArcs, NullProc, EndArcs,
449		V1_2FEATURE, ROP, 0,
450		{POLY, 10}},
451  {"-pcircle100", "100-pixel partial circle", NULL,
452		InitPartCircles, DoArcs, NullProc, EndArcs,
453		V1_2FEATURE, ROP, 0,
454		{198, 100}},
455  {"-wpcircle10", "10-pixel wide partial circle", NULL,
456		InitPartWideCircles, DoArcs, NullProc, EndArcs,
457		V1_3FEATURE, ROP, 0,
458		{POLY, 10}},
459  {"-wpcircle100", "100-pixel wide partial circle", NULL,
460		InitPartWideCircles, DoArcs, NullProc, EndArcs,
461		V1_3FEATURE, ROP, 0,
462		{198, 100}},
463  {"-fcircle1",  "1-pixel solid circle", NULL,
464		InitCircles, DoFilledArcs, NullProc, EndArcs,
465		V1_2FEATURE, ROP, 0,
466		{POLY, 1}},
467  {"-fcircle10", "10-pixel solid circle", NULL,
468		InitCircles, DoFilledArcs, NullProc, EndArcs,
469		V1_2FEATURE, ROP, 0,
470		{POLY, 10}},
471  {"-fcircle100", "100-pixel solid circle", NULL,
472		InitCircles, DoFilledArcs, NullProc, EndArcs,
473		V1_2FEATURE, ROP, 0,
474		{100, 100}},
475  {"-fcircle500", "500-pixel solid circle", NULL,
476		InitCircles, DoFilledArcs, NullProc, EndArcs,
477		V1_2FEATURE, ROP, 0,
478		{20, 500}},
479  {"-fcpcircle10", "10-pixel fill chord partial circle", NULL,
480		InitChordPartCircles, DoFilledArcs, NullProc, EndArcs,
481		V1_2FEATURE, ROP, 0,
482		{POLY, 10}},
483  {"-fcpcircle100", "100-pixel fill chord partial circle", NULL,
484		InitChordPartCircles, DoFilledArcs, NullProc, EndArcs,
485		V1_2FEATURE, ROP, 0,
486		{108, 100}},
487  {"-fspcircle10", "10-pixel fill slice partial circle", NULL,
488		InitSlicePartCircles, DoFilledArcs, NullProc, EndArcs,
489		V1_2FEATURE, ROP, 0,
490		{POLY, 10}},
491  {"-fspcircle100", "100-pixel fill slice partial circle", NULL,
492		InitSlicePartCircles, DoFilledArcs, NullProc, EndArcs,
493		V1_2FEATURE, ROP, 0,
494		{108, 100}},
495  {"-ellipse10", "10-pixel ellipse", NULL,
496		InitEllipses, DoArcs, NullProc, EndArcs,
497		V1_2FEATURE, ROP, 0,
498		{500, 10}},
499  {"-ellipse100", "100-pixel ellipse", NULL,
500		InitEllipses, DoArcs, NullProc, EndArcs,
501		V1_2FEATURE, ROP, 0,
502		{300, 100}},
503  {"-ellipse500", "500-pixel ellipse", NULL,
504		InitEllipses, DoArcs, NullProc, EndArcs,
505		V1_2FEATURE, ROP, 0,
506		{100, 500}},
507  {"-dellipse100", "100-pixel dashed ellipse", NULL,
508		InitDashedEllipses, DoArcs, NullProc, EndArcs,
509		V1_2FEATURE, ROP, 0,
510		{25, 100}},
511  {"-ddellipse100", "100-pixel double-dashed ellipse", NULL,
512		InitDoubleDashedEllipses, DoArcs, NullProc, EndArcs,
513		V1_2FEATURE, ROP, 0,
514		{25, 100}},
515  {"-wellipse10", "10-pixel wide ellipse", NULL,
516		InitWideEllipses, DoArcs, NullProc, EndArcs,
517		V1_2FEATURE, ROP, 0,
518		{200, 10}},
519  {"-wellipse100", "100-pixel wide ellipse", NULL,
520		InitWideEllipses, DoArcs, NullProc, EndArcs,
521		V1_2FEATURE, ROP, 0,
522		{25, 100}},
523  {"-wellipse500", "500-pixel wide ellipse", NULL,
524		InitWideEllipses, DoArcs, NullProc, EndArcs,
525		V1_2FEATURE, ROP, 0,
526		{20, 500}},
527  {"-wdellipse100", "100-pixel wide dashed ellipse", NULL,
528		InitWideDashedEllipses, DoArcs, NullProc, EndArcs,
529		V1_2FEATURE, ROP, 0,
530		{25, 100}},
531  {"-wddellipse100", "100-pixel wide double-dashed ellipse", NULL,
532		InitWideDoubleDashedEllipses, DoArcs, NullProc, EndArcs,
533		V1_2FEATURE, ROP, 0,
534		{25, 100}},
535  {"-pellipse10", "10-pixel partial ellipse", NULL,
536		InitPartEllipses, DoArcs, NullProc, EndArcs,
537		V1_2FEATURE, ROP, 0,
538		{540, 10}},
539  {"-pellipse100", "100-pixel partial ellipse", NULL,
540		InitPartEllipses, DoArcs, NullProc, EndArcs,
541		V1_2FEATURE, ROP, 0,
542		{360, 100}},
543  {"-wpellipse10", "10-pixel wide partial ellipse", NULL,
544		InitPartWideEllipses, DoArcs, NullProc, EndArcs,
545		V1_3FEATURE, ROP, 0,
546		{540, 10}},
547  {"-wpellipse100", "100-pixel wide partial ellipse", NULL,
548		InitPartWideEllipses, DoArcs, NullProc, EndArcs,
549		V1_3FEATURE, ROP, 0,
550		{360, 100}},
551  {"-fellipse10", "10-pixel filled ellipse", NULL,
552		InitEllipses, DoFilledArcs, NullProc, EndArcs,
553		V1_2FEATURE, ROP, 0,
554		{200, 10}},
555  {"-fellipse100", "100-pixel filled ellipse", NULL,
556		InitEllipses, DoFilledArcs, NullProc, EndArcs,
557		V1_2FEATURE, ROP, 0,
558		{25, 100}},
559  {"-fellipse500", "500-pixel filled ellipse", NULL,
560		InitEllipses, DoFilledArcs, NullProc, EndArcs,
561		V1_2FEATURE, ROP, 0,
562		{10, 500}},
563  {"-fcpellipse10", "10-pixel fill chord partial ellipse", NULL,
564		InitChordPartEllipses, DoFilledArcs, NullProc, EndArcs,
565		V1_2FEATURE, ROP, 0,
566		{270, 10}},
567  {"-fcpellipse100", "100-pixel fill chord partial ellipse", NULL,
568		InitChordPartEllipses, DoFilledArcs, NullProc, EndArcs,
569		V1_2FEATURE, ROP, 0,
570		{36, 100}},
571  {"-fspellipse10", "10-pixel fill slice partial ellipse", NULL,
572		InitSlicePartEllipses, DoFilledArcs, NullProc, EndArcs,
573		V1_2FEATURE, ROP, 0,
574		{270, 10}},
575  {"-fspellipse100", "100-pixel fill slice partial ellipse", NULL,
576		InitSlicePartEllipses, DoFilledArcs, NullProc, EndArcs,
577		V1_2FEATURE, ROP, 0,
578		{36, 100}},
579  {"-triangle1", "Fill 1-pixel/side triangle", NULL,
580		InitTriangles, DoTriangles, NullProc, EndTriangles,
581		V1_2ONLY, ROP, 0,
582		{POLY, 1}},
583  {"-triangle10", "Fill 10-pixel/side triangle", NULL,
584		InitTriangles, DoTriangles, NullProc, EndTriangles,
585		V1_2ONLY, ROP, 0,
586		{POLY, 10}},
587  {"-triangle100", "Fill 100-pixel/side triangle", NULL,
588		InitTriangles, DoTriangles, NullProc, EndTriangles,
589		V1_2ONLY, ROP, 0,
590		{100, 100}},
591  {"-triangle1", "Fill 1x1 equivalent triangle", NULL,
592		InitTriangles, DoTriangles, NullProc, EndTriangles,
593		V1_3FEATURE, ROP, 0,
594		{POLY, 1}},
595  {"-triangle10", "Fill 10x10 equivalent triangle", NULL,
596		InitTriangles, DoTriangles, NullProc, EndTriangles,
597		V1_3FEATURE, ROP, 0,
598		{POLY, 10}},
599  {"-triangle100", "Fill 100x100 equivalent triangle", NULL,
600		InitTriangles, DoTriangles, NullProc, EndTriangles,
601		V1_3FEATURE, ROP, 0,
602		{100, 100}},
603  {"-trap1", "Fill 1x1 trapezoid", NULL,
604		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
605		V1_4FEATURE, ROP, 0,
606		{POLY, 1}},
607  {"-trap10", "Fill 10x10 trapezoid", NULL,
608		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
609		V1_2FEATURE, ROP, 0,
610		{POLY, 10}},
611  {"-trap100", "Fill 100x100 trapezoid", NULL,
612		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
613		V1_2FEATURE, ROP, 0,
614		{POLY/10, 100}},
615  {"-trap300", "Fill 300x300 trapezoid", NULL,
616		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
617		V1_4FEATURE, ROP, 0,
618		{2, 300}},
619  {"-strap1", "Fill 1x1 stippled trapezoid (8x8 stipple)", NULL,
620		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
621		V1_4FEATURE, ROP, 0,
622		{POLY, 1, NULL, NULL, FillStippled}},
623  {"-strap10", "Fill 10x10 stippled trapezoid",
624		"Fill 10x10 stippled trapezoid (8x8 stipple)",
625		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
626		V1_2FEATURE, ROP, 0,
627		{POLY, 10, NULL, NULL, FillStippled}},
628  {"-strap100", "Fill 100x100 stippled trapezoid",
629		"Fill 100x100 stippled trapezoid (8x8 stipple)",
630		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
631		V1_2FEATURE, ROP, 0,
632		{100, 100, NULL, NULL, FillStippled}},
633  {"-strap300", "Fill 300x300 stippled trapezoid (8x8 stipple)", NULL,
634		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
635		V1_4FEATURE, ROP, 0,
636		{2, 300, NULL, NULL, FillStippled}},
637  {"-ostrap1", "Fill 1x1 opaque stippled trapezoid (8x8 stipple)", NULL,
638		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
639		V1_4FEATURE, ROP, 0,
640		{POLY, 1, NULL, NULL, FillOpaqueStippled}},
641  {"-ostrap10", "Fill 10x10 opaque stippled trapezoid",
642		"Fill 10x10 opaque stippled trapezoid (8x8 stipple)",
643		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
644		V1_2FEATURE, ROP, 0,
645		{POLY, 10, NULL, NULL, FillOpaqueStippled}},
646  {"-ostrap100", "Fill 100x100 opaque stippled trapezoid",
647		"Fill 100x100 opaque stippled trapezoid (8x8 stipple)",
648		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
649		V1_2FEATURE, ROP, 0,
650		{100, 100, NULL, NULL, FillOpaqueStippled}},
651  {"-ostrap300", "Fill 300x300 opaque stippled trapezoid (8x8 stipple)", NULL,
652		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
653		V1_4FEATURE, ROP, 0,
654		{2, 300, NULL, NULL, FillOpaqueStippled}},
655  {"-tiletrap1", "Fill 1x1 tiled trapezoid (4x4 tile)", NULL,
656		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
657		V1_4FEATURE, ROP, 0,
658		{POLY, 1, NULL, NULL, FillTiled}},
659  {"-tiletrap10", "Fill 10x10 tiled trapezoid",
660		"Fill 10x10 tiled trapezoid (4x4 tile)",
661		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
662		V1_2FEATURE, ROP, 0,
663		{POLY, 10, NULL, NULL, FillTiled}},
664  {"-tiletrap100", "Fill 100x100 tiled trapezoid",
665		"Fill 100x100 tiled trapezoid (4x4 tile)",
666		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
667		V1_2FEATURE, ROP, 0,
668		{100, 100, NULL, NULL, FillTiled}},
669  {"-tiletrap300", "Fill 300x300 tiled trapezoid (4x4 tile)", NULL,
670		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
671		V1_4FEATURE, ROP, 0,
672		{2, 300, NULL, NULL, FillTiled}},
673  {"-oddstrap1", "Fill 1x1 stippled trapezoid (17x15 stipple)", NULL,
674		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
675		V1_4FEATURE, ROP, 0,
676		{POLY, 1, "OddTile", NULL, FillStippled}},
677  {"-oddstrap10", "Fill 10x10 stippled trapezoid (17x15 stipple)", NULL,
678		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
679		V1_4FEATURE, ROP, 0,
680		{POLY, 10, "OddTile", NULL, FillStippled}},
681  {"-oddstrap100", "Fill 100x100 stippled trapezoid (17x15 stipple)", NULL,
682		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
683		V1_4FEATURE, ROP, 0,
684		{100, 100, "OddTile", NULL, FillStippled}},
685  {"-oddstrap300", "Fill 300x300 stippled trapezoid (17x15 stipple)", NULL,
686		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
687		V1_4FEATURE, ROP, 0,
688		{2, 300, "OddTile", NULL, FillStippled}},
689  {"-oddostrap1", "Fill 1x1 opaque stippled trapezoid (17x15 stipple)", NULL,
690		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
691		V1_4FEATURE, ROP, 0,
692		{POLY, 1, "OddTile", NULL, FillOpaqueStippled}},
693  {"-oddostrap10", "Fill 10x10 opaque stippled trapezoid (17x15 stipple)", NULL,
694		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
695		V1_4FEATURE, ROP, 0,
696		{POLY, 10, "OddTile", NULL, FillOpaqueStippled}},
697  {"-oddostrap100", "Fill 100x100 opaque stippled trapezoid (17x15 stipple)", NULL,
698		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
699		V1_4FEATURE, ROP, 0,
700		{100, 100, "OddTile", NULL, FillOpaqueStippled}},
701  {"-oddostrap300", "Fill 300x300 opaque stippled trapezoid (17x15 stipple)", NULL,
702		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
703		V1_4FEATURE, ROP, 0,
704		{2, 300, "OddTile", NULL, FillOpaqueStippled}},
705  {"-oddtiletrap1", "Fill 1x1 tiled trapezoid (17x15 tile)", NULL,
706		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
707		V1_4FEATURE, ROP, 0,
708		{POLY, 1, "OddTile", NULL, FillTiled}},
709  {"-oddtiletrap10", "Fill 10x10 tiled trapezoid (17x15 tile)", NULL,
710		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
711		V1_4FEATURE, ROP, 0,
712		{POLY, 10, "OddTile", NULL, FillTiled}},
713  {"-oddtiletrap100", "Fill 100x100 tiled trapezoid (17x15 tile)", NULL,
714		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
715		V1_4FEATURE, ROP, 0,
716		{100, 100, "OddTile", NULL, FillTiled}},
717  {"-oddtiletrap300", "Fill 300x300 tiled trapezoid (17x15 tile)", NULL,
718		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
719		V1_4FEATURE, ROP, 0,
720		{2, 300, "OddTile", NULL, FillTiled}},
721  {"-bigstrap1", "Fill 1x1 stippled trapezoid (161x145 stipple)", NULL,
722		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
723		V1_4FEATURE, ROP, 0,
724		{POLY, 1, "mensetmanus", NULL, FillStippled}},
725  {"-bigstrap10", "Fill 10x10 161x145 stippled trapezoid",
726		"Fill 10x10 stippled trapezoid (161x145 stipple)",
727		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
728		V1_3FEATURE, ROP, 0,
729		{POLY, 10, "mensetmanus", NULL, FillStippled}},
730  {"-bigstrap100", "Fill 100x100 161x145 stippled trapezoid",
731		"Fill 100x100 stippled trapezoid (161x145 stipple)",
732		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
733		V1_3FEATURE, ROP, 0,
734		{100, 100, "mensetmanus", NULL, FillStippled}},
735  {"-bigstrap300", "Fill 300x300 stippled trapezoid (161x145 stipple)", NULL,
736		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
737		V1_4FEATURE, ROP, 0,
738		{2, 300, "mensetmanus", NULL, FillStippled}},
739  {"-bigostrap1", "Fill 1x1 opaque stippled trapezoid (161x145 stipple)", NULL,
740		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
741		V1_4FEATURE, ROP, 0,
742		{POLY, 1, "mensetmanus", NULL, FillOpaqueStippled}},
743  {"-bigostrap10", "Fill 10x10 161x145 opaque stippled trapezoid",
744		"Fill 10x10 opaque stippled trapezoid (161x145 stipple)",
745		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
746		V1_3FEATURE, ROP, 0,
747		{POLY, 10, "mensetmanus", NULL, FillOpaqueStippled}},
748  {"-bigostrap100", "Fill 100x100 161x145 opaque stippled trapezoid",
749		"Fill 100x100 opaque stippled trapezoid (161x145 stipple)",
750		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
751		V1_3FEATURE, ROP, 0,
752		{100, 100, "mensetmanus", NULL, FillOpaqueStippled}},
753  {"-bigostrap300", "Fill 300x300 opaque stippled trapezoid (161x145 stipple)", NULL,
754		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
755		V1_4FEATURE, ROP, 0,
756		{2, 300, "mensetmanus", NULL, FillOpaqueStippled}},
757  {"-bigtiletrap1", "Fill 1x1 tiled trapezoid (161x145 tile)", NULL,
758		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
759		V1_4FEATURE, ROP, 0,
760		{POLY, 1, "mensetmanus", NULL, FillTiled}},
761  {"-bigtiletrap10", "Fill 10x10 161x145 tiled trapezoid",
762		"Fill 10x10 tiled trapezoid (161x145 tile)",
763		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
764		V1_3FEATURE, ROP, 0,
765		{POLY, 10, "mensetmanus", NULL, FillTiled}},
766  {"-bigtiletrap100", "Fill 100x100 161x145 tiled trapezoid",
767		"Fill 100x100 tiled trapezoid (161x145 tile)",
768		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
769		V1_3FEATURE, ROP, 0,
770		{100, 100, "mensetmanus", NULL, FillTiled}},
771  {"-bigtiletrap300", "Fill 300x300 tiled trapezoid (161x145 tile)", NULL,
772		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
773		V1_4FEATURE, ROP, 0,
774		{2, 300, "mensetmanus", NULL, FillTiled}},
775  {"-eschertiletrap1", "Fill 1x1 tiled trapezoid (216x208 tile)", NULL,
776		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
777		V1_4FEATURE, ROP, 0,
778		{POLY, 1, "escherknot", NULL, FillTiled}},
779  {"-eschertiletrap10", "Fill 10x10 216x208 tiled trapezoid",
780		"Fill 10x10 tiled trapezoid (216x208 tile)",
781		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
782		V1_3FEATURE, ROP, 0,
783		{POLY, 10, "escherknot", NULL, FillTiled}},
784  {"-eschertiletrap100", "Fill 100x100 216x208 tiled trapezoid",
785		"Fill 100x100 tiled trapezoid (216x208 tile)",
786		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
787		V1_3FEATURE, ROP, 0,
788		{36, 100, "escherknot", NULL, FillTiled}},
789  {"-eschertiletrap300", "Fill 300x300 tiled trapezoid (216x208 tile)", NULL,
790		InitTrapezoids, DoTrapezoids, NullProc, EndTrapezoids,
791		V1_4FEATURE, ROP, 0,
792		{2, 300, "escherknot", NULL, FillTiled}},
793#ifdef XRENDER
794  {"-aatrap1", "Fill 1x1 aa trap", NULL,
795		InitFixedTraps, DoFixedTraps, NullProc, EndFixedTraps,
796		V1_5FEATURE, NONROP, 0,
797		{POLY, 1 }},
798  {"-aatrap10", "Fill 10x10 aa trap", NULL,
799		InitFixedTraps, DoFixedTraps, NullProc, EndFixedTraps,
800		V1_5FEATURE, NONROP, 0,
801		{POLY, 10 }},
802  {"-aatrap100", "Fill 100x100 aa trap", NULL,
803		InitFixedTraps, DoFixedTraps, NullProc, EndFixedTraps,
804		V1_5FEATURE, NONROP, 0,
805		{POLY, 100 }},
806  {"-aatrap300", "Fill 300x300 aa trap", NULL,
807		InitFixedTraps, DoFixedTraps, NullProc, EndFixedTraps,
808		V1_5FEATURE, NONROP, 0,
809		{POLY, 300 }},
810  {"-aa4trap1", "Fill 1x1 aa trap with 4 bit alpha", NULL,
811		InitFixedTraps, DoFixedTraps, NullProc, EndFixedTraps,
812		V1_5FEATURE, NONROP, 0,
813		{POLY, 1, "4" }},
814  {"-aa4trap10", "Fill 10x10 aa trap with 4 bit alpha", NULL,
815		InitFixedTraps, DoFixedTraps, NullProc, EndFixedTraps,
816		V1_5FEATURE, NONROP, 0,
817		{POLY, 10, "4" }},
818  {"-aa4trap100", "Fill 100x100 aa trap with 4 bit alpha", NULL,
819		InitFixedTraps, DoFixedTraps, NullProc, EndFixedTraps,
820		V1_5FEATURE, NONROP, 0,
821		{POLY, 100, "4" }},
822  {"-aa4trap300", "Fill 300x300 aa trap with 4 bit alpha", NULL,
823		InitFixedTraps, DoFixedTraps, NullProc, EndFixedTraps,
824		V1_5FEATURE, NONROP, 0,
825		{POLY, 300, "4" }},
826  {"-aa1trap1", "Fill 1x1 aa trap with 1 bit alpha", NULL,
827		InitFixedTraps, DoFixedTraps, NullProc, EndFixedTraps,
828		V1_5FEATURE, NONROP, 0,
829		{POLY, 1, "1" }},
830  {"-aa1trap10", "Fill 10x10 aa trap with 1 bit alpha", NULL,
831		InitFixedTraps, DoFixedTraps, NullProc, EndFixedTraps,
832		V1_5FEATURE, NONROP, 0,
833		{POLY, 10, "1" }},
834  {"-aa1trap100", "Fill 100x100 aa trap with 1 bit alpha", NULL,
835		InitFixedTraps, DoFixedTraps, NullProc, EndFixedTraps,
836		V1_5FEATURE, NONROP, 0,
837		{POLY, 100, "1" }},
838  {"-aa1trap300", "Fill 300x300 aa trap with 1 bit alpha", NULL,
839		InitFixedTraps, DoFixedTraps, NullProc, EndFixedTraps,
840		V1_5FEATURE, NONROP, 0,
841		{POLY, 300, "1" }},
842
843  {"-aatrap2x1", "Fill 2x1 aa trap", NULL,
844		InitFixedTraps, DoFixedTraps, NullProc, EndFixedTraps,
845		V1_5FEATURE, NONROP, 0,
846		{POLY, 1, "8,2" }},
847  {"-aatrap2x10", "Fill 2x10 aa trap", NULL,
848		InitFixedTraps, DoFixedTraps, NullProc, EndFixedTraps,
849		V1_5FEATURE, NONROP, 0,
850		{POLY, 10, "8,2" }},
851  {"-aatrap2x100", "Fill 2x100 aa trap", NULL,
852		InitFixedTraps, DoFixedTraps, NullProc, EndFixedTraps,
853		V1_5FEATURE, NONROP, 0,
854		{POLY, 100, "8,2" }},
855  {"-aatrap2x300", "Fill 2x300 aa trap", NULL,
856		InitFixedTraps, DoFixedTraps, NullProc, EndFixedTraps,
857		V1_5FEATURE, NONROP, 0,
858		{POLY, 300, "8,2" }},
859
860  {"-aatrapezoid1", "Fill 1x1 aa trapezoid", NULL,
861		InitFixedTrapezoids, DoFixedTrapezoids, NullProc, EndFixedTrapezoids,
862		V1_5FEATURE, NONROP, 0,
863		{POLY, 1 }},
864  {"-aatrapezoid10", "Fill 10x10 aa trapezoid", NULL,
865		InitFixedTrapezoids, DoFixedTrapezoids, NullProc, EndFixedTrapezoids,
866		V1_5FEATURE, NONROP, 0,
867		{POLY, 10 }},
868  {"-aatrapezoid100", "Fill 100x100 aa trapezoid", NULL,
869		InitFixedTrapezoids, DoFixedTrapezoids, NullProc, EndFixedTrapezoids,
870		V1_5FEATURE, NONROP, 0,
871		{POLY, 100 }},
872  {"-aatrapezoid300", "Fill 300x300 aa trapezoid", NULL,
873		InitFixedTrapezoids, DoFixedTrapezoids, NullProc, EndFixedTrapezoids,
874		V1_5FEATURE, NONROP, 0,
875		{POLY, 300 }},
876  {"-addaatrapezoid1", "Fill 1x1 aa pre-added trapezoid", NULL,
877		InitFixedTrapezoids, DoFixedTrapezoids, NullProc, EndFixedTrapezoids,
878		V1_5FEATURE, NONROP, 0,
879		{POLY, 1, "add" }},
880  {"-addaatrapezoid10", "Fill 10x10 aa pre-added trapezoid", NULL,
881		InitFixedTrapezoids, DoFixedTrapezoids, NullProc, EndFixedTrapezoids,
882		V1_5FEATURE, NONROP, 0,
883		{POLY, 10, "add" }},
884  {"-addaatrapezoid100", "Fill 100x100 aa pre-added trapezoid", NULL,
885		InitFixedTrapezoids, DoFixedTrapezoids, NullProc, EndFixedTrapezoids,
886		V1_5FEATURE, NONROP, 0,
887		{POLY, 100, "add" }},
888  {"-addaatrapezoid300", "Fill 300x300 aa pre-added trapezoid", NULL,
889		InitFixedTrapezoids, DoFixedTrapezoids, NullProc, EndFixedTrapezoids,
890		V1_5FEATURE, NONROP, 0,
891		{POLY, 300, "add" }},
892#endif
893  {"-complex10", "Fill 10-pixel/side complex polygon", NULL,
894		InitComplexPoly, DoComplexPoly, NullProc, EndComplexPoly,
895		V1_2ONLY, ROP, 0,
896		{POLY, 10}},
897  {"-complex100", "Fill 100-pixel/side complex polygons", NULL,
898		InitComplexPoly, DoComplexPoly, NullProc, EndComplexPoly,
899		V1_2ONLY, ROP, 0,
900		{POLY/10, 100}},
901  {"-complex10", "Fill 10x10 equivalent complex polygon", NULL,
902		InitComplexPoly, DoComplexPoly, NullProc, EndComplexPoly,
903		V1_3FEATURE, ROP, 0,
904		{POLY, 10}},
905  {"-complex100", "Fill 100x100 equivalent complex polygons", NULL,
906		InitComplexPoly, DoComplexPoly, NullProc, EndComplexPoly,
907		V1_3FEATURE, ROP, 0,
908		{POLY/10, 100}},
909  {"-64poly10convex", "Fill 10x10 64-gon (Convex)", NULL,
910		InitGeneralPoly, DoGeneralPoly, NullProc, EndComplexPoly,
911		V1_4FEATURE, ROP, 0,
912		{POLY, 10, (char *) 64, (char *) Convex}},
913  {"-64poly100convex", "Fill 100x100 64-gon (Convex)", NULL,
914		InitGeneralPoly, DoGeneralPoly, NullProc, EndComplexPoly,
915		V1_4FEATURE, ROP, 0,
916		{POLY/10, 100, (char *) 64, (char *) Convex}},
917  {"-64poly10complex", "Fill 10x10 64-gon (Complex)", NULL,
918		InitGeneralPoly, DoGeneralPoly, NullProc, EndComplexPoly,
919		V1_4FEATURE, ROP, 0,
920		{POLY, 10, (char *) 64, (char *) Complex}},
921  {"-64poly100complex", "Fill 100x100 64-gon (Complex)", NULL,
922		InitGeneralPoly, DoGeneralPoly, NullProc, EndComplexPoly,
923		V1_4FEATURE, ROP, 0,
924		{POLY/10, 100, (char *) 64, (char *) Complex}},
925  {"-ftext",    "Char in 80-char line (6x13)", NULL,
926		InitText, DoText, ClearTextWin, EndText,
927		V1_2FEATURE, ROP, 0,
928		{80, False, "6x13", NULL}},
929  {"-f8text",    "Char in 70-char line (8x13)", NULL,
930		InitText, DoText, ClearTextWin, EndText,
931		V1_3FEATURE, ROP, 0,
932		{70, False, "8x13", NULL}},
933  {"-f9text",    "Char in 60-char line (9x15)", NULL,
934		InitText, DoText, ClearTextWin, EndText,
935		V1_3FEATURE, ROP, 0,
936		{60, False, "9x15", NULL}},
937  {"-f14text16",  "Char16 in 40-char line (k14)", NULL,
938		InitText16, DoText16, ClearTextWin, EndText16,
939		V1_3FEATURE, ROP, 0,
940		{40, False,
941	      "-misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0208.1983-*",
942		NULL}},
943  {"-f24text16",  "Char16 in 23-char line (k24)", NULL,
944		InitText16, DoText16, ClearTextWin, EndText16,
945		V1_3FEATURE, ROP, 0,
946		{23, False,
947	      "-jis-fixed-medium-r-normal--24-230-75-75-c-240-jisx0208.1983-*",
948		NULL}},
949  {"-tr10text", "Char in 80-char line (TR 10)", NULL,
950		InitText, DoText, ClearTextWin, EndText,
951		V1_2FEATURE, ROP, 0,
952		{80, False,
953		"-adobe-times-medium-r-normal--10-100-75-75-p-54-iso8859-1",
954		NULL}},
955  {"-tr24text", "Char in 30-char line (TR 24)", NULL,
956		InitText, DoText, ClearTextWin, EndText,
957		V1_2FEATURE, ROP, 0,
958		{30, False,
959		"-adobe-times-medium-r-normal--24-240-75-75-p-124-iso8859-1",
960 		NULL}},
961  {"-polytext", "Char in 20/40/20 line (6x13, TR 10)", NULL,
962		InitText, DoPolyText, ClearTextWin, EndText,
963		V1_2FEATURE, ROP, 0,
964		{80, True, "6x13",
965		"-adobe-times-medium-r-normal--10-100-75-75-p-54-iso8859-1"}},
966  {"-polytext16", "Char16 in 7/14/7 line (k14, k24)", NULL,
967		InitText16, DoPolyText16, ClearTextWin, EndText16,
968		V1_3FEATURE, ROP, 0,
969		{28, True,
970	     "-misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0208.1983-*",
971             "-jis-fixed-medium-r-normal--24-230-75-75-c-240-jisx0208.1983-*"}},
972  {"-fitext",   "Char in 80-char image line (6x13)", NULL,
973		InitText, DoImageText, ClearTextWin, EndText,
974		V1_2FEATURE, PLANEMASK, 0,
975		{80, False, "6x13", NULL}},
976  {"-f8itext",   "Char in 70-char image line (8x13)", NULL,
977		InitText, DoImageText, ClearTextWin, EndText,
978		V1_3FEATURE, PLANEMASK, 0,
979		{70, False, "8x13", NULL}},
980  {"-f9itext",   "Char in 60-char image line (9x15)", NULL,
981		InitText, DoImageText, ClearTextWin, EndText,
982		V1_3FEATURE, PLANEMASK, 0,
983		{60, False, "9x15", NULL}},
984  {"-f14itext16", "Char16 in 40-char image line (k14)", NULL,
985		InitText16, DoImageText16, ClearTextWin, EndText16,
986		V1_3FEATURE, PLANEMASK, 0,
987		{40, False,
988	      "-misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0208.1983-*",
989		NULL}},
990  {"-f24itext16", "Char16 in 23-char image line (k24)", NULL,
991		InitText16, DoImageText16, ClearTextWin, EndText16,
992		V1_3FEATURE, PLANEMASK, 0,
993		{23, False,
994	      "-jis-fixed-medium-r-normal--24-230-75-75-c-240-jisx0208.1983-*",
995		NULL}},
996  {"-tr10itext", "Char in 80-char image line (TR 10)", NULL,
997		InitText, DoImageText, ClearTextWin, EndText,
998		V1_2FEATURE, PLANEMASK, 0,
999		{80, False,
1000		"-adobe-times-medium-r-normal--10-100-75-75-p-54-iso8859-1",
1001		NULL}},
1002  {"-tr24itext", "Char in 30-char image line (TR 24)", NULL,
1003		InitText, DoImageText, ClearTextWin, EndText,
1004		V1_2FEATURE, PLANEMASK, 0,
1005		{30, False,
1006		"-adobe-times-medium-r-normal--24-240-75-75-p-124-iso8859-1",
1007 		NULL}},
1008#ifdef XFT
1009  {"-aa10text", "Char in 80-char aa line (Charter 10)", NULL,
1010	        InitAAText, DoAAText, ClearTextWin, EndAAText,
1011		V1_5FEATURE, NONROP, 0,
1012		{80, 10, "charter:antialias=true:rgba=0:pixelsize=10", NULL}},
1013  {"-aa24text", "Char in 30-char aa line (Charter 24)", NULL,
1014	        InitAAText, DoAAText, ClearTextWin, EndAAText,
1015		V1_5FEATURE, NONROP, 0,
1016		{30, 24, "charter:antialias=true:rgba=0:pixelsize=24", NULL}},
1017  {"-aaftext", "Char in 80-char aa line (Courier 12)", NULL,
1018	        InitAAText, DoAAText, ClearTextWin, EndAAText,
1019		V1_5FEATURE, NONROP, 0,
1020		{80, 12, "courier:antialias=true:rgba=0:pixelsize=12", NULL}},
1021  {"-a10text", "Char in 80-char a line (Charter 10)", NULL,
1022	        InitAAText, DoAAText, ClearTextWin, EndAAText,
1023		V1_5FEATURE, NONROP, 0,
1024		{80, 10, "charter:antialias=false:rgba=0:pixelsize=10", NULL}},
1025  {"-a24text", "Char in 30-char a line (Charter 24)", NULL,
1026	        InitAAText, DoAAText, ClearTextWin, EndAAText,
1027		V1_5FEATURE, NONROP, 0,
1028		{30, 24, "charter:antialias=false:rgba=0:pixelsize=24", NULL}},
1029  {"-aftext", "Char in 80-char a line (Courier 12)", NULL,
1030	        InitAAText, DoAAText, ClearTextWin, EndAAText,
1031		V1_5FEATURE, NONROP, 0,
1032		{80, 12, "courier:antialias=false:rgba=0:pixelsize=12", NULL}},
1033  {"-rgb10text", "Char in 80-char rgb line (Charter 10)", NULL,
1034	        InitAAText, DoAAText, ClearTextWin, EndAAText,
1035		V1_5FEATURE, NONROP, 0,
1036		{80, 10, "charter:antialias=true:rgba=rgb:pixelsize=10", NULL}},
1037  {"-rgb24text", "Char in 30-char rgb line (Charter 24)", NULL,
1038	        InitAAText, DoAAText, ClearTextWin, EndAAText,
1039		V1_5FEATURE, NONROP, 0,
1040		{30, 24, "charter:antialias=true:rgba=rgb:pixelsize=24", NULL}},
1041  {"-rgbftext", "Char in 80-char rgb line (Courier 12)", NULL,
1042	        InitAAText, DoAAText, ClearTextWin, EndAAText,
1043		V1_5FEATURE, NONROP, 0,
1044		{80, 12, "courier:antialias=true:rgba=rgb:pixelsize=12", NULL}},
1045  {"-caa10text", "Char in 80-char aa core line (Charter 10)", NULL,
1046	        InitAAText, DoAAText, ClearTextWin, EndAAText,
1047		V1_5FEATURE, NONROP, 0,
1048		{80, 10, "charter:antialias=true:render=false:rgba=0:pixelsize=10", NULL}},
1049  {"-caa24text", "Char in 30-char aa core line (Charter 24)", NULL,
1050	        InitAAText, DoAAText, ClearTextWin, EndAAText,
1051		V1_5FEATURE, NONROP, 0,
1052		{30, 24, "charter:antialias=true:render=false:rgba=0:pixelsize=24", NULL}},
1053  {"-caaftext", "Char in 80-char aa core line (Courier 12)", NULL,
1054	        InitAAText, DoAAText, ClearTextWin, EndAAText,
1055		V1_5FEATURE, NONROP, 0,
1056		{80, 12, "courier:antialias=true:render=false:rgba=0:pixelsize=12", NULL}},
1057  {"-ca10text", "Char in 80-char a core line (Charter 10)", NULL,
1058	        InitAAText, DoAAText, ClearTextWin, EndAAText,
1059		V1_5FEATURE, NONROP, 0,
1060		{80, 10, "charter:antialias=false:render=false:rgba=0:pixelsize=10", NULL}},
1061  {"-ca24text", "Char in 30-char a core line (Charter 24)", NULL,
1062	        InitAAText, DoAAText, ClearTextWin, EndAAText,
1063		V1_5FEATURE, NONROP, 0,
1064		{30, 24, "charter:antialias=false:render=false:rgba=0:pixelsize=24", NULL}},
1065  {"-caftext", "Char in 80-char a core line (Courier 12)", NULL,
1066	        InitAAText, DoAAText, ClearTextWin, EndAAText,
1067		V1_5FEATURE, NONROP, 0,
1068		{80, 12, "courier:antialias=false:render=false:rgba=0:pixelsize=12", NULL}},
1069  {"-rgb10text", "Char in 80-char rgb core line (Charter 10)", NULL,
1070	        InitAAText, DoAAText, ClearTextWin, EndAAText,
1071		V1_5FEATURE, NONROP, 0,
1072		{80, 10, "charter:antialias=true:render=false:rgba=rgb:pixelsize=10", NULL}},
1073  {"-rgb24text", "Char in 30-char rgb core line (Charter 24)", NULL,
1074	        InitAAText, DoAAText, ClearTextWin, EndAAText,
1075		V1_5FEATURE, NONROP, 0,
1076		{30, 24, "charter:antialias=true:render=false:rgba=rgb:pixelsize=24", NULL}},
1077  {"-rgbftext", "Char in 80-char rgb core line (Courier 12)", NULL,
1078	        InitAAText, DoAAText, ClearTextWin, EndAAText,
1079		V1_5FEATURE, NONROP, 0,
1080		{80, 12, "courier:antialias=true:render=false:rgba=rgb:pixelsize=12", NULL}},
1081#endif
1082  {"-scroll10", "Scroll 10x10 pixels", NULL,
1083		InitScroll, DoScroll, MidScroll, EndScroll,
1084		V1_2FEATURE, ROP, 0,
1085		{1, 10}},
1086  {"-scroll100", "Scroll 100x100 pixels", NULL,
1087		InitScroll, DoScroll, MidScroll, EndScroll,
1088		V1_2FEATURE, ROP, 0,
1089		{1, 100}},
1090  {"-scroll500", "Scroll 500x500 pixels", NULL,
1091		InitScroll, DoScroll, MidScroll, EndScroll,
1092		V1_2FEATURE, ROP, 0,
1093		{1, 500}},
1094  {"-copywinwin10", "Copy 10x10 from window to window", NULL,
1095		InitCopyWin, DoCopyWinWin, MidScroll, EndCopyWin,
1096		V1_2FEATURE, ROP, 0,
1097		{4, 10}},
1098  {"-copywinwin100", "Copy 100x100 from window to window", NULL,
1099		InitCopyWin, DoCopyWinWin, MidScroll, EndCopyWin,
1100		V1_2FEATURE, ROP, 0,
1101		{4, 100}},
1102  {"-copywinwin500", "Copy 500x500 from window to window", NULL,
1103		InitCopyWin, DoCopyWinWin, MidScroll, EndCopyWin,
1104		V1_2FEATURE, ROP, 0,
1105		{4, 500}},
1106  {"-copypixwin10", "Copy 10x10 from pixmap to window", NULL,
1107		InitCopyPix, DoCopyPixWin, MidCopyPix, EndCopyPix,
1108		V1_2FEATURE, ROP, 0,
1109		{4, 10}},
1110  {"-copypixwin100", "Copy 100x100 from pixmap to window", NULL,
1111		InitCopyPix, DoCopyPixWin, MidCopyPix, EndCopyPix,
1112		V1_2FEATURE, ROP, 0,
1113		{4, 100}},
1114  {"-copypixwin500", "Copy 500x500 from pixmap to window", NULL,
1115		InitCopyPix, DoCopyPixWin, MidCopyPix, EndCopyPix,
1116		V1_2FEATURE, ROP, 0,
1117		{4, 500}},
1118  {"-copywinpix10", "Copy 10x10 from window to pixmap", NULL,
1119		InitCopyPix, DoCopyWinPix, MidScroll, EndCopyPix,
1120		V1_2FEATURE, ROP, 0,
1121		{4, 10}},
1122  {"-copywinpix100", "Copy 100x100 from window to pixmap", NULL,
1123		InitCopyPix, DoCopyWinPix, MidScroll, EndCopyPix,
1124		V1_2FEATURE, ROP, 0,
1125		{4, 100}},
1126  {"-copywinpix500", "Copy 500x500 from window to pixmap", NULL,
1127		InitCopyPix, DoCopyWinPix, MidScroll, EndCopyPix,
1128		V1_2FEATURE, ROP, 0,
1129		{4, 500}},
1130  {"-copypixpix10", "Copy 10x10 from pixmap to pixmap", NULL,
1131		InitCopyPix, DoCopyPixPix, NullProc, EndCopyPix,
1132		V1_2FEATURE, ROP, 0,
1133		{4, 10}},
1134  {"-copypixpix100", "Copy 100x100 from pixmap to pixmap", NULL,
1135		InitCopyPix, DoCopyPixPix, NullProc, EndCopyPix,
1136		V1_2FEATURE, ROP, 0,
1137		{4, 100}},
1138  {"-copypixpix500", "Copy 500x500 from pixmap to pixmap", NULL,
1139		InitCopyPix, DoCopyPixPix, NullProc, EndCopyPix,
1140		V1_2FEATURE, ROP, 0,
1141		{4, 500}},
1142  {"-copyplane10", "Copy 10x10 1-bit deep plane", NULL,
1143		InitCopyPlane, DoCopyPlane, MidCopyPix, EndCopyPix,
1144		V1_2FEATURE, ROP, 0,
1145		{4, 10}},
1146  {"-copyplane100", "Copy 100x100 1-bit deep plane", NULL,
1147		InitCopyPlane, DoCopyPlane, MidCopyPix, EndCopyPix,
1148		V1_2FEATURE, ROP, 0,
1149		{4, 100}},
1150  {"-copyplane500", "Copy 500x500 1-bit deep plane", NULL,
1151		InitCopyPlane, DoCopyPlane, MidCopyPix, EndCopyPix,
1152		V1_2FEATURE, ROP, 0,
1153		{4, 500}},
1154  {"-deepcopyplane10", "Copy 10x10 n-bit deep plane", NULL,
1155		InitCopyPlane, DoCopyPlane, MidCopyPix, EndCopyPix,
1156		V1_5FEATURE, ROP, 0,
1157		{4, 10, "Deep"}},
1158  {"-deepcopyplane100", "Copy 100x100 n-bit deep plane", NULL,
1159		InitCopyPlane, DoCopyPlane, MidCopyPix, EndCopyPix,
1160		V1_5FEATURE, ROP, 0,
1161		{4, 100, "Deep"}},
1162  {"-deepcopyplane500", "Copy 500x500 n-bit deep plane", NULL,
1163		InitCopyPlane, DoCopyPlane, MidCopyPix, EndCopyPix,
1164		V1_5FEATURE, ROP, 0,
1165		{4, 500, "Deep"}},
1166  {"-putimage10", "PutImage 10x10 square", NULL,
1167		InitPutImage, DoPutImage, MidCopyPix, EndGetImage,
1168		V1_2FEATURE, ROP, 0,
1169		{4, 10}},
1170  {"-putimage100", "PutImage 100x100 square", NULL,
1171		InitPutImage, DoPutImage, MidCopyPix, EndGetImage,
1172		V1_2FEATURE, ROP, 0,
1173		{4, 100}},
1174  {"-putimage500", "PutImage 500x500 square", NULL,
1175		InitPutImage, DoPutImage, MidCopyPix, EndGetImage,
1176		V1_2FEATURE, ROP, 0,
1177		{4, 500}},
1178  {"-putimagexy10", "PutImage XY 10x10 square", NULL,
1179		InitPutImage, DoPutImage, MidCopyPix, EndGetImage,
1180		V1_4FEATURE, ROP, 0,
1181		{4, 10, "XY"}},
1182  {"-putimagexy100", "PutImage XY 100x100 square", NULL,
1183		InitPutImage, DoPutImage, MidCopyPix, EndGetImage,
1184		V1_4FEATURE, ROP, 0,
1185		{4, 100, "XY"}},
1186  {"-putimagexy500", "PutImage XY 500x500 square", NULL,
1187		InitPutImage, DoPutImage, MidCopyPix, EndGetImage,
1188		V1_4FEATURE, ROP, 0,
1189		{4, 500, "XY"}},
1190#ifdef MITSHM
1191  {"-shmput10", "ShmPutImage 10x10 square", NULL,
1192		InitShmPutImage, DoShmPutImage, MidCopyPix, EndShmPutImage,
1193		V1_2FEATURE, ROP, 0,
1194		{4, 10}},
1195  {"-shmput100", "ShmPutImage 100x100 square", NULL,
1196		InitShmPutImage, DoShmPutImage, MidCopyPix, EndShmPutImage,
1197		V1_2FEATURE, ROP, 0,
1198		{4, 100}},
1199  {"-shmput500", "ShmPutImage 500x500 square", NULL,
1200		InitShmPutImage, DoShmPutImage, MidCopyPix, EndShmPutImage,
1201		V1_2FEATURE, ROP, 0,
1202		{4, 500}},
1203  {"-shmputxy10", "ShmPutImage XY 10x10 square", NULL,
1204		InitShmPutImage, DoShmPutImage, MidCopyPix, EndShmPutImage,
1205		V1_4FEATURE, ROP, 0,
1206		{4, 10, "XY"}},
1207  {"-shmputxy100", "ShmPutImage XY 100x100 square", NULL,
1208		InitShmPutImage, DoShmPutImage, MidCopyPix, EndShmPutImage,
1209		V1_4FEATURE, ROP, 0,
1210		{4, 100, "XY"}},
1211  {"-shmputxy500", "ShmPutImage XY 500x500 square", NULL,
1212		InitShmPutImage, DoShmPutImage, MidCopyPix, EndShmPutImage,
1213		V1_4FEATURE, ROP, 0,
1214		{4, 500, "XY"}},
1215#endif
1216  {"-getimage10", "GetImage 10x10 square", NULL,
1217		InitGetImage, DoGetImage, NullProc, EndGetImage,
1218		V1_2FEATURE, PLANEMASK, 0,
1219		{4, 10}},
1220  {"-getimage100", "GetImage 100x100 square", NULL,
1221		InitGetImage, DoGetImage, NullProc, EndGetImage,
1222		V1_2FEATURE, PLANEMASK, 0,
1223		{4, 100}},
1224  {"-getimage500", "GetImage 500x500 square", NULL,
1225		InitGetImage, DoGetImage, NullProc, EndGetImage,
1226		V1_2FEATURE, PLANEMASK, 0,
1227		{4, 500}},
1228  {"-getimagexy10", "GetImage XY 10x10 square", NULL,
1229		InitGetImage, DoGetImage, NullProc, EndGetImage,
1230		V1_4FEATURE, PLANEMASK, 0,
1231		{4, 10, "XY"}},
1232  {"-getimagexy100", "GetImage XY 100x100 square", NULL,
1233		InitGetImage, DoGetImage, NullProc, EndGetImage,
1234		V1_4FEATURE, PLANEMASK, 0,
1235		{4, 100, "XY"}},
1236  {"-getimagexy500", "GetImage XY 500x500 square", NULL,
1237		InitGetImage, DoGetImage, NullProc, EndGetImage,
1238		V1_4FEATURE, PLANEMASK, 0,
1239		{4, 500, "XY"}},
1240  {"-noop",     "X protocol NoOperation", NULL,
1241		NullInitProc, DoNoOp, NullProc, NullProc,
1242		V1_2FEATURE, PLANEMASK, 0,
1243		{1}},
1244  {"-atom",     "GetAtomName", NULL,
1245		NullInitProc, DoGetAtom, NullProc, NullProc,
1246		VERSION1_2 | VERSION1_3, NONROP, 0,
1247		{1}},
1248  {"-pointer",  "QueryPointer", NULL,
1249		NullInitProc, DoQueryPointer, NullProc, NullProc,
1250		V1_4FEATURE, NONROP, 0,
1251		{1}},
1252  {"-prop",     "GetProperty", NULL,
1253		InitGetProperty, DoGetProperty, NullProc, NullProc,
1254		V1_2FEATURE, NONROP, 0,
1255		{1}},
1256  {"-gc",       "Change graphics context", NULL,
1257		InitGC, DoChangeGC, NullProc, EndGC,
1258		V1_2FEATURE, NONROP, 0,
1259		{4}},
1260  {"-create",   "Create and map subwindows", NULL,
1261		InitCreate, CreateChildren, DestroyChildren, EndCreate,
1262		V1_2FEATURE, WINDOW, 0,
1263		{0, True}},
1264  {"-ucreate",  "Create unmapped window", NULL,
1265		InitCreate, CreateChildren, DestroyChildren, EndCreate,
1266		V1_2FEATURE, WINDOW, 0,
1267		{0, False}},
1268  {"-map",      "Map window via parent", NULL,
1269		InitMap, MapParents, UnmapParentsCleanup, EndCreate,
1270		V1_2FEATURE, WINDOW, 0,
1271		{0, True}},
1272  {"-unmap",    "Unmap window via parent", NULL,
1273		InitDestroy, UnmapParents, MapParentsCleanup, EndCreate,
1274		V1_2FEATURE, WINDOW, 0,
1275		{0, True}},
1276  {"-destroy",  "Destroy window via parent", NULL,
1277		InitDestroy, DestroyParents, RenewParents, EndCreate,
1278		V1_2FEATURE, WINDOW, 0,
1279		{0, True}},
1280  {"-popup",    "Hide/expose window via popup", NULL,
1281		InitPopups, DoPopUps, NullProc, EndPopups,
1282		V1_2FEATURE, WINDOW, 0,
1283		{0, True}},
1284  {"-move",     "Move window", NULL,
1285		InitMoveWindows, DoMoveWindows, NullProc, EndMoveWindows,
1286		V1_2FEATURE, WINDOW, 0,
1287		{0, True}},
1288  {"-umove",    "Moved unmapped window", NULL,
1289		InitMoveWindows, DoMoveWindows, NullProc, EndMoveWindows,
1290		V1_2FEATURE, WINDOW, 0,
1291		{0, False}},
1292  {"-movetree", "Move window via parent", NULL,
1293		InitMoveTree, DoMoveTree, NullProc, EndMoveTree,
1294		V1_2FEATURE, WINDOW, 0,
1295		{4, True}},
1296  {"-resize",   "Resize window", NULL,
1297		InitMoveWindows, DoResizeWindows, NullProc, EndMoveWindows,
1298		V1_2FEATURE, WINDOW, 0,
1299		{4, True}},
1300  {"-uresize",  "Resize unmapped window", NULL,
1301		InitMoveWindows, DoResizeWindows, NullProc, EndMoveWindows,
1302		V1_2FEATURE, WINDOW, 0,
1303		{4, False}},
1304  {"-circulate", "Circulate window", NULL,
1305		InitCircWindows, DoCircWindows, NullProc, EndCircWindows,
1306		V1_2FEATURE, WINDOW, 0,
1307		{4, True}},
1308  {"-ucirculate", "Circulate Unmapped window", NULL,
1309		InitCircWindows, DoCircWindows, NullProc, EndCircWindows,
1310		V1_2FEATURE, WINDOW, 0,
1311		{4, False}},
1312  { NULL, NULL, NULL,
1313		NULL, NULL, NULL, NULL,
1314		0, NONROP, 0,
1315		{0, False}}
1316};
1317