1 /*
2 
3 Copyright (C) 2015-2018 Night Dive Studios, LLC.
4 
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9 
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 GNU General Public License for more details.
14 
15 You should have received a copy of the GNU General Public License
16 along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 
18 */
19 /*
20  * $Source: r:/prj/lib/src/2d/RCS/fl8ft.c $
21  * $Revision: 1.1 $
22  * $Author: kevin $
23  * $Date: 1994/08/16 13:18:21 $
24  *
25  * Gruesome function tables.
26  * flat8 canvas.
27  *
28  * This file is part of the 2d library.
29  */
30 
31 #include "bitmap.h"
32 #include "fill.h"
33 #include "fl8tf.h"
34 #include "gentf.h"
35 #include "grnull.h"
36 #include "ifcn.h"
37 
38 typedef void (*ptr_type)();
39 
40 void (*flat8_function_table[GRD_FILL_TYPES][GRD_FUNCS * REAL_BMT_TYPES])() = {
41     {/* normal fill type - from fl8nft.h */
42      /* FILL_NORM */
43      /* BMT_DEVICE */
44      (ptr_type)flat8_set_upixel, /* pixel primitve */
45      gr_null,                    /* reserved wire poly line */
46      gr_null,                    /* solid hline */
47 
48      gr_null, /* bitmap blitter */
49      gr_null, /* stencil clipped bitmap blitter */
50      gr_null, /* clut bitmap blitter */
51 
52      gr_null, /* hflipped bitmap blitter */
53      gr_null, /* clut hflipped bitmap blitter */
54 
55      gr_null, /* masked bitmap blitter */
56 
57      gr_null, /* horizontal bitmap doubler */
58      gr_null, /* vertical bitmap doubler */
59      gr_null, /* horizontal and vertical bitmap doubler */
60 
61      gr_null, /* blended horizontal bitmap doubler */
62      gr_null, /* blended vertical bitmap doubler */
63      gr_null, /* blended horizontal and vertical bitmap doubler */
64 
65      gr_null, /* Scalers */
66      gr_null, gr_null, gr_null, gr_null, gr_null,
67 
68      (ptr_type)gri_poly_init, /* solid polygon primitives */
69      gr_null,
70 
71      gr_null, /* Linear mappers */
72      gr_null, gr_null, gr_null, gr_null, gr_null,
73 
74      gr_null, /* Bilinear mappers */
75      gr_null, gr_null, gr_null, gr_null, gr_null,
76 
77      gr_null, /* Floor */
78      gr_null, gr_null, gr_null, gr_null, gr_null,
79 
80      gr_null, /* Wall2d */
81      gr_null, gr_null, gr_null, gr_null, gr_null,
82 
83      gr_null, /* Wall1d */
84      gr_null, gr_null, gr_null, gr_null, gr_null,
85 
86      gr_null, /* Perspective -hscan */
87      gr_null, gr_null, gr_null, gr_null, gr_null,
88 
89      gr_null, /* Perspective -vscan */
90      gr_null, gr_null, gr_null, gr_null, gr_null,
91 
92      /* BMT_MONO */
93      gr_null, /* solid line */
94      gr_null, /* solid wire poly line */
95      gr_null, /* gouraud hline */
96 
97      gr_null, /* bitmap blitter */
98      gr_null, /* stencil clipped bitmap blitter */
99      gr_null, /* clut bitmap blitter */
100 
101      gr_null, /* hflipped bitmap blitter */
102      gr_null, /* clut hflipped bitmap blitter */
103 
104      gr_null, /* masked bitmap blitter */
105 
106      gr_null, /* horizontal bitmap doubler */
107      gr_null, /* vertical bitmap doubler */
108      gr_null, /* horizontal and vertical bitmap doubler */
109 
110      gr_null, /* blended horizontal bitmap doubler */
111      gr_null, /* blended vertical bitmap doubler */
112      gr_null, /* blended horizontal and vertical bitmap doubler */
113 
114      gr_null, /* Scalers */
115      gr_null, gr_null, gr_null, gr_null, gr_null,
116 
117      (ptr_type)gri_spoly_init, /* gouraud polygon primitives */
118      gr_null,
119 
120      gr_null, /* Linear mappers */
121      gr_null, gr_null, gr_null, gr_null, gr_null,
122 
123      gr_null, /* Linear */
124      gr_null, gr_null, gr_null, gr_null, gr_null,
125 
126      gr_null, /* Floor */
127      gr_null, gr_null, gr_null, gr_null, gr_null,
128 
129      gr_null, /* Wall2d */
130      gr_null, gr_null, gr_null, gr_null, gr_null,
131 
132      gr_null, /* Wall1d */
133      gr_null, gr_null, gr_null, gr_null, gr_null,
134 
135      gr_null, /* Perspective -hscan */
136      gr_null, gr_null, gr_null, gr_null, gr_null,
137 
138      gr_null, /* Perspective -vscan */
139      gr_null, gr_null, gr_null, gr_null, gr_null,
140 
141      /* BMT_FLAT8 */
142      gr_null, /* gouraud line */
143      gr_null, /* gouraud wire poly line */
144      gr_null, /* rgb hline */
145 
146      (ptr_type)flat8_flat8_ubitmap,    /* bitmap blitter */
147      (ptr_type)gri_flat8_mask_bitmap,  /* stencil clipped bitmap blitter */
148      (ptr_type)gri_flat8_clut_ubitmap, /* clut bitmap blitter */
149 
150      gr_null, /* hflipped bitmap blitter */
151      gr_null, /* clut hflipped bitmap blitter */
152 
153      gr_null, /* masked bitmap blitter */
154 
155      gr_null, /* horizontal bitmap doubler */
156      gr_null, /* vertical bitmap doubler */
157      gr_null, /* horizontal and vertical bitmap doubler */
158 
159      gr_null, /* blended horizontal bitmap doubler */
160      gr_null, /* blended vertical bitmap doubler */
161      gr_null, /* blended horizontal and vertical bitmap doubler */
162 
163      (ptr_type)gri_opaque_scale_umap_init, /* Scalers */
164      (ptr_type)gri_trans_scale_umap_init, gr_null, gr_null, (ptr_type)gri_opaque_clut_scale_umap_init,
165      (ptr_type)gri_trans_clut_scale_umap_init,
166 
167      (ptr_type)gri_cpoly_init, /* RGB polygon primitives */
168      (ptr_type)gri_trans_blend_clut_lin_umap_init,
169 
170      (ptr_type)gr_not_imp, //### MLA- not supposed to be used   (ptr_type)
171      // gri_opaque_true_lin_umap_init,   /* Linear mappers
172      //*/
173      gr_null, gr_null, gr_null,
174      (ptr_type)gr_not_imp, //### MLA- not supposed to be used   (ptr_type)
175                            // gri_opaque_clut_true_lin_umap_init,
176      gr_null,
177 
178      (ptr_type)gri_opaque_lin_umap_init, /* Bilinear */
179      (ptr_type)gri_trans_lin_umap_init, (ptr_type)gri_opaque_lit_lin_umap_init, (ptr_type)gri_trans_lit_lin_umap_init,
180      (ptr_type)gri_opaque_clut_lin_umap_init, (ptr_type)gri_trans_clut_lin_umap_init,
181 
182      (ptr_type)gri_opaque_floor_umap_init, /* Floor */
183      (ptr_type)gri_trans_floor_umap_init, (ptr_type)gri_opaque_lit_floor_umap_init,
184      (ptr_type)gri_trans_lit_floor_umap_init, (ptr_type)gri_opaque_clut_floor_umap_init,
185      (ptr_type)gri_trans_clut_floor_umap_init,
186 
187      (ptr_type)gri_opaque_wall_umap_init, /* Wall2d */
188      (ptr_type)gri_trans_wall_umap_init, (ptr_type)gri_opaque_lit_wall_umap_init,
189      (ptr_type)gri_trans_lit_wall_umap_init, (ptr_type)gri_opaque_clut_wall_umap_init,
190      (ptr_type)gri_trans_clut_wall_umap_init,
191 
192      (ptr_type)gri_opaque_wall_umap_init, /* Wall1d */
193      (ptr_type)gri_trans_wall_umap_init, (ptr_type)gri_opaque_lit_wall1d_umap_init,
194      (ptr_type)gri_trans_lit_wall_umap_init, (ptr_type)gri_opaque_clut_wall1d_umap_init,
195      (ptr_type)gri_trans_clut_wall_umap_init,
196 
197      (ptr_type)gri_opaque_per_umap_hscan_init, /* Perspective -hscan */
198      (ptr_type)gri_trans_per_umap_hscan_init, (ptr_type)gri_opaque_lit_per_umap_hscan_init,
199      (ptr_type)gri_trans_lit_per_umap_hscan_init, (ptr_type)gri_opaque_clut_per_umap_hscan_init,
200      (ptr_type)gri_trans_clut_per_umap_hscan_init,
201 
202      (ptr_type)gri_opaque_per_umap_vscan_init, /* Perspective -vscan */
203      (ptr_type)gri_trans_per_umap_vscan_init, (ptr_type)gri_opaque_lit_per_umap_vscan_init,
204      (ptr_type)gri_trans_lit_per_umap_vscan_init, (ptr_type)gri_opaque_clut_per_umap_vscan_init,
205      (ptr_type)gri_trans_clut_per_umap_vscan_init,
206 
207      /* BMT_FLAT24 */
208      gr_null, /* rgb line */
209      gr_null, /* rgb wire poly line */
210      gr_null, /* solid vline */
211 
212      gr_null, /* bitmap blitter */
213      gr_null, /* stencil clipped bitmap blitter */
214      gr_null, /* clut bitmap blitter */
215 
216      gr_null, /* hflipped bitmap blitter */
217      gr_null, /* clut hflipped bitmap blitter */
218 
219      gr_null, /* masked bitmap blitter */
220 
221      gr_null, /* horizontal bitmap doubler */
222      gr_null, /* vertical bitmap doubler */
223      gr_null, /* horizontal and vertical bitmap doubler */
224 
225      gr_null, /* blended horizontal bitmap doubler */
226      gr_null, /* blended vertical bitmap doubler */
227      gr_null, /* blended horizontal and vertical bitmap doubler */
228 
229      gr_null, /* Scalers */
230      gr_null, gr_null, gr_null, gr_null, gr_null,
231 
232      (ptr_type)gri_tpoly_init, /* translucent polygon primitives */
233      gr_null,
234 
235      gr_null, /* Linear mappers */
236      gr_null, gr_null, gr_null, gr_null, gr_null,
237 
238      gr_null, /* Linear */
239      gr_null, gr_null, gr_null, gr_null, gr_null,
240 
241      gr_null, /* Floor */
242      gr_null, gr_null, gr_null, gr_null, gr_null,
243 
244      gr_null, /* Wall2d */
245      gr_null, gr_null, gr_null, gr_null, gr_null,
246 
247      gr_null, /* Wall1d */
248      gr_null, gr_null, gr_null, gr_null, gr_null,
249 
250      gr_null, /* Perspective -hscan */
251      gr_null, gr_null, gr_null, gr_null, gr_null,
252 
253      gr_null, /* Perspective -vscan */
254      gr_null, gr_null, gr_null, gr_null, gr_null,
255 
256      /* BMT_RSD8 */
257      gr_null, /* translucent line */
258      gr_null, /* translucent wire poly line */
259      gr_null, /* gouraud vline */
260 
261      (ptr_type)gri_flat8_rsd8_ubitmap, /* bitmap blitter */
262      (ptr_type)gri_flat8_rsd8_bitmap,  /* stencil clipped bitmap blitter */
263      gr_null,                          /* clut bitmap blitter */
264 
265      gr_null, /* hflipped bitmap blitter */
266      gr_null, /* clut hflipped bitmap blitter */
267 
268      gr_null, /* masked bitmap blitter */
269 
270      gr_null, /* horizontal bitmap doubler */
271      gr_null, /* vertical bitmap doubler */
272      gr_null, /* horizontal and vertical bitmap doubler */
273 
274      gr_null, /* blended horizontal bitmap doubler */
275      gr_null, /* blended vertical bitmap doubler */
276      gr_null, /* blended horizontal and vertical bitmap doubler */
277 
278      (ptr_type)rsd8_tm_init, /* Scalers */
279      (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init,
280      (ptr_type)rsd8_tm_init,
281 
282      (ptr_type)gri_stpoly_init, /* shaded translucent polygon primitives */
283      (ptr_type)rsd8_tm_init,
284 
285      (ptr_type)rsd8_tm_init, /* Linear mappers */
286      (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init,
287      (ptr_type)rsd8_tm_init,
288 
289      (ptr_type)rsd8_tm_init, /* Linear */
290      (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init,
291      (ptr_type)rsd8_tm_init,
292 
293      (ptr_type)rsd8_tm_init, /* Floor */
294      (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init,
295      (ptr_type)rsd8_tm_init,
296 
297      (ptr_type)rsd8_tm_init, /* Wall2d */
298      (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init,
299      (ptr_type)rsd8_tm_init,
300 
301      (ptr_type)rsd8_tm_init, /* Wall1d */
302      (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init,
303      (ptr_type)rsd8_tm_init,
304 
305      (ptr_type)rsd8_pm_init, /* Perspective -hscan */
306      (ptr_type)rsd8_pm_init, (ptr_type)rsd8_pm_init, (ptr_type)rsd8_pm_init, (ptr_type)rsd8_pm_init,
307      (ptr_type)rsd8_pm_init,
308 
309      (ptr_type)rsd8_pm_init, /* Perspective -vscan */
310      (ptr_type)rsd8_pm_init, (ptr_type)rsd8_pm_init, (ptr_type)rsd8_pm_init, (ptr_type)rsd8_pm_init,
311      (ptr_type)rsd8_pm_init,
312 
313      /* BMT_TLUC8 */
314      gr_null, /* shaded translucent line */
315      gr_null, /* shaded translucent wire poly line */
316      gr_null, /* rgb vline */
317 
318      (ptr_type)flat8_tluc8_ubitmap, /* bitmap blitter */
319      gr_null,                       /* stencil clipped bitmap blitter */
320      gr_null,                       /* clut bitmap blitter */
321 
322      gr_null, /* hflipped bitmap blitter */
323      gr_null, /* clut hflipped bitmap blitter */
324 
325      gr_null, /* masked bitmap blitter */
326 
327      gr_null, /* horizontal bitmap doubler */
328      gr_null, /* vertical bitmap doubler */
329      gr_null, /* horizontal and vertical bitmap doubler */
330 
331      gr_null, /* blended horizontal bitmap doubler */
332      gr_null, /* blended vertical bitmap doubler */
333      gr_null, /* blended horizontal and vertical bitmap doubler */
334 
335      (ptr_type)gri_tluc8_opaque_scale_umap_init, /* Scalers */
336      (ptr_type)gri_tluc8_trans_scale_umap_init, gr_null, gr_null, (ptr_type)gri_tluc8_opaque_clut_scale_umap_init,
337      (ptr_type)gri_tluc8_trans_clut_scale_umap_init,
338 
339      gr_null, gr_null,
340 
341      gr_null, /* Linear mappers */
342      gr_null, gr_null, gr_null, gr_null, gr_null,
343 
344      (ptr_type)gri_tluc8_opaque_lin_umap_init, /* Linear */
345      (ptr_type)gri_tluc8_trans_lin_umap_init, gr_null, gr_null, (ptr_type)gri_tluc8_opaque_clut_lin_umap_init,
346      (ptr_type)gri_tluc8_trans_clut_lin_umap_init,
347 
348      gr_null, /* Floor */
349      gr_null, gr_null, gr_null, gr_null, gr_null,
350 
351      gr_null, /* Wall2d */
352      gr_null, gr_null, gr_null, gr_null, gr_null,
353 
354      gr_null, /* Wall1d */
355      gr_null, gr_null, gr_null, gr_null, gr_null,
356 
357      gr_null, /* Perspective -hscan */
358      gr_null, gr_null, gr_null, gr_null, gr_null,
359 
360      gr_null, /* Perspective -vscan */
361      gr_null, gr_null, gr_null, gr_null, gr_null
362 
363     },
364     {/* clut fill type - from fl8cft.h */
365      /* FILL_NORM */
366      /* BMT_DEVICE */
367      (ptr_type)flat8_clut_set_upixel, /* pixel primitve */
368      gr_null,                         /* reserved wire poly line */
369      gr_null,                         /* solid hline */
370 
371      gr_null, /* bitmap blitter */
372      gr_null, /* stencil clipped bitmap blitter */
373      gr_null, /* clut bitmap blitter */
374 
375      gr_null, /* hflipped bitmap blitter */
376      gr_null, /* clut hflipped bitmap blitter */
377 
378      gr_null, /* masked bitmap blitter */
379 
380      gr_null, /* horizontal bitmap doubler */
381      gr_null, /* vertical bitmap doubler */
382      gr_null, /* horizontal and vertical bitmap doubler */
383 
384      gr_null, /* blended horizontal bitmap doubler */
385      gr_null, /* blended vertical bitmap doubler */
386      gr_null, /* blended horizontal and vertical bitmap doubler */
387 
388      gr_null, /* Scalers */
389      gr_null, gr_null, gr_null, gr_null, gr_null,
390 
391      (ptr_type)gri_clut_poly_init, /* solid polygon primitives */
392      gr_null,
393 
394      gr_null, /* Linear mappers */
395      gr_null, gr_null, gr_null, gr_null, gr_null,
396 
397      gr_null, /* Bilinear mappers */
398      gr_null, gr_null, gr_null, gr_null, gr_null,
399 
400      gr_null, /* Floor */
401      gr_null, gr_null, gr_null, gr_null, gr_null,
402 
403      gr_null, /* Wall2d */
404      gr_null, gr_null, gr_null, gr_null, gr_null,
405 
406      gr_null, /* Wall1d */
407      gr_null, gr_null, gr_null, gr_null, gr_null,
408 
409      gr_null, /* Perspective -hscan */
410      gr_null, gr_null, gr_null, gr_null, gr_null,
411 
412      gr_null, /* Perspective -vscan */
413      gr_null, gr_null, gr_null, gr_null, gr_null,
414 
415      /* BMT_MONO */
416      gr_null, /* solid line */
417      gr_null, /* solid wire poly line */
418      gr_null, /* gouraud hline */
419 
420      gr_null, /* bitmap blitter */
421      gr_null, /* stencil clipped bitmap blitter */
422      gr_null, /* clut bitmap blitter */
423 
424      gr_null, /* hflipped bitmap blitter */
425      gr_null, /* clut hflipped bitmap blitter */
426 
427      gr_null, /* masked bitmap blitter */
428 
429      gr_null, /* horizontal bitmap doubler */
430      gr_null, /* vertical bitmap doubler */
431      gr_null, /* horizontal and vertical bitmap doubler */
432 
433      gr_null, /* blended horizontal bitmap doubler */
434      gr_null, /* blended vertical bitmap doubler */
435      gr_null, /* blended horizontal and vertical bitmap doubler */
436 
437      gr_null, /* Scalers */
438      gr_null, gr_null, gr_null, gr_null, gr_null,
439 
440      (ptr_type)gri_clut_spoly_init, /* gouraud polygon primitives */
441      gr_null,
442 
443      gr_null, /* Linear mappers */
444      gr_null, gr_null, gr_null, gr_null, gr_null,
445 
446      gr_null, /* Linear */
447      gr_null, gr_null, gr_null, gr_null, gr_null,
448 
449      gr_null, /* Floor */
450      gr_null, gr_null, gr_null, gr_null, gr_null,
451 
452      gr_null, /* Wall2d */
453      gr_null, gr_null, gr_null, gr_null, gr_null,
454 
455      gr_null, /* Wall1d */
456      gr_null, gr_null, gr_null, gr_null, gr_null,
457 
458      gr_null, /* Perspective -hscan */
459      gr_null, gr_null, gr_null, gr_null, gr_null,
460 
461      gr_null, /* Perspective -vscan */
462      gr_null, gr_null, gr_null, gr_null, gr_null,
463 
464      /* BMT_FLAT8 */
465      gr_null, /* gouraud line */
466      gr_null, /* gouraud wire poly line */
467      gr_null, /* rgb hline */
468 
469      (ptr_type)gri_flat8_fill_clut_ubitmap,     /* bitmap blitter */
470      (ptr_type)gri_flat8_mask_fill_clut_bitmap, /* stencil clipped bitmap blitter */
471      (ptr_type)gri_flat8_fill_clut_ubitmap,     /* clut bitmap blitter */
472 
473      gr_null, /* hflipped bitmap blitter */
474      gr_null, /* clut hflipped bitmap blitter */
475 
476      gr_null, /* masked bitmap blitter */
477 
478      gr_null, /* horizontal bitmap doubler */
479      gr_null, /* vertical bitmap doubler */
480      gr_null, /* horizontal and vertical bitmap doubler */
481 
482      gr_null, /* blended horizontal bitmap doubler */
483      gr_null, /* blended vertical bitmap doubler */
484      gr_null, /* blended horizontal and vertical bitmap doubler */
485 
486      (ptr_type)gri_opaque_clut_scale_umap_init, /* Scalers */
487      (ptr_type)gri_trans_clut_scale_umap_init, (ptr_type)gri_opaque_clut_scale_umap_init,
488      (ptr_type)gri_trans_clut_scale_umap_init, (ptr_type)gri_opaque_clut_scale_umap_init,
489      (ptr_type)gri_trans_clut_scale_umap_init,
490 
491      (ptr_type)gri_clut_cpoly_init, /* RGB polygon primitives */
492      gr_null,
493 
494      (ptr_type)gr_not_imp,
495      //### MLA- not supposed to be used
496      // gri_opaque_clut_true_lin_umap_init,   /* Linear mappers */
497      gr_null, gr_null, gr_null, (ptr_type)gr_not_imp,
498      //### MLA- not supposed to be used
499      // gri_opaque_clut_true_lin_umap_init,
500      gr_null,
501 
502      (ptr_type)gri_opaque_clut_lin_umap_init, /* Bilinear */
503      (ptr_type)gri_trans_clut_lin_umap_init, (ptr_type)gri_opaque_clut_lin_umap_init,
504      (ptr_type)gri_trans_clut_lin_umap_init, (ptr_type)gri_opaque_clut_lin_umap_init,
505      (ptr_type)gri_trans_clut_lin_umap_init,
506 
507      (ptr_type)gri_opaque_clut_floor_umap_init, /* Floor */
508      (ptr_type)gri_trans_clut_floor_umap_init, (ptr_type)gri_opaque_clut_floor_umap_init,
509      (ptr_type)gri_trans_clut_floor_umap_init, (ptr_type)gri_opaque_clut_floor_umap_init,
510      (ptr_type)gri_trans_clut_floor_umap_init,
511 
512      (ptr_type)gri_opaque_clut_wall_umap_init, /* Wall2d */
513      (ptr_type)gri_trans_clut_wall_umap_init, (ptr_type)gri_opaque_clut_wall_umap_init,
514      (ptr_type)gri_trans_clut_wall_umap_init, (ptr_type)gri_opaque_clut_wall_umap_init,
515      (ptr_type)gri_trans_clut_wall_umap_init,
516 
517      (ptr_type)gri_opaque_clut_wall1d_umap_init, /* Wall1d */
518      (ptr_type)gri_trans_clut_wall_umap_init, (ptr_type)gri_opaque_clut_wall1d_umap_init,
519      (ptr_type)gri_trans_clut_wall_umap_init, (ptr_type)gri_opaque_clut_wall1d_umap_init,
520      (ptr_type)gri_trans_clut_wall_umap_init,
521 
522      (ptr_type)gri_opaque_clut_per_umap_hscan_init, /* Perspective -hscan */
523      (ptr_type)gri_trans_clut_per_umap_hscan_init, (ptr_type)gri_opaque_clut_per_umap_hscan_init,
524      (ptr_type)gri_trans_clut_per_umap_hscan_init, (ptr_type)gri_opaque_clut_per_umap_hscan_init,
525      (ptr_type)gri_trans_clut_per_umap_hscan_init,
526 
527      (ptr_type)gri_opaque_clut_per_umap_vscan_init, /* Perspective -vscan */
528      (ptr_type)gri_trans_clut_per_umap_vscan_init, (ptr_type)gri_opaque_clut_per_umap_vscan_init,
529      (ptr_type)gri_trans_clut_per_umap_vscan_init, (ptr_type)gri_opaque_clut_per_umap_vscan_init,
530      (ptr_type)gri_trans_clut_per_umap_vscan_init,
531 
532      /* BMT_FLAT24 */
533      gr_null, /* rgb line */
534      gr_null, /* rgb wire poly line */
535      gr_null, /* solid vline */
536 
537      gr_null, /* bitmap bclutter */
538      gr_null, /* stencil clipped bitmap bclutter */
539      gr_null, /* clut bitmap bclutter */
540 
541      gr_null, /* hflipped bitmap bclutter */
542      gr_null, /* clut hflipped bitmap bclutter */
543 
544      gr_null, /* masked bitmap bclutter */
545 
546      gr_null, /* horizontal bitmap doubler */
547      gr_null, /* vertical bitmap doubler */
548      gr_null, /* horizontal and vertical bitmap doubler */
549 
550      gr_null, /* blended horizontal bitmap doubler */
551      gr_null, /* blended vertical bitmap doubler */
552      gr_null, /* blended horizontal and vertical bitmap doubler */
553 
554      gr_null, /* Scalers */
555      gr_null, gr_null, gr_null, gr_null, gr_null,
556 
557      (ptr_type)gri_clut_tpoly_init, /* translucent polygon primitives */
558      gr_null,
559 
560      gr_null, /* Linear mappers */
561      gr_null, gr_null, gr_null, gr_null, gr_null,
562 
563      gr_null, /* Linear */
564      gr_null, gr_null, gr_null, gr_null, gr_null,
565 
566      gr_null, /* Floor */
567      gr_null, gr_null, gr_null, gr_null, gr_null,
568 
569      gr_null, /* Wall2d */
570      gr_null, gr_null, gr_null, gr_null, gr_null,
571 
572      gr_null, /* Wall1d */
573      gr_null, gr_null, gr_null, gr_null, gr_null,
574 
575      gr_null, /* Perspective -hscan */
576      gr_null, gr_null, gr_null, gr_null, gr_null,
577 
578      gr_null, /* Perspective -vscan */
579      gr_null, gr_null, gr_null, gr_null, gr_null,
580 
581      /* BMT_RSD8 */
582      gr_null, /* translucent line */
583      gr_null, /* translucent wire poly line */
584      gr_null, /* gouraud vline */
585 
586      (ptr_type)gri_gen_rsd8_ubitmap, /* bitmap blitter */
587      (ptr_type)gri_gen_rsd8_bitmap,  /* stencil clipped bitmap blitter */
588      gr_null,                        /* clut bitmap bclutter */
589 
590      gr_null, /* hflipped bitmap bclutter */
591      gr_null, /* clut hflipped bitmap bclutter */
592 
593      gr_null, /* masked bitmap bclutter */
594 
595      gr_null, /* horizontal bitmap doubler */
596      gr_null, /* vertical bitmap doubler */
597      gr_null, /* horizontal and vertical bitmap doubler */
598 
599      gr_null, /* blended horizontal bitmap doubler */
600      gr_null, /* blended vertical bitmap doubler */
601      gr_null, /* blended horizontal and vertical bitmap doubler */
602 
603      (ptr_type)rsd8_tm_init, /* Scalers */
604      (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init,
605      (ptr_type)rsd8_tm_init,
606 
607      (ptr_type)gri_clut_stpoly_init, /* shaded translucent polygon primitives */
608      gr_null,
609 
610      (ptr_type)rsd8_tm_init, /* Linear mappers */
611      (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init,
612      (ptr_type)rsd8_tm_init,
613 
614      (ptr_type)rsd8_tm_init, /* Linear */
615      (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init,
616      (ptr_type)rsd8_tm_init,
617 
618      (ptr_type)rsd8_tm_init, /* Floor */
619      (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init,
620      (ptr_type)rsd8_tm_init,
621 
622      (ptr_type)rsd8_tm_init, /* Wall2d */
623      (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init,
624      (ptr_type)rsd8_tm_init,
625 
626      (ptr_type)rsd8_tm_init, /* Wall1d */
627      (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init,
628      (ptr_type)rsd8_tm_init,
629 
630      (ptr_type)rsd8_pm_init, /* Perspective -hscan */
631      (ptr_type)rsd8_pm_init, (ptr_type)rsd8_pm_init, (ptr_type)rsd8_pm_init, (ptr_type)rsd8_pm_init,
632      (ptr_type)rsd8_pm_init,
633 
634      (ptr_type)rsd8_pm_init, /* Perspective -vscan */
635      (ptr_type)rsd8_pm_init, (ptr_type)rsd8_pm_init, (ptr_type)rsd8_pm_init, (ptr_type)rsd8_pm_init,
636      (ptr_type)rsd8_pm_init,
637 
638      /* BMT_TLUC8 */
639      gr_null, /* shaded translucent line */
640      gr_null, /* shaded translucent wire poly line */
641      gr_null, /* rgb vline */
642 
643      gr_null, /* bitmap bclutter */
644      gr_null, /* stencil clipped bitmap bclutter */
645      gr_null, /* clut bitmap bclutter */
646 
647      gr_null, /* hflipped bitmap bclutter */
648      gr_null, /* clut hflipped bitmap bclutter */
649 
650      gr_null, /* masked bitmap bclutter */
651 
652      gr_null, /* horizontal bitmap doubler */
653      gr_null, /* vertical bitmap doubler */
654      gr_null, /* horizontal and vertical bitmap doubler */
655 
656      gr_null, /* blended horizontal bitmap doubler */
657      gr_null, /* blended vertical bitmap doubler */
658      gr_null, /* blended horizontal and vertical bitmap doubler */
659 
660      (ptr_type)gri_tluc8_opaque_clut_scale_umap_init, /* Scalers */
661      (ptr_type)gri_tluc8_trans_clut_scale_umap_init, (ptr_type)gri_tluc8_opaque_clut_scale_umap_init,
662      (ptr_type)gri_tluc8_trans_clut_scale_umap_init, (ptr_type)gri_tluc8_opaque_clut_scale_umap_init,
663      (ptr_type)gri_tluc8_trans_clut_scale_umap_init,
664 
665      gr_null, gr_null,
666 
667      gr_null, /* Linear mappers */
668      gr_null, gr_null, gr_null, gr_null, gr_null,
669 
670      (ptr_type)gri_tluc8_opaque_clut_lin_umap_init, /* Linear */
671      (ptr_type)gri_tluc8_trans_clut_lin_umap_init, (ptr_type)gri_tluc8_opaque_clut_lin_umap_init,
672      (ptr_type)gri_tluc8_trans_clut_lin_umap_init, (ptr_type)gri_tluc8_opaque_clut_lin_umap_init,
673      (ptr_type)gri_tluc8_trans_clut_lin_umap_init,
674 
675      gr_null, /* Floor */
676      gr_null, gr_null, gr_null, gr_null, gr_null,
677 
678      gr_null, /* Wall2d */
679      gr_null, gr_null, gr_null, gr_null, gr_null,
680 
681      gr_null, /* Wall1d */
682      gr_null, gr_null, gr_null, gr_null, gr_null,
683 
684      gr_null, /* Perspective -hscan */
685      gr_null, gr_null, gr_null, gr_null, gr_null,
686 
687      gr_null, /* Perspective -vscan */
688      gr_null, gr_null, gr_null, gr_null, gr_null
689 
690     },
691     {/* xor fill type - from fl8xft.h */
692      /* FILL_NORM */
693      /* BMT_DEVICE */
694      (ptr_type)flat8_xor_set_upixel, /* pixel primitve */
695      gr_null,                        /* reserved wire poly line */
696      gr_null,                        /* solid hline */
697 
698      gr_null, /* bitmap blitter */
699      gr_null, /* stencil clipped bitmap blitter */
700      gr_null, /* clut bitmap blitter */
701 
702      gr_null, /* hflipped bitmap blitter */
703      gr_null, /* clut hflipped bitmap blitter */
704 
705      gr_null, /* masked bitmap blitter */
706 
707      gr_null, /* horizontal bitmap doubler */
708      gr_null, /* vertical bitmap doubler */
709      gr_null, /* horizontal and vertical bitmap doubler */
710 
711      gr_null, /* blended horizontal bitmap doubler */
712      gr_null, /* blended vertical bitmap doubler */
713      gr_null, /* blended horizontal and vertical bitmap doubler */
714 
715      gr_null, /* Scalers */
716      gr_null, gr_null, gr_null, gr_null, gr_null,
717 
718      (ptr_type)gri_poly_init, /* solid polygon primitives */
719      gr_null,
720 
721      gr_null, /* Linear mappers */
722      gr_null, gr_null, gr_null, gr_null, gr_null,
723 
724      gr_null, /* Bilinear mappers */
725      gr_null, gr_null, gr_null, gr_null, gr_null,
726 
727      gr_null, /* Floor */
728      gr_null, gr_null, gr_null, gr_null, gr_null,
729 
730      gr_null, /* Wall2d */
731      gr_null, gr_null, gr_null, gr_null, gr_null,
732 
733      gr_null, /* Wall1d */
734      gr_null, gr_null, gr_null, gr_null, gr_null,
735 
736      gr_null, /* Perspective -hscan */
737      gr_null, gr_null, gr_null, gr_null, gr_null,
738 
739      gr_null, /* Perspective -vscan */
740      gr_null, gr_null, gr_null, gr_null, gr_null,
741 
742      /* BMT_MONO */
743      gr_null, /* solid line */
744      gr_null, /* solid wire poly line */
745      gr_null, /* gouraud hline */
746 
747      gr_null, /* bitmap blitter */
748      gr_null, /* stencil clipped bitmap blitter */
749      gr_null, /* clut bitmap blitter */
750 
751      gr_null, /* hflipped bitmap blitter */
752      gr_null, /* clut hflipped bitmap blitter */
753 
754      gr_null, /* masked bitmap blitter */
755 
756      gr_null, /* horizontal bitmap doubler */
757      gr_null, /* vertical bitmap doubler */
758      gr_null, /* horizontal and vertical bitmap doubler */
759 
760      gr_null, /* blended horizontal bitmap doubler */
761      gr_null, /* blended vertical bitmap doubler */
762      gr_null, /* blended horizontal and vertical bitmap doubler */
763 
764      gr_null, /* Scalers */
765      gr_null, gr_null, gr_null, gr_null, gr_null,
766 
767      (ptr_type)gri_spoly_init, /* gouraud polygon primitives */
768      gr_null,
769 
770      gr_null, /* Linear mappers */
771      gr_null, gr_null, gr_null, gr_null, gr_null,
772 
773      gr_null, /* Linear */
774      gr_null, gr_null, gr_null, gr_null, gr_null,
775 
776      gr_null, /* Floor */
777      gr_null, gr_null, gr_null, gr_null, gr_null,
778 
779      gr_null, /* Wall2d */
780      gr_null, gr_null, gr_null, gr_null, gr_null,
781 
782      gr_null, /* Wall1d */
783      gr_null, gr_null, gr_null, gr_null, gr_null,
784 
785      gr_null, /* Perspective -hscan */
786      gr_null, gr_null, gr_null, gr_null, gr_null,
787 
788      gr_null, /* Perspective -vscan */
789      gr_null, gr_null, gr_null, gr_null, gr_null,
790 
791      /* BMT_FLAT8 */
792      gr_null, /* gouraud line */
793      gr_null, /* gouraud wire poly line */
794      gr_null, /* rgb hline */
795 
796      gr_null, /* bitmap blitter */
797      gr_null, /* stencil clipped bitmap blitter */
798      gr_null, /* clut bitmap blitter */
799 
800      gr_null, /* hflipped bitmap blitter */
801      gr_null, /* clut hflipped bitmap blitter */
802 
803      gr_null, /* masked bitmap blitter */
804 
805      gr_null, /* horizontal bitmap doubler */
806      gr_null, /* vertical bitmap doubler */
807      gr_null, /* horizontal and vertical bitmap doubler */
808 
809      gr_null, /* blended horizontal bitmap doubler */
810      gr_null, /* blended vertical bitmap doubler */
811      gr_null, /* blended horizontal and vertical bitmap doubler */
812 
813      (ptr_type)gri_opaque_scale_umap_init, /* Scalers */
814      (ptr_type)gri_trans_scale_umap_init, gr_null, gr_null, (ptr_type)gri_opaque_clut_scale_umap_init,
815      (ptr_type)gri_trans_clut_scale_umap_init,
816 
817      (ptr_type)gri_cpoly_init, /* RGB polygon primitives */
818      gr_null,
819 
820      gr_null, /* Linear mappers */
821      gr_null, gr_null, gr_null, gr_null, gr_null,
822 
823      (ptr_type)gri_opaque_lin_umap_init, /* Linear */
824      (ptr_type)gri_trans_lin_umap_init, (ptr_type)gri_opaque_lit_lin_umap_init, (ptr_type)gri_trans_lit_lin_umap_init,
825      (ptr_type)gri_opaque_clut_lin_umap_init, (ptr_type)gri_trans_clut_lin_umap_init,
826 
827      (ptr_type)gri_opaque_floor_umap_init, /* Floor */
828      (ptr_type)gri_trans_floor_umap_init, (ptr_type)gri_opaque_lit_floor_umap_init,
829      (ptr_type)gri_trans_lit_floor_umap_init, (ptr_type)gri_opaque_clut_floor_umap_init,
830      (ptr_type)gri_trans_clut_floor_umap_init,
831 
832      (ptr_type)gri_opaque_wall_umap_init, /* Wall2d */
833      (ptr_type)gri_trans_wall_umap_init, (ptr_type)gri_opaque_lit_wall_umap_init,
834      (ptr_type)gri_trans_lit_wall_umap_init, (ptr_type)gri_opaque_clut_wall_umap_init,
835      (ptr_type)gri_trans_clut_wall_umap_init,
836 
837      (ptr_type)gri_opaque_wall_umap_init, /* Wall1d */
838      (ptr_type)gri_trans_wall_umap_init, (ptr_type)gri_opaque_lit_wall_umap_init,
839      (ptr_type)gri_trans_lit_wall_umap_init, (ptr_type)gri_opaque_clut_wall_umap_init,
840      (ptr_type)gri_trans_clut_wall_umap_init,
841 
842      (ptr_type)gri_opaque_per_umap_hscan_init, /* Perspective -hscan */
843      (ptr_type)gri_trans_per_umap_hscan_init, (ptr_type)gri_opaque_lit_per_umap_hscan_init,
844      (ptr_type)gri_trans_lit_per_umap_hscan_init, (ptr_type)gri_opaque_clut_per_umap_hscan_init,
845      (ptr_type)gri_trans_clut_per_umap_hscan_init,
846 
847      (ptr_type)gri_opaque_per_umap_vscan_init, /* Perspective -vscan */
848      (ptr_type)gri_trans_per_umap_vscan_init, (ptr_type)gri_opaque_lit_per_umap_vscan_init,
849      (ptr_type)gri_trans_lit_per_umap_vscan_init, (ptr_type)gri_opaque_clut_per_umap_vscan_init,
850      (ptr_type)gri_trans_clut_per_umap_vscan_init,
851 
852      /* BMT_FLAT24 */
853      gr_null, /* rgb line */
854      gr_null, /* rgb wire poly line */
855      gr_null, /* solid vline */
856 
857      gr_null, /* bitmap blitter */
858      gr_null, /* stencil clipped bitmap blitter */
859      gr_null, /* clut bitmap blitter */
860 
861      gr_null, /* hflipped bitmap blitter */
862      gr_null, /* clut hflipped bitmap blitter */
863 
864      gr_null, /* masked bitmap blitter */
865 
866      gr_null, /* horizontal bitmap doubler */
867      gr_null, /* vertical bitmap doubler */
868      gr_null, /* horizontal and vertical bitmap doubler */
869 
870      gr_null, /* blended horizontal bitmap doubler */
871      gr_null, /* blended vertical bitmap doubler */
872      gr_null, /* blended horizontal and vertical bitmap doubler */
873 
874      gr_null, /* Scalers */
875      gr_null, gr_null, gr_null, gr_null, gr_null,
876 
877      (ptr_type)gri_tpoly_init, /* translucent polygon primitives */
878      gr_null,
879 
880      gr_null, /* Linear mappers */
881      gr_null, gr_null, gr_null, gr_null, gr_null,
882 
883      gr_null, /* Linear */
884      gr_null, gr_null, gr_null, gr_null, gr_null,
885 
886      gr_null, /* Floor */
887      gr_null, gr_null, gr_null, gr_null, gr_null,
888 
889      gr_null, /* Wall2d */
890      gr_null, gr_null, gr_null, gr_null, gr_null,
891 
892      gr_null, /* Wall1d */
893      gr_null, gr_null, gr_null, gr_null, gr_null,
894 
895      gr_null, /* Perspective -hscan */
896      gr_null, gr_null, gr_null, gr_null, gr_null,
897 
898      gr_null, /* Perspective -vscan */
899      gr_null, gr_null, gr_null, gr_null, gr_null,
900 
901      /* BMT_RSD8 */
902      gr_null, /* translucent line */
903      gr_null, /* translucent wire poly line */
904      gr_null, /* gouraud vline */
905 
906      (ptr_type)gri_gen_rsd8_ubitmap, /* bitmap blitter */
907      (ptr_type)gri_gen_rsd8_bitmap,  /* stencil clipped bitmap blitter */
908      gr_null,                        /* clut bitmap blitter */
909 
910      gr_null, /* hflipped bitmap blitter */
911      gr_null, /* clut hflipped bitmap blitter */
912 
913      gr_null, /* masked bitmap blitter */
914 
915      gr_null, /* horizontal bitmap doubler */
916      gr_null, /* vertical bitmap doubler */
917      gr_null, /* horizontal and vertical bitmap doubler */
918 
919      gr_null, /* blended horizontal bitmap doubler */
920      gr_null, /* blended vertical bitmap doubler */
921      gr_null, /* blended horizontal and vertical bitmap doubler */
922 
923      (ptr_type)rsd8_tm_init, /* Scalers */
924      (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init,
925      (ptr_type)rsd8_tm_init,
926 
927      (ptr_type)gri_stpoly_init, /* shaded translucent polygon primitives */
928      gr_null,
929 
930      (ptr_type)rsd8_tm_init, /* Linear mappers */
931      (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init,
932      (ptr_type)rsd8_tm_init,
933 
934      (ptr_type)rsd8_tm_init, /* Linear */
935      (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init,
936      (ptr_type)rsd8_tm_init,
937 
938      (ptr_type)rsd8_tm_init, /* Floor */
939      (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init,
940      (ptr_type)rsd8_tm_init,
941 
942      (ptr_type)rsd8_tm_init, /* Wall2d */
943      (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init,
944      (ptr_type)rsd8_tm_init,
945 
946      (ptr_type)rsd8_tm_init, /* Wall1d */
947      (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init,
948      (ptr_type)rsd8_tm_init,
949 
950      (ptr_type)rsd8_pm_init, /* Perspective -hscan */
951      (ptr_type)rsd8_pm_init, (ptr_type)rsd8_pm_init, (ptr_type)rsd8_pm_init, (ptr_type)rsd8_pm_init,
952      (ptr_type)rsd8_pm_init,
953 
954      (ptr_type)rsd8_pm_init, /* Perspective -vscan */
955      (ptr_type)rsd8_pm_init, (ptr_type)rsd8_pm_init, (ptr_type)rsd8_pm_init, (ptr_type)rsd8_pm_init,
956      (ptr_type)rsd8_pm_init,
957 
958      /* BMT_TLUC8 */
959      gr_null, /* shaded translucent line */
960      gr_null, /* shaded translucent wire poly line */
961      gr_null, /* rgb vline */
962 
963      gr_null, /* bitmap blitter */
964      gr_null, /* stencil clipped bitmap blitter */
965      gr_null, /* clut bitmap blitter */
966 
967      gr_null, /* hflipped bitmap blitter */
968      gr_null, /* clut hflipped bitmap blitter */
969 
970      gr_null, /* masked bitmap blitter */
971 
972      gr_null, /* horizontal bitmap doubler */
973      gr_null, /* vertical bitmap doubler */
974      gr_null, /* horizontal and vertical bitmap doubler */
975 
976      gr_null, /* blended horizontal bitmap doubler */
977      gr_null, /* blended vertical bitmap doubler */
978      gr_null, /* blended horizontal and vertical bitmap doubler */
979 
980      (ptr_type)gri_tluc8_opaque_scale_umap_init, /* Scalers */
981      (ptr_type)gri_tluc8_trans_scale_umap_init, gr_null, gr_null, (ptr_type)gri_tluc8_opaque_clut_scale_umap_init,
982      (ptr_type)gri_tluc8_trans_clut_scale_umap_init,
983 
984      gr_null, gr_null,
985 
986      gr_null, /* Linear mappers */
987      gr_null, gr_null, gr_null, gr_null, gr_null,
988 
989      (ptr_type)gri_tluc8_opaque_lin_umap_init, /* Linear */
990      (ptr_type)gri_tluc8_trans_lin_umap_init, gr_null, gr_null, (ptr_type)gri_tluc8_opaque_clut_lin_umap_init,
991      (ptr_type)gri_tluc8_trans_clut_lin_umap_init,
992 
993      gr_null, /* Floor */
994      gr_null, gr_null, gr_null, gr_null, gr_null,
995 
996      gr_null, /* Wall2d */
997      gr_null, gr_null, gr_null, gr_null, gr_null,
998 
999      gr_null, /* Wall1d */
1000      gr_null, gr_null, gr_null, gr_null, gr_null,
1001 
1002      gr_null, /* Perspective -hscan */
1003      gr_null, gr_null, gr_null, gr_null, gr_null,
1004 
1005      gr_null, /* Perspective -vscan */
1006      gr_null, gr_null, gr_null, gr_null, gr_null},
1007     {/* blend fill type - from fl8bft.h */
1008      /* FILL_NORM */
1009      /* BMT_DEVICE */
1010      (ptr_type)flat8_blend_set_upixel, /* pixel primitve */
1011      gr_null,                          /* reserved wire poly line */
1012      gr_null,                          /* solid hline */
1013 
1014      gr_null, /* bitmap blitter */
1015      gr_null, /* stencil clipped bitmap blitter */
1016      gr_null, /* clut bitmap blitter */
1017 
1018      gr_null, /* hflipped bitmap blitter */
1019      gr_null, /* clut hflipped bitmap blitter */
1020 
1021      gr_null, /* masked bitmap blitter */
1022 
1023      gr_null, /* horizontal bitmap doubler */
1024      gr_null, /* vertical bitmap doubler */
1025      gr_null, /* horizontal and vertical bitmap doubler */
1026 
1027      gr_null, /* blended horizontal bitmap doubler */
1028      gr_null, /* blended vertical bitmap doubler */
1029      gr_null, /* blended horizontal and vertical bitmap doubler */
1030 
1031      gr_null, /* Scalers */
1032      gr_null, gr_null, gr_null, gr_null, gr_null,
1033 
1034      (ptr_type)gri_poly_init, /* solid polygon primitives */
1035      gr_null,
1036 
1037      gr_null, /* Linear mappers */
1038      gr_null, gr_null, gr_null, gr_null, gr_null,
1039 
1040      gr_null, /* Bilinear mappers */
1041      gr_null, gr_null, gr_null, gr_null, gr_null,
1042 
1043      gr_null, /* Floor */
1044      gr_null, gr_null, gr_null, gr_null, gr_null,
1045 
1046      gr_null, /* Wall2d */
1047      gr_null, gr_null, gr_null, gr_null, gr_null,
1048 
1049      gr_null, /* Wall1d */
1050      gr_null, gr_null, gr_null, gr_null, gr_null,
1051 
1052      gr_null, /* Perspective -hscan */
1053      gr_null, gr_null, gr_null, gr_null, gr_null,
1054 
1055      gr_null, /* Perspective -vscan */
1056      gr_null, gr_null, gr_null, gr_null, gr_null,
1057 
1058      /* BMT_MONO */
1059      gr_null, /* solid line */
1060      gr_null, /* solid wire poly line */
1061      gr_null, /* gouraud hline */
1062 
1063      gr_null, /* bitmap blitter */
1064      gr_null, /* stencil clipped bitmap blitter */
1065      gr_null, /* clut bitmap blitter */
1066 
1067      gr_null, /* hflipped bitmap blitter */
1068      gr_null, /* clut hflipped bitmap blitter */
1069 
1070      gr_null, /* masked bitmap blitter */
1071 
1072      gr_null, /* horizontal bitmap doubler */
1073      gr_null, /* vertical bitmap doubler */
1074      gr_null, /* horizontal and vertical bitmap doubler */
1075 
1076      gr_null, /* blended horizontal bitmap doubler */
1077      gr_null, /* blended vertical bitmap doubler */
1078      gr_null, /* blended horizontal and vertical bitmap doubler */
1079 
1080      gr_null, /* Scalers */
1081      gr_null, gr_null, gr_null, gr_null, gr_null,
1082 
1083      (ptr_type)gri_spoly_init, /* gouraud polygon primitives */
1084      gr_null,
1085 
1086      gr_null, /* Linear mappers */
1087      gr_null, gr_null, gr_null, gr_null, gr_null,
1088 
1089      gr_null, /* Linear */
1090      gr_null, gr_null, gr_null, gr_null, gr_null,
1091 
1092      gr_null, /* Floor */
1093      gr_null, gr_null, gr_null, gr_null, gr_null,
1094 
1095      gr_null, /* Wall2d */
1096      gr_null, gr_null, gr_null, gr_null, gr_null,
1097 
1098      gr_null, /* Wall1d */
1099      gr_null, gr_null, gr_null, gr_null, gr_null,
1100 
1101      gr_null, /* Perspective -hscan */
1102      gr_null, gr_null, gr_null, gr_null, gr_null,
1103 
1104      gr_null, /* Perspective -vscan */
1105      gr_null, gr_null, gr_null, gr_null, gr_null,
1106 
1107      /* BMT_FLAT8 */
1108      gr_null, /* gouraud line */
1109      gr_null, /* gouraud wire poly line */
1110      gr_null, /* rgb hline */
1111 
1112      (ptr_type)flat8_flat8_ubitmap,    /* bitmap blitter */
1113      (ptr_type)gri_flat8_mask_bitmap,  /* stencil clipped bitmap blitter */
1114      (ptr_type)gri_flat8_clut_ubitmap, /* clut bitmap blitter */
1115 
1116      gr_null, /* hflipped bitmap blitter */
1117      gr_null, /* clut hflipped bitmap blitter */
1118 
1119      gr_null, /* masked bitmap blitter */
1120 
1121      gr_null, /* horizontal bitmap doubler */
1122      gr_null, /* vertical bitmap doubler */
1123      gr_null, /* horizontal and vertical bitmap doubler */
1124 
1125      gr_null, /* blended horizontal bitmap doubler */
1126      gr_null, /* blended vertical bitmap doubler */
1127      gr_null, /* blended horizontal and vertical bitmap doubler */
1128 
1129      (ptr_type)gri_opaque_scale_umap_init, /* Scalers */
1130      (ptr_type)gri_trans_scale_umap_init, gr_null, gr_null, (ptr_type)gri_opaque_clut_scale_umap_init,
1131      (ptr_type)gri_trans_clut_scale_umap_init,
1132 
1133      (ptr_type)gri_cpoly_init, /* RGB polygon primitives */
1134      gr_null,
1135 
1136      gr_null, /* Linear mappers */
1137      gr_null, gr_null, gr_null, gr_null, gr_null,
1138 
1139      (ptr_type)gri_opaque_lin_umap_init, /* Linear */
1140      (ptr_type)gri_trans_lin_umap_init, (ptr_type)gri_opaque_lit_lin_umap_init, (ptr_type)gri_trans_lit_lin_umap_init,
1141      (ptr_type)gri_opaque_clut_lin_umap_init, (ptr_type)gri_trans_clut_lin_umap_init,
1142 
1143      (ptr_type)gri_opaque_floor_umap_init, /* Floor */
1144      (ptr_type)gri_trans_floor_umap_init, (ptr_type)gri_opaque_lit_floor_umap_init,
1145      (ptr_type)gri_trans_lit_floor_umap_init, (ptr_type)gri_opaque_clut_floor_umap_init,
1146      (ptr_type)gri_trans_clut_floor_umap_init,
1147 
1148      (ptr_type)gri_opaque_wall_umap_init, /* Wall2d */
1149      (ptr_type)gri_trans_wall_umap_init, (ptr_type)gri_opaque_lit_wall_umap_init,
1150      (ptr_type)gri_trans_lit_wall_umap_init, (ptr_type)gri_opaque_clut_wall_umap_init,
1151      (ptr_type)gri_trans_clut_wall_umap_init,
1152 
1153      (ptr_type)gri_opaque_wall_umap_init, /* Wall1d */
1154      (ptr_type)gri_trans_wall_umap_init, (ptr_type)gri_opaque_lit_wall_umap_init,
1155      (ptr_type)gri_trans_lit_wall_umap_init, (ptr_type)gri_opaque_clut_wall_umap_init,
1156      (ptr_type)gri_trans_clut_wall_umap_init,
1157 
1158      (ptr_type)gri_opaque_per_umap_hscan_init, /* Perspective -hscan */
1159      (ptr_type)gri_trans_per_umap_hscan_init, (ptr_type)gri_opaque_lit_per_umap_hscan_init,
1160      (ptr_type)gri_trans_lit_per_umap_hscan_init, (ptr_type)gri_opaque_clut_per_umap_hscan_init,
1161      (ptr_type)gri_trans_clut_per_umap_hscan_init,
1162 
1163      (ptr_type)gri_opaque_per_umap_vscan_init, /* Perspective -vscan */
1164      (ptr_type)gri_trans_per_umap_vscan_init, (ptr_type)gri_opaque_lit_per_umap_vscan_init,
1165      (ptr_type)gri_trans_lit_per_umap_vscan_init, (ptr_type)gri_opaque_clut_per_umap_vscan_init,
1166      (ptr_type)gri_trans_clut_per_umap_vscan_init,
1167 
1168      /* BMT_FLAT24 */
1169      gr_null, /* rgb line */
1170      gr_null, /* rgb wire poly line */
1171      gr_null, /* solid vline */
1172 
1173      gr_null, /* bitmap blitter */
1174      gr_null, /* stencil clipped bitmap blitter */
1175      gr_null, /* clut bitmap blitter */
1176 
1177      gr_null, /* hflipped bitmap blitter */
1178      gr_null, /* clut hflipped bitmap blitter */
1179 
1180      gr_null, /* masked bitmap blitter */
1181 
1182      gr_null, /* horizontal bitmap doubler */
1183      gr_null, /* vertical bitmap doubler */
1184      gr_null, /* horizontal and vertical bitmap doubler */
1185 
1186      gr_null, /* blended horizontal bitmap doubler */
1187      gr_null, /* blended vertical bitmap doubler */
1188      gr_null, /* blended horizontal and vertical bitmap doubler */
1189 
1190      gr_null, /* Scalers */
1191      gr_null, gr_null, gr_null, gr_null, gr_null,
1192 
1193      (ptr_type)gri_tpoly_init, /* translucent polygon primitives */
1194      gr_null,
1195 
1196      gr_null, /* Linear mappers */
1197      gr_null, gr_null, gr_null, gr_null, gr_null,
1198 
1199      gr_null, /* Linear */
1200      gr_null, gr_null, gr_null, gr_null, gr_null,
1201 
1202      gr_null, /* Floor */
1203      gr_null, gr_null, gr_null, gr_null, gr_null,
1204 
1205      gr_null, /* Wall2d */
1206      gr_null, gr_null, gr_null, gr_null, gr_null,
1207 
1208      gr_null, /* Wall1d */
1209      gr_null, gr_null, gr_null, gr_null, gr_null,
1210 
1211      gr_null, /* Perspective -hscan */
1212      gr_null, gr_null, gr_null, gr_null, gr_null,
1213 
1214      gr_null, /* Perspective -vscan */
1215      gr_null, gr_null, gr_null, gr_null, gr_null,
1216 
1217      /* BMT_RSD8 */
1218      gr_null, /* translucent line */
1219      gr_null, /* translucent wire poly line */
1220      gr_null, /* gouraud vline */
1221 
1222      (ptr_type)gri_gen_rsd8_ubitmap, /* bitmap blitter */
1223      (ptr_type)gri_gen_rsd8_bitmap,  /* stencil clipped bitmap blitter */
1224      gr_null,                        /* clut bitmap blitter */
1225 
1226      gr_null, /* hflipped bitmap blitter */
1227      gr_null, /* clut hflipped bitmap blitter */
1228 
1229      gr_null, /* masked bitmap blitter */
1230 
1231      gr_null, /* horizontal bitmap doubler */
1232      gr_null, /* vertical bitmap doubler */
1233      gr_null, /* horizontal and vertical bitmap doubler */
1234 
1235      gr_null, /* blended horizontal bitmap doubler */
1236      gr_null, /* blended vertical bitmap doubler */
1237      gr_null, /* blended horizontal and vertical bitmap doubler */
1238 
1239      (ptr_type)rsd8_tm_init, /* Scalers */
1240      (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init,
1241      (ptr_type)rsd8_tm_init,
1242 
1243      (ptr_type)gri_stpoly_init, /* shaded translucent polygon primitives */
1244      gr_null,
1245 
1246      (ptr_type)rsd8_tm_init, /* Linear mappers */
1247      (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init,
1248      (ptr_type)rsd8_tm_init,
1249 
1250      (ptr_type)rsd8_tm_init, /* Linear */
1251      (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init,
1252      (ptr_type)rsd8_tm_init,
1253 
1254      (ptr_type)rsd8_tm_init, /* Floor */
1255      (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init,
1256      (ptr_type)rsd8_tm_init,
1257 
1258      (ptr_type)rsd8_tm_init, /* Wall2d */
1259      (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init,
1260      (ptr_type)rsd8_tm_init,
1261 
1262      (ptr_type)rsd8_tm_init, /* Wall1d */
1263      (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init, (ptr_type)rsd8_tm_init,
1264      (ptr_type)rsd8_tm_init,
1265 
1266      (ptr_type)rsd8_pm_init, /* Perspective -hscan */
1267      (ptr_type)rsd8_pm_init, (ptr_type)rsd8_pm_init, (ptr_type)rsd8_pm_init, (ptr_type)rsd8_pm_init,
1268      (ptr_type)rsd8_pm_init,
1269 
1270      (ptr_type)rsd8_pm_init, /* Perspective -vscan */
1271      (ptr_type)rsd8_pm_init, (ptr_type)rsd8_pm_init, (ptr_type)rsd8_pm_init, (ptr_type)rsd8_pm_init,
1272      (ptr_type)rsd8_pm_init,
1273 
1274      /* BMT_TLUC8 */
1275      gr_null, /* shaded translucent line */
1276      gr_null, /* shaded translucent wire poly line */
1277      gr_null, /* rgb vline */
1278 
1279      gr_null, /* bitmap blitter */
1280      gr_null, /* stencil clipped bitmap blitter */
1281      gr_null, /* clut bitmap blitter */
1282 
1283      gr_null, /* hflipped bitmap blitter */
1284      gr_null, /* clut hflipped bitmap blitter */
1285 
1286      gr_null, /* masked bitmap blitter */
1287 
1288      gr_null, /* horizontal bitmap doubler */
1289      gr_null, /* vertical bitmap doubler */
1290      gr_null, /* horizontal and vertical bitmap doubler */
1291 
1292      gr_null, /* blended horizontal bitmap doubler */
1293      gr_null, /* blended vertical bitmap doubler */
1294      gr_null, /* blended horizontal and vertical bitmap doubler */
1295 
1296      (ptr_type)gri_tluc8_opaque_scale_umap_init, /* Scalers */
1297      (ptr_type)gri_tluc8_trans_scale_umap_init, gr_null, gr_null, (ptr_type)gri_tluc8_opaque_clut_scale_umap_init,
1298      (ptr_type)gri_tluc8_trans_clut_scale_umap_init,
1299 
1300      gr_null, gr_null,
1301 
1302      gr_null, /* Linear mappers */
1303      gr_null, gr_null, gr_null, gr_null, gr_null,
1304 
1305      (ptr_type)gri_tluc8_opaque_lin_umap_init, /* Linear */
1306      (ptr_type)gri_tluc8_trans_lin_umap_init, gr_null, gr_null, (ptr_type)gri_tluc8_opaque_clut_lin_umap_init,
1307      (ptr_type)gri_tluc8_trans_clut_lin_umap_init,
1308 
1309      gr_null, /* Floor */
1310      gr_null, gr_null, gr_null, gr_null, gr_null,
1311 
1312      gr_null, /* Wall2d */
1313      gr_null, gr_null, gr_null, gr_null, gr_null,
1314 
1315      gr_null, /* Wall1d */
1316      gr_null, gr_null, gr_null, gr_null, gr_null,
1317 
1318      gr_null, /* Perspective -hscan */
1319      gr_null, gr_null, gr_null, gr_null, gr_null,
1320 
1321      gr_null, /* Perspective -vscan */
1322      gr_null, gr_null, gr_null, gr_null, gr_null},
1323     {/* solid fill type - from fl8sft.h */
1324      /* FILL_SOLID */
1325      /* BMT_DEVICE */
1326      (ptr_type)flat8_solid_set_upixel, /* pixel primitve */
1327      gr_null,                          /* reserved wire poly line */
1328      gr_null,                          /* solid hline */
1329 
1330      gr_null, /* bitmap blitter */
1331      gr_null, /* stencil clipped bitmap blitter */
1332      gr_null, /* clut bitmap blitter */
1333 
1334      gr_null, /* hflipped bitmap blitter */
1335      gr_null, /* clut hflipped bitmap blitter */
1336 
1337      gr_null, /* masked bitmap blitter */
1338 
1339      gr_null, /* horizontal bitmap doubler */
1340      gr_null, /* vertical bitmap doubler */
1341      gr_null, /* horizontal and vertical bitmap doubler */
1342 
1343      gr_null, /* blended horizontal bitmap doubler */
1344      gr_null, /* blended vertical bitmap doubler */
1345      gr_null, /* blended horizontal and vertical bitmap doubler */
1346 
1347      gr_null, /* Scalers */
1348      gr_null, gr_null, gr_null, gr_null, gr_null,
1349 
1350      (ptr_type)gri_solid_poly_init, /* solid polygon primitives */
1351      gr_null,
1352 
1353      gr_null, /* Linear mappers */
1354      gr_null, gr_null, gr_null, gr_null, gr_null,
1355 
1356      gr_null, /* Bilinear mappers */
1357      gr_null, gr_null, gr_null, gr_null, gr_null,
1358 
1359      gr_null, /* Floor */
1360      gr_null, gr_null, gr_null, gr_null, gr_null,
1361 
1362      gr_null, /* Wall2d */
1363      gr_null, gr_null, gr_null, gr_null, gr_null,
1364 
1365      gr_null, /* Wall1d */
1366      gr_null, gr_null, gr_null, gr_null, gr_null,
1367 
1368      gr_null, /* Perspective -hscan */
1369      gr_null, gr_null, gr_null, gr_null, gr_null,
1370 
1371      gr_null, /* Perspective -vscan */
1372      gr_null, gr_null, gr_null, gr_null, gr_null,
1373 
1374      /* BMT_MONO */
1375      gr_null, /* solid line */
1376      gr_null, /* solid wire poly line */
1377      gr_null, /* gouraud hline */
1378 
1379      gr_null, /* bitmap blitter */
1380      gr_null, /* stencil clipped bitmap blitter */
1381      gr_null, /* clut bitmap blitter */
1382 
1383      gr_null, /* hflipped bitmap blitter */
1384      gr_null, /* clut hflipped bitmap blitter */
1385 
1386      gr_null, /* masked bitmap blitter */
1387 
1388      gr_null, /* horizontal bitmap doubler */
1389      gr_null, /* vertical bitmap doubler */
1390      gr_null, /* horizontal and vertical bitmap doubler */
1391 
1392      gr_null, /* blended horizontal bitmap doubler */
1393      gr_null, /* blended vertical bitmap doubler */
1394      gr_null, /* blended horizontal and vertical bitmap doubler */
1395 
1396      gr_null, /* Scalers */
1397      gr_null, gr_null, gr_null, gr_null, gr_null,
1398 
1399      (ptr_type)gri_solid_poly_init, /* gouraud polygon primitives */
1400      gr_null,
1401 
1402      gr_null, /* Linear mappers */
1403      gr_null, gr_null, gr_null, gr_null, gr_null,
1404 
1405      gr_null, /* Linear */
1406      gr_null, gr_null, gr_null, gr_null, gr_null,
1407 
1408      gr_null, /* Floor */
1409      gr_null, gr_null, gr_null, gr_null, gr_null,
1410 
1411      gr_null, /* Wall2d */
1412      gr_null, gr_null, gr_null, gr_null, gr_null,
1413 
1414      gr_null, /* Wall1d */
1415      gr_null, gr_null, gr_null, gr_null, gr_null,
1416 
1417      gr_null, /* Perspective -hscan */
1418      gr_null, gr_null, gr_null, gr_null, gr_null,
1419 
1420      gr_null, /* Perspective -vscan */
1421      gr_null, gr_null, gr_null, gr_null, gr_null,
1422 
1423      /* BMT_FLAT8 */
1424      gr_null, /* gouraud line */
1425      gr_null, /* gouraud wire poly line */
1426      gr_null, /* rgb hline */
1427 
1428      gr_null, /* bitmap blitter */
1429      gr_null, /* stencil clipped bitmap blitter */
1430      gr_null, /* clut bitmap blitter */
1431 
1432      gr_null, /* hflipped bitmap blitter */
1433      gr_null, /* clut hflipped bitmap blitter */
1434 
1435      gr_null, /* masked bitmap blitter */
1436 
1437      gr_null, /* horizontal bitmap doubler */
1438      gr_null, /* vertical bitmap doubler */
1439      gr_null, /* horizontal and vertical bitmap doubler */
1440 
1441      gr_null, /* blended horizontal bitmap doubler */
1442      gr_null, /* blended vertical bitmap doubler */
1443      gr_null, /* blended horizontal and vertical bitmap doubler */
1444 
1445      (ptr_type)gri_opaque_solid_scale_umap_init, /* Scalers */
1446      (ptr_type)gri_trans_solid_scale_umap_init, (ptr_type)gri_opaque_solid_scale_umap_init,
1447      (ptr_type)gri_trans_solid_scale_umap_init, (ptr_type)gri_opaque_solid_scale_umap_init,
1448      (ptr_type)gri_trans_solid_scale_umap_init,
1449 
1450      (ptr_type)gri_solid_poly_init, /* RGB polygon primitives */
1451      gr_null,
1452 
1453      (ptr_type)gri_solid_poly_init, /* Linear mappers */
1454      gr_null, (ptr_type)gri_solid_poly_init, gr_null, (ptr_type)gri_solid_poly_init, gr_null,
1455 
1456      (ptr_type)gri_solid_poly_init, /* Bilinear */
1457      (ptr_type)gri_trans_solid_lin_umap_init, (ptr_type)gri_solid_poly_init, (ptr_type)gri_trans_solid_lin_umap_init,
1458      (ptr_type)gri_solid_poly_init, (ptr_type)gri_trans_solid_lin_umap_init,
1459 
1460      (ptr_type)gri_solid_poly_init, /* Floor */
1461      (ptr_type)gri_trans_solid_floor_umap_init, (ptr_type)gri_solid_poly_init,
1462      (ptr_type)gri_trans_solid_floor_umap_init, (ptr_type)gri_solid_poly_init,
1463      (ptr_type)gri_trans_solid_floor_umap_init,
1464 
1465      (ptr_type)gri_solid_poly_init, /* Wall2d */
1466      (ptr_type)gri_trans_solid_wall_umap_init, (ptr_type)gri_solid_poly_init, (ptr_type)gri_trans_solid_wall_umap_init,
1467      (ptr_type)gri_solid_poly_init, (ptr_type)gri_trans_solid_wall_umap_init,
1468 
1469      (ptr_type)gri_solid_poly_init, /* Wall1d */
1470      (ptr_type)gri_trans_solid_wall_umap_init, (ptr_type)gri_solid_poly_init, (ptr_type)gri_trans_solid_wall_umap_init,
1471      (ptr_type)gri_solid_poly_init, (ptr_type)gri_trans_solid_wall_umap_init,
1472 
1473      (ptr_type)gri_solid_poly_init, /* Perspective -hscan */
1474      (ptr_type)gri_trans_solid_per_umap_hscan_init, (ptr_type)gri_solid_poly_init,
1475      (ptr_type)gri_trans_solid_per_umap_hscan_init, (ptr_type)gri_solid_poly_init,
1476      (ptr_type)gri_trans_solid_per_umap_hscan_init,
1477 
1478      (ptr_type)gri_solid_poly_init, /* Perspective -vscan */
1479      (ptr_type)gri_trans_solid_per_umap_vscan_init, (ptr_type)gri_solid_poly_init,
1480      (ptr_type)gri_trans_solid_per_umap_vscan_init, (ptr_type)gri_solid_poly_init,
1481      (ptr_type)gri_trans_solid_per_umap_vscan_init,
1482 
1483      /* BMT_FLAT24 */
1484      gr_null, /* rgb line */
1485      gr_null, /* rgb wire poly line */
1486      gr_null, /* solid vline */
1487 
1488      gr_null, /* bitmap blitter */
1489      gr_null, /* stencil clipped bitmap blitter */
1490      gr_null, /* clut bitmap blitter */
1491 
1492      gr_null, /* hflipped bitmap blitter */
1493      gr_null, /* clut hflipped bitmap blitter */
1494 
1495      gr_null, /* masked bitmap blitter */
1496 
1497      gr_null, /* horizontal bitmap doubler */
1498      gr_null, /* vertical bitmap doubler */
1499      gr_null, /* horizontal and vertical bitmap doubler */
1500 
1501      gr_null, /* blended horizontal bitmap doubler */
1502      gr_null, /* blended vertical bitmap doubler */
1503      gr_null, /* blended horizontal and vertical bitmap doubler */
1504 
1505      gr_null, /* Scalers */
1506      gr_null, gr_null, gr_null, gr_null, gr_null,
1507 
1508      (ptr_type)gri_solid_poly_init, /* translucent polygon primitives */
1509      gr_null,
1510 
1511      gr_null, /* Linear mappers */
1512      gr_null, gr_null, gr_null, gr_null, gr_null,
1513 
1514      gr_null, /* Linear */
1515      gr_null, gr_null, gr_null, gr_null, gr_null,
1516 
1517      gr_null, /* Floor */
1518      gr_null, gr_null, gr_null, gr_null, gr_null,
1519 
1520      gr_null, /* Wall2d */
1521      gr_null, gr_null, gr_null, gr_null, gr_null,
1522 
1523      gr_null, /* Wall1d */
1524      gr_null, gr_null, gr_null, gr_null, gr_null,
1525 
1526      gr_null, /* Perspective -hscan */
1527      gr_null, gr_null, gr_null, gr_null, gr_null,
1528 
1529      gr_null, /* Perspective -vscan */
1530      gr_null, gr_null, gr_null, gr_null, gr_null,
1531 
1532      /* BMT_RSD8 */
1533      gr_null, /* translucent line */
1534      gr_null, /* translucent wire poly line */
1535      gr_null, /* gouraud vline */
1536 
1537      (ptr_type)gri_gen_rsd8_ubitmap, /* bitmap blitter */
1538      (ptr_type)gri_gen_rsd8_bitmap,  /* stencil clipped bitmap blitter */
1539      gr_null,                        /* clut bitmap blitter */
1540 
1541      gr_null, /* hflipped bitmap blitter */
1542      gr_null, /* clut hflipped bitmap blitter */
1543 
1544      gr_null, /* masked bitmap blitter */
1545 
1546      gr_null, /* horizontal bitmap doubler */
1547      gr_null, /* vertical bitmap doubler */
1548      gr_null, /* horizontal and vertical bitmap doubler */
1549 
1550      gr_null, /* blended horizontal bitmap doubler */
1551      gr_null, /* blended vertical bitmap doubler */
1552      gr_null, /* blended horizontal and vertical bitmap doubler */
1553 
1554      (ptr_type)gri_opaque_solid_scale_umap_init, (ptr_type)rsd8_tm_init, (ptr_type)gri_opaque_solid_scale_umap_init,
1555      (ptr_type)rsd8_tm_init, (ptr_type)gri_opaque_solid_scale_umap_init, (ptr_type)rsd8_tm_init,
1556 
1557      (ptr_type)gri_solid_poly_init, /* shaded translucent polygon primitives */
1558      gr_null,
1559 
1560      (ptr_type)gri_solid_poly_init, /* Linear mappers */
1561      (ptr_type)rsd8_tm_init, (ptr_type)gri_solid_poly_init, (ptr_type)rsd8_tm_init, (ptr_type)gri_solid_poly_init,
1562      (ptr_type)rsd8_tm_init,
1563 
1564      (ptr_type)gri_solid_poly_init, /* Linear */
1565      (ptr_type)rsd8_tm_init, (ptr_type)gri_solid_poly_init, (ptr_type)rsd8_tm_init, (ptr_type)gri_solid_poly_init,
1566      (ptr_type)rsd8_tm_init,
1567 
1568      (ptr_type)gri_solid_poly_init, /* Floor */
1569      (ptr_type)rsd8_tm_init, (ptr_type)gri_solid_poly_init, (ptr_type)rsd8_tm_init, (ptr_type)gri_solid_poly_init,
1570      (ptr_type)rsd8_tm_init,
1571 
1572      (ptr_type)gri_solid_poly_init, /* Wall2d */
1573      (ptr_type)rsd8_tm_init, (ptr_type)gri_solid_poly_init, (ptr_type)rsd8_tm_init, (ptr_type)gri_solid_poly_init,
1574      (ptr_type)rsd8_tm_init,
1575 
1576      (ptr_type)gri_solid_poly_init, /* Wall1d */
1577      (ptr_type)rsd8_tm_init, (ptr_type)gri_solid_poly_init, (ptr_type)rsd8_tm_init, (ptr_type)gri_solid_poly_init,
1578      (ptr_type)rsd8_tm_init,
1579 
1580      (ptr_type)gri_solid_poly_init, /* Perspective -hscan */
1581      (ptr_type)rsd8_pm_init, (ptr_type)gri_solid_poly_init, (ptr_type)rsd8_pm_init, (ptr_type)gri_solid_poly_init,
1582      (ptr_type)rsd8_pm_init,
1583 
1584      (ptr_type)gri_solid_poly_init, /* Perspective -vscan */
1585      (ptr_type)rsd8_pm_init, (ptr_type)gri_solid_poly_init, (ptr_type)rsd8_pm_init, (ptr_type)gri_solid_poly_init,
1586      (ptr_type)rsd8_pm_init,
1587 
1588      /* BMT_TLUC8 */
1589      gr_null, /* shaded translucent line */
1590      gr_null, /* shaded translucent wire poly line */
1591      gr_null, /* rgb vline */
1592 
1593      gr_null, /* bitmap blitter */
1594      gr_null, /* stencil clipped bitmap blitter */
1595      gr_null, /* clut bitmap blitter */
1596 
1597      gr_null, /* hflipped bitmap blitter */
1598      gr_null, /* clut hflipped bitmap blitter */
1599 
1600      gr_null, /* masked bitmap blitter */
1601 
1602      gr_null, /* horizontal bitmap doubler */
1603      gr_null, /* vertical bitmap doubler */
1604      gr_null, /* horizontal and vertical bitmap doubler */
1605 
1606      gr_null, /* blended horizontal bitmap doubler */
1607      gr_null, /* blended vertical bitmap doubler */
1608      gr_null, /* blended horizontal and vertical bitmap doubler */
1609 
1610      (ptr_type)gri_opaque_solid_scale_umap_init, /* Scalers */
1611      (ptr_type)gri_trans_solid_scale_umap_init, (ptr_type)gri_opaque_solid_scale_umap_init,
1612      (ptr_type)gri_trans_solid_scale_umap_init, (ptr_type)gri_opaque_solid_scale_umap_init,
1613      (ptr_type)gri_trans_solid_scale_umap_init,
1614 
1615      gr_null, gr_null,
1616 
1617      gr_null, /* Linear mappers */
1618      gr_null, gr_null, gr_null, gr_null, gr_null,
1619 
1620      (ptr_type)gri_solid_poly_init, /* Linear */
1621      (ptr_type)gri_trans_solid_lin_umap_init, (ptr_type)gri_solid_poly_init, (ptr_type)gri_trans_solid_lin_umap_init,
1622      (ptr_type)gri_solid_poly_init, (ptr_type)gri_trans_solid_lin_umap_init,
1623 
1624      gr_null, /* Floor */
1625      gr_null, gr_null, gr_null, gr_null, gr_null,
1626 
1627      gr_null, /* Wall2d */
1628      gr_null, gr_null, gr_null, gr_null, gr_null,
1629 
1630      gr_null, /* Wall1d */
1631      gr_null, gr_null, gr_null, gr_null, gr_null,
1632 
1633      gr_null, /* Perspective -hscan */
1634      gr_null, gr_null, gr_null, gr_null, gr_null,
1635 
1636      gr_null, /* Perspective -vscan */
1637      gr_null, gr_null, gr_null, gr_null, gr_null}};
1638