1 /* File automatically generated by indices.py */
4 * Copyright 2009 VMware, Inc.
7 * Permission is hereby granted, free of charge, to any person obtaining a
8 * copy of this software and associated documentation files (the "Software"),
9 * to deal in the Software without restriction, including without limitation
10 * on the rights to use, copy, modify, merge, publish, distribute, sub
11 * license, and/or sell copies of the Software, and to permit persons to whom
12 * the Software is furnished to do so, subject to the following conditions:
14 * The above copyright notice and this permission notice (including the next
15 * paragraph) shall be included in all copies or substantial portions of the
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
21 * VMWARE AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
22 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
23 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
24 * USE OR OTHER DEALINGS IN THE SOFTWARE.
31 * Functions to translate and generate index lists
34 #include "indices/u_indices.h"
35 #include "indices/u_indices_priv.h"
36 #include "pipe/p_compiler.h"
37 #include "util/u_debug.h"
38 #include "pipe/p_defines.h"
39 #include "util/u_memory.h"
42 static unsigned out_size_idx( unsigned index_size
)
45 case 4: return OUT_UINT
;
46 case 2: return OUT_USHORT
;
47 default: assert(0); return OUT_USHORT
;
51 static unsigned in_size_idx( unsigned index_size
)
54 case 4: return IN_UINT
;
55 case 2: return IN_USHORT
;
56 case 1: return IN_UBYTE
;
57 default: assert(0); return IN_UBYTE
;
62 static u_translate_func translate
[IN_COUNT
][OUT_COUNT
][PV_COUNT
][PV_COUNT
][PRIM_COUNT
];
63 static u_generate_func generate
[OUT_COUNT
][PV_COUNT
][PV_COUNT
][PRIM_COUNT
];
67 static void generate_points_ushort_first2first(
71 ushort
*out
= (ushort
*)_out
;
74 for (i
= 0; i
< nr
; i
++) {
75 (out
+i
)[0] = (ushort
)(i
);
78 static void generate_lines_ushort_first2first(
82 ushort
*out
= (ushort
*)_out
;
85 for (i
= 0; i
< nr
; i
+=2) {
86 (out
+i
)[0] = (ushort
)(i
);
87 (out
+i
)[1] = (ushort
)(i
+1);
90 static void generate_linestrip_ushort_first2first(
94 ushort
*out
= (ushort
*)_out
;
97 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
98 (out
+j
)[0] = (ushort
)(i
);
99 (out
+j
)[1] = (ushort
)(i
+1);
102 static void generate_lineloop_ushort_first2first(
106 ushort
*out
= (ushort
*)_out
;
109 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
110 (out
+j
)[0] = (ushort
)(i
);
111 (out
+j
)[1] = (ushort
)(i
+1);
113 (out
+j
)[0] = (ushort
)(i
);
114 (out
+j
)[1] = (ushort
)(0);
116 static void generate_tris_ushort_first2first(
120 ushort
*out
= (ushort
*)_out
;
123 for (i
= 0; i
< nr
; i
+=3) {
124 (out
+i
)[0] = (ushort
)(i
);
125 (out
+i
)[1] = (ushort
)(i
+1);
126 (out
+i
)[2] = (ushort
)(i
+2);
129 static void generate_tristrip_ushort_first2first(
133 ushort
*out
= (ushort
*)_out
;
136 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
137 (out
+j
)[0] = (ushort
)(i
);
138 (out
+j
)[1] = (ushort
)(i
+1+(i
&1));
139 (out
+j
)[2] = (ushort
)(i
+2-(i
&1));
142 static void generate_trifan_ushort_first2first(
146 ushort
*out
= (ushort
*)_out
;
149 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
150 (out
+j
)[0] = (ushort
)(0);
151 (out
+j
)[1] = (ushort
)(i
+1);
152 (out
+j
)[2] = (ushort
)(i
+2);
155 static void generate_quads_ushort_first2first(
159 ushort
*out
= (ushort
*)_out
;
162 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
163 (out
+j
+0)[0] = (ushort
)(i
+0);
164 (out
+j
+0)[1] = (ushort
)(i
+1);
165 (out
+j
+0)[2] = (ushort
)(i
+3);
166 (out
+j
+3)[0] = (ushort
)(i
+1);
167 (out
+j
+3)[1] = (ushort
)(i
+2);
168 (out
+j
+3)[2] = (ushort
)(i
+3);
171 static void generate_quadstrip_ushort_first2first(
175 ushort
*out
= (ushort
*)_out
;
178 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
179 (out
+j
+0)[0] = (ushort
)(i
+2);
180 (out
+j
+0)[1] = (ushort
)(i
+0);
181 (out
+j
+0)[2] = (ushort
)(i
+3);
182 (out
+j
+3)[0] = (ushort
)(i
+0);
183 (out
+j
+3)[1] = (ushort
)(i
+1);
184 (out
+j
+3)[2] = (ushort
)(i
+3);
187 static void generate_polygon_ushort_first2first(
191 ushort
*out
= (ushort
*)_out
;
194 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
195 (out
+j
)[0] = (ushort
)(0);
196 (out
+j
)[1] = (ushort
)(i
+1);
197 (out
+j
)[2] = (ushort
)(i
+2);
200 static void generate_points_ushort_first2last(
204 ushort
*out
= (ushort
*)_out
;
207 for (i
= 0; i
< nr
; i
++) {
208 (out
+i
)[0] = (ushort
)(i
);
211 static void generate_lines_ushort_first2last(
215 ushort
*out
= (ushort
*)_out
;
218 for (i
= 0; i
< nr
; i
+=2) {
219 (out
+i
)[0] = (ushort
)(i
+1);
220 (out
+i
)[1] = (ushort
)(i
);
223 static void generate_linestrip_ushort_first2last(
227 ushort
*out
= (ushort
*)_out
;
230 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
231 (out
+j
)[0] = (ushort
)(i
+1);
232 (out
+j
)[1] = (ushort
)(i
);
235 static void generate_lineloop_ushort_first2last(
239 ushort
*out
= (ushort
*)_out
;
242 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
243 (out
+j
)[0] = (ushort
)(i
+1);
244 (out
+j
)[1] = (ushort
)(i
);
246 (out
+j
)[0] = (ushort
)(0);
247 (out
+j
)[1] = (ushort
)(i
);
249 static void generate_tris_ushort_first2last(
253 ushort
*out
= (ushort
*)_out
;
256 for (i
= 0; i
< nr
; i
+=3) {
257 (out
+i
)[0] = (ushort
)(i
+1);
258 (out
+i
)[1] = (ushort
)(i
+2);
259 (out
+i
)[2] = (ushort
)(i
);
262 static void generate_tristrip_ushort_first2last(
266 ushort
*out
= (ushort
*)_out
;
269 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
270 (out
+j
)[0] = (ushort
)(i
+1+(i
&1));
271 (out
+j
)[1] = (ushort
)(i
+2-(i
&1));
272 (out
+j
)[2] = (ushort
)(i
);
275 static void generate_trifan_ushort_first2last(
279 ushort
*out
= (ushort
*)_out
;
282 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
283 (out
+j
)[0] = (ushort
)(i
+1);
284 (out
+j
)[1] = (ushort
)(i
+2);
285 (out
+j
)[2] = (ushort
)(0);
288 static void generate_quads_ushort_first2last(
292 ushort
*out
= (ushort
*)_out
;
295 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
296 (out
+j
+0)[0] = (ushort
)(i
+1);
297 (out
+j
+0)[1] = (ushort
)(i
+3);
298 (out
+j
+0)[2] = (ushort
)(i
+0);
299 (out
+j
+3)[0] = (ushort
)(i
+2);
300 (out
+j
+3)[1] = (ushort
)(i
+3);
301 (out
+j
+3)[2] = (ushort
)(i
+1);
304 static void generate_quadstrip_ushort_first2last(
308 ushort
*out
= (ushort
*)_out
;
311 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
312 (out
+j
+0)[0] = (ushort
)(i
+0);
313 (out
+j
+0)[1] = (ushort
)(i
+3);
314 (out
+j
+0)[2] = (ushort
)(i
+2);
315 (out
+j
+3)[0] = (ushort
)(i
+1);
316 (out
+j
+3)[1] = (ushort
)(i
+3);
317 (out
+j
+3)[2] = (ushort
)(i
+0);
320 static void generate_polygon_ushort_first2last(
324 ushort
*out
= (ushort
*)_out
;
327 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
328 (out
+j
)[0] = (ushort
)(i
+1);
329 (out
+j
)[1] = (ushort
)(i
+2);
330 (out
+j
)[2] = (ushort
)(0);
333 static void generate_points_ushort_last2first(
337 ushort
*out
= (ushort
*)_out
;
340 for (i
= 0; i
< nr
; i
++) {
341 (out
+i
)[0] = (ushort
)(i
);
344 static void generate_lines_ushort_last2first(
348 ushort
*out
= (ushort
*)_out
;
351 for (i
= 0; i
< nr
; i
+=2) {
352 (out
+i
)[0] = (ushort
)(i
+1);
353 (out
+i
)[1] = (ushort
)(i
);
356 static void generate_linestrip_ushort_last2first(
360 ushort
*out
= (ushort
*)_out
;
363 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
364 (out
+j
)[0] = (ushort
)(i
+1);
365 (out
+j
)[1] = (ushort
)(i
);
368 static void generate_lineloop_ushort_last2first(
372 ushort
*out
= (ushort
*)_out
;
375 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
376 (out
+j
)[0] = (ushort
)(i
+1);
377 (out
+j
)[1] = (ushort
)(i
);
379 (out
+j
)[0] = (ushort
)(0);
380 (out
+j
)[1] = (ushort
)(i
);
382 static void generate_tris_ushort_last2first(
386 ushort
*out
= (ushort
*)_out
;
389 for (i
= 0; i
< nr
; i
+=3) {
390 (out
+i
)[0] = (ushort
)(i
+2);
391 (out
+i
)[1] = (ushort
)(i
);
392 (out
+i
)[2] = (ushort
)(i
+1);
395 static void generate_tristrip_ushort_last2first(
399 ushort
*out
= (ushort
*)_out
;
402 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
403 (out
+j
)[0] = (ushort
)(i
+2);
404 (out
+j
)[1] = (ushort
)(i
+(i
&1));
405 (out
+j
)[2] = (ushort
)(i
+1-(i
&1));
408 static void generate_trifan_ushort_last2first(
412 ushort
*out
= (ushort
*)_out
;
415 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
416 (out
+j
)[0] = (ushort
)(i
+2);
417 (out
+j
)[1] = (ushort
)(0);
418 (out
+j
)[2] = (ushort
)(i
+1);
421 static void generate_quads_ushort_last2first(
425 ushort
*out
= (ushort
*)_out
;
428 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
429 (out
+j
+0)[0] = (ushort
)(i
+3);
430 (out
+j
+0)[1] = (ushort
)(i
+0);
431 (out
+j
+0)[2] = (ushort
)(i
+1);
432 (out
+j
+3)[0] = (ushort
)(i
+3);
433 (out
+j
+3)[1] = (ushort
)(i
+1);
434 (out
+j
+3)[2] = (ushort
)(i
+2);
437 static void generate_quadstrip_ushort_last2first(
441 ushort
*out
= (ushort
*)_out
;
444 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
445 (out
+j
+0)[0] = (ushort
)(i
+3);
446 (out
+j
+0)[1] = (ushort
)(i
+2);
447 (out
+j
+0)[2] = (ushort
)(i
+0);
448 (out
+j
+3)[0] = (ushort
)(i
+3);
449 (out
+j
+3)[1] = (ushort
)(i
+0);
450 (out
+j
+3)[2] = (ushort
)(i
+1);
453 static void generate_polygon_ushort_last2first(
457 ushort
*out
= (ushort
*)_out
;
460 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
461 (out
+j
)[0] = (ushort
)(0);
462 (out
+j
)[1] = (ushort
)(i
+1);
463 (out
+j
)[2] = (ushort
)(i
+2);
466 static void generate_points_ushort_last2last(
470 ushort
*out
= (ushort
*)_out
;
473 for (i
= 0; i
< nr
; i
++) {
474 (out
+i
)[0] = (ushort
)(i
);
477 static void generate_lines_ushort_last2last(
481 ushort
*out
= (ushort
*)_out
;
484 for (i
= 0; i
< nr
; i
+=2) {
485 (out
+i
)[0] = (ushort
)(i
);
486 (out
+i
)[1] = (ushort
)(i
+1);
489 static void generate_linestrip_ushort_last2last(
493 ushort
*out
= (ushort
*)_out
;
496 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
497 (out
+j
)[0] = (ushort
)(i
);
498 (out
+j
)[1] = (ushort
)(i
+1);
501 static void generate_lineloop_ushort_last2last(
505 ushort
*out
= (ushort
*)_out
;
508 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
509 (out
+j
)[0] = (ushort
)(i
);
510 (out
+j
)[1] = (ushort
)(i
+1);
512 (out
+j
)[0] = (ushort
)(i
);
513 (out
+j
)[1] = (ushort
)(0);
515 static void generate_tris_ushort_last2last(
519 ushort
*out
= (ushort
*)_out
;
522 for (i
= 0; i
< nr
; i
+=3) {
523 (out
+i
)[0] = (ushort
)(i
);
524 (out
+i
)[1] = (ushort
)(i
+1);
525 (out
+i
)[2] = (ushort
)(i
+2);
528 static void generate_tristrip_ushort_last2last(
532 ushort
*out
= (ushort
*)_out
;
535 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
536 (out
+j
)[0] = (ushort
)(i
+(i
&1));
537 (out
+j
)[1] = (ushort
)(i
+1-(i
&1));
538 (out
+j
)[2] = (ushort
)(i
+2);
541 static void generate_trifan_ushort_last2last(
545 ushort
*out
= (ushort
*)_out
;
548 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
549 (out
+j
)[0] = (ushort
)(0);
550 (out
+j
)[1] = (ushort
)(i
+1);
551 (out
+j
)[2] = (ushort
)(i
+2);
554 static void generate_quads_ushort_last2last(
558 ushort
*out
= (ushort
*)_out
;
561 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
562 (out
+j
+0)[0] = (ushort
)(i
+0);
563 (out
+j
+0)[1] = (ushort
)(i
+1);
564 (out
+j
+0)[2] = (ushort
)(i
+3);
565 (out
+j
+3)[0] = (ushort
)(i
+1);
566 (out
+j
+3)[1] = (ushort
)(i
+2);
567 (out
+j
+3)[2] = (ushort
)(i
+3);
570 static void generate_quadstrip_ushort_last2last(
574 ushort
*out
= (ushort
*)_out
;
577 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
578 (out
+j
+0)[0] = (ushort
)(i
+2);
579 (out
+j
+0)[1] = (ushort
)(i
+0);
580 (out
+j
+0)[2] = (ushort
)(i
+3);
581 (out
+j
+3)[0] = (ushort
)(i
+0);
582 (out
+j
+3)[1] = (ushort
)(i
+1);
583 (out
+j
+3)[2] = (ushort
)(i
+3);
586 static void generate_polygon_ushort_last2last(
590 ushort
*out
= (ushort
*)_out
;
593 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
594 (out
+j
)[0] = (ushort
)(i
+1);
595 (out
+j
)[1] = (ushort
)(i
+2);
596 (out
+j
)[2] = (ushort
)(0);
599 static void generate_points_uint_first2first(
603 uint
*out
= (uint
*)_out
;
606 for (i
= 0; i
< nr
; i
++) {
607 (out
+i
)[0] = (uint
)(i
);
610 static void generate_lines_uint_first2first(
614 uint
*out
= (uint
*)_out
;
617 for (i
= 0; i
< nr
; i
+=2) {
618 (out
+i
)[0] = (uint
)(i
);
619 (out
+i
)[1] = (uint
)(i
+1);
622 static void generate_linestrip_uint_first2first(
626 uint
*out
= (uint
*)_out
;
629 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
630 (out
+j
)[0] = (uint
)(i
);
631 (out
+j
)[1] = (uint
)(i
+1);
634 static void generate_lineloop_uint_first2first(
638 uint
*out
= (uint
*)_out
;
641 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
642 (out
+j
)[0] = (uint
)(i
);
643 (out
+j
)[1] = (uint
)(i
+1);
645 (out
+j
)[0] = (uint
)(i
);
646 (out
+j
)[1] = (uint
)(0);
648 static void generate_tris_uint_first2first(
652 uint
*out
= (uint
*)_out
;
655 for (i
= 0; i
< nr
; i
+=3) {
656 (out
+i
)[0] = (uint
)(i
);
657 (out
+i
)[1] = (uint
)(i
+1);
658 (out
+i
)[2] = (uint
)(i
+2);
661 static void generate_tristrip_uint_first2first(
665 uint
*out
= (uint
*)_out
;
668 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
669 (out
+j
)[0] = (uint
)(i
);
670 (out
+j
)[1] = (uint
)(i
+1+(i
&1));
671 (out
+j
)[2] = (uint
)(i
+2-(i
&1));
674 static void generate_trifan_uint_first2first(
678 uint
*out
= (uint
*)_out
;
681 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
682 (out
+j
)[0] = (uint
)(0);
683 (out
+j
)[1] = (uint
)(i
+1);
684 (out
+j
)[2] = (uint
)(i
+2);
687 static void generate_quads_uint_first2first(
691 uint
*out
= (uint
*)_out
;
694 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
695 (out
+j
+0)[0] = (uint
)(i
+0);
696 (out
+j
+0)[1] = (uint
)(i
+1);
697 (out
+j
+0)[2] = (uint
)(i
+3);
698 (out
+j
+3)[0] = (uint
)(i
+1);
699 (out
+j
+3)[1] = (uint
)(i
+2);
700 (out
+j
+3)[2] = (uint
)(i
+3);
703 static void generate_quadstrip_uint_first2first(
707 uint
*out
= (uint
*)_out
;
710 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
711 (out
+j
+0)[0] = (uint
)(i
+2);
712 (out
+j
+0)[1] = (uint
)(i
+0);
713 (out
+j
+0)[2] = (uint
)(i
+3);
714 (out
+j
+3)[0] = (uint
)(i
+0);
715 (out
+j
+3)[1] = (uint
)(i
+1);
716 (out
+j
+3)[2] = (uint
)(i
+3);
719 static void generate_polygon_uint_first2first(
723 uint
*out
= (uint
*)_out
;
726 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
727 (out
+j
)[0] = (uint
)(0);
728 (out
+j
)[1] = (uint
)(i
+1);
729 (out
+j
)[2] = (uint
)(i
+2);
732 static void generate_points_uint_first2last(
736 uint
*out
= (uint
*)_out
;
739 for (i
= 0; i
< nr
; i
++) {
740 (out
+i
)[0] = (uint
)(i
);
743 static void generate_lines_uint_first2last(
747 uint
*out
= (uint
*)_out
;
750 for (i
= 0; i
< nr
; i
+=2) {
751 (out
+i
)[0] = (uint
)(i
+1);
752 (out
+i
)[1] = (uint
)(i
);
755 static void generate_linestrip_uint_first2last(
759 uint
*out
= (uint
*)_out
;
762 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
763 (out
+j
)[0] = (uint
)(i
+1);
764 (out
+j
)[1] = (uint
)(i
);
767 static void generate_lineloop_uint_first2last(
771 uint
*out
= (uint
*)_out
;
774 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
775 (out
+j
)[0] = (uint
)(i
+1);
776 (out
+j
)[1] = (uint
)(i
);
778 (out
+j
)[0] = (uint
)(0);
779 (out
+j
)[1] = (uint
)(i
);
781 static void generate_tris_uint_first2last(
785 uint
*out
= (uint
*)_out
;
788 for (i
= 0; i
< nr
; i
+=3) {
789 (out
+i
)[0] = (uint
)(i
+1);
790 (out
+i
)[1] = (uint
)(i
+2);
791 (out
+i
)[2] = (uint
)(i
);
794 static void generate_tristrip_uint_first2last(
798 uint
*out
= (uint
*)_out
;
801 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
802 (out
+j
)[0] = (uint
)(i
+1+(i
&1));
803 (out
+j
)[1] = (uint
)(i
+2-(i
&1));
804 (out
+j
)[2] = (uint
)(i
);
807 static void generate_trifan_uint_first2last(
811 uint
*out
= (uint
*)_out
;
814 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
815 (out
+j
)[0] = (uint
)(i
+1);
816 (out
+j
)[1] = (uint
)(i
+2);
817 (out
+j
)[2] = (uint
)(0);
820 static void generate_quads_uint_first2last(
824 uint
*out
= (uint
*)_out
;
827 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
828 (out
+j
+0)[0] = (uint
)(i
+1);
829 (out
+j
+0)[1] = (uint
)(i
+3);
830 (out
+j
+0)[2] = (uint
)(i
+0);
831 (out
+j
+3)[0] = (uint
)(i
+2);
832 (out
+j
+3)[1] = (uint
)(i
+3);
833 (out
+j
+3)[2] = (uint
)(i
+1);
836 static void generate_quadstrip_uint_first2last(
840 uint
*out
= (uint
*)_out
;
843 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
844 (out
+j
+0)[0] = (uint
)(i
+0);
845 (out
+j
+0)[1] = (uint
)(i
+3);
846 (out
+j
+0)[2] = (uint
)(i
+2);
847 (out
+j
+3)[0] = (uint
)(i
+1);
848 (out
+j
+3)[1] = (uint
)(i
+3);
849 (out
+j
+3)[2] = (uint
)(i
+0);
852 static void generate_polygon_uint_first2last(
856 uint
*out
= (uint
*)_out
;
859 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
860 (out
+j
)[0] = (uint
)(i
+1);
861 (out
+j
)[1] = (uint
)(i
+2);
862 (out
+j
)[2] = (uint
)(0);
865 static void generate_points_uint_last2first(
869 uint
*out
= (uint
*)_out
;
872 for (i
= 0; i
< nr
; i
++) {
873 (out
+i
)[0] = (uint
)(i
);
876 static void generate_lines_uint_last2first(
880 uint
*out
= (uint
*)_out
;
883 for (i
= 0; i
< nr
; i
+=2) {
884 (out
+i
)[0] = (uint
)(i
+1);
885 (out
+i
)[1] = (uint
)(i
);
888 static void generate_linestrip_uint_last2first(
892 uint
*out
= (uint
*)_out
;
895 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
896 (out
+j
)[0] = (uint
)(i
+1);
897 (out
+j
)[1] = (uint
)(i
);
900 static void generate_lineloop_uint_last2first(
904 uint
*out
= (uint
*)_out
;
907 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
908 (out
+j
)[0] = (uint
)(i
+1);
909 (out
+j
)[1] = (uint
)(i
);
911 (out
+j
)[0] = (uint
)(0);
912 (out
+j
)[1] = (uint
)(i
);
914 static void generate_tris_uint_last2first(
918 uint
*out
= (uint
*)_out
;
921 for (i
= 0; i
< nr
; i
+=3) {
922 (out
+i
)[0] = (uint
)(i
+2);
923 (out
+i
)[1] = (uint
)(i
);
924 (out
+i
)[2] = (uint
)(i
+1);
927 static void generate_tristrip_uint_last2first(
931 uint
*out
= (uint
*)_out
;
934 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
935 (out
+j
)[0] = (uint
)(i
+2);
936 (out
+j
)[1] = (uint
)(i
+(i
&1));
937 (out
+j
)[2] = (uint
)(i
+1-(i
&1));
940 static void generate_trifan_uint_last2first(
944 uint
*out
= (uint
*)_out
;
947 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
948 (out
+j
)[0] = (uint
)(i
+2);
949 (out
+j
)[1] = (uint
)(0);
950 (out
+j
)[2] = (uint
)(i
+1);
953 static void generate_quads_uint_last2first(
957 uint
*out
= (uint
*)_out
;
960 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
961 (out
+j
+0)[0] = (uint
)(i
+3);
962 (out
+j
+0)[1] = (uint
)(i
+0);
963 (out
+j
+0)[2] = (uint
)(i
+1);
964 (out
+j
+3)[0] = (uint
)(i
+3);
965 (out
+j
+3)[1] = (uint
)(i
+1);
966 (out
+j
+3)[2] = (uint
)(i
+2);
969 static void generate_quadstrip_uint_last2first(
973 uint
*out
= (uint
*)_out
;
976 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
977 (out
+j
+0)[0] = (uint
)(i
+3);
978 (out
+j
+0)[1] = (uint
)(i
+2);
979 (out
+j
+0)[2] = (uint
)(i
+0);
980 (out
+j
+3)[0] = (uint
)(i
+3);
981 (out
+j
+3)[1] = (uint
)(i
+0);
982 (out
+j
+3)[2] = (uint
)(i
+1);
985 static void generate_polygon_uint_last2first(
989 uint
*out
= (uint
*)_out
;
992 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
993 (out
+j
)[0] = (uint
)(0);
994 (out
+j
)[1] = (uint
)(i
+1);
995 (out
+j
)[2] = (uint
)(i
+2);
998 static void generate_points_uint_last2last(
1002 uint
*out
= (uint
*)_out
;
1005 for (i
= 0; i
< nr
; i
++) {
1006 (out
+i
)[0] = (uint
)(i
);
1009 static void generate_lines_uint_last2last(
1013 uint
*out
= (uint
*)_out
;
1016 for (i
= 0; i
< nr
; i
+=2) {
1017 (out
+i
)[0] = (uint
)(i
);
1018 (out
+i
)[1] = (uint
)(i
+1);
1021 static void generate_linestrip_uint_last2last(
1025 uint
*out
= (uint
*)_out
;
1028 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
1029 (out
+j
)[0] = (uint
)(i
);
1030 (out
+j
)[1] = (uint
)(i
+1);
1033 static void generate_lineloop_uint_last2last(
1037 uint
*out
= (uint
*)_out
;
1040 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
1041 (out
+j
)[0] = (uint
)(i
);
1042 (out
+j
)[1] = (uint
)(i
+1);
1044 (out
+j
)[0] = (uint
)(i
);
1045 (out
+j
)[1] = (uint
)(0);
1047 static void generate_tris_uint_last2last(
1051 uint
*out
= (uint
*)_out
;
1054 for (i
= 0; i
< nr
; i
+=3) {
1055 (out
+i
)[0] = (uint
)(i
);
1056 (out
+i
)[1] = (uint
)(i
+1);
1057 (out
+i
)[2] = (uint
)(i
+2);
1060 static void generate_tristrip_uint_last2last(
1064 uint
*out
= (uint
*)_out
;
1067 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
1068 (out
+j
)[0] = (uint
)(i
+(i
&1));
1069 (out
+j
)[1] = (uint
)(i
+1-(i
&1));
1070 (out
+j
)[2] = (uint
)(i
+2);
1073 static void generate_trifan_uint_last2last(
1077 uint
*out
= (uint
*)_out
;
1080 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
1081 (out
+j
)[0] = (uint
)(0);
1082 (out
+j
)[1] = (uint
)(i
+1);
1083 (out
+j
)[2] = (uint
)(i
+2);
1086 static void generate_quads_uint_last2last(
1090 uint
*out
= (uint
*)_out
;
1093 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
1094 (out
+j
+0)[0] = (uint
)(i
+0);
1095 (out
+j
+0)[1] = (uint
)(i
+1);
1096 (out
+j
+0)[2] = (uint
)(i
+3);
1097 (out
+j
+3)[0] = (uint
)(i
+1);
1098 (out
+j
+3)[1] = (uint
)(i
+2);
1099 (out
+j
+3)[2] = (uint
)(i
+3);
1102 static void generate_quadstrip_uint_last2last(
1106 uint
*out
= (uint
*)_out
;
1109 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
1110 (out
+j
+0)[0] = (uint
)(i
+2);
1111 (out
+j
+0)[1] = (uint
)(i
+0);
1112 (out
+j
+0)[2] = (uint
)(i
+3);
1113 (out
+j
+3)[0] = (uint
)(i
+0);
1114 (out
+j
+3)[1] = (uint
)(i
+1);
1115 (out
+j
+3)[2] = (uint
)(i
+3);
1118 static void generate_polygon_uint_last2last(
1122 uint
*out
= (uint
*)_out
;
1125 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
1126 (out
+j
)[0] = (uint
)(i
+1);
1127 (out
+j
)[1] = (uint
)(i
+2);
1128 (out
+j
)[2] = (uint
)(0);
1131 static void translate_points_ubyte2ushort_first2first(
1136 const ubyte
*in
= (const ubyte
*)_in
;
1137 ushort
*out
= (ushort
*)_out
;
1140 for (i
= 0; i
< nr
; i
++) {
1141 (out
+i
)[0] = (ushort
)in
[i
];
1144 static void translate_lines_ubyte2ushort_first2first(
1149 const ubyte
*in
= (const ubyte
*)_in
;
1150 ushort
*out
= (ushort
*)_out
;
1153 for (i
= 0; i
< nr
; i
+=2) {
1154 (out
+i
)[0] = (ushort
)in
[i
];
1155 (out
+i
)[1] = (ushort
)in
[i
+1];
1158 static void translate_linestrip_ubyte2ushort_first2first(
1163 const ubyte
*in
= (const ubyte
*)_in
;
1164 ushort
*out
= (ushort
*)_out
;
1167 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
1168 (out
+j
)[0] = (ushort
)in
[i
];
1169 (out
+j
)[1] = (ushort
)in
[i
+1];
1172 static void translate_lineloop_ubyte2ushort_first2first(
1177 const ubyte
*in
= (const ubyte
*)_in
;
1178 ushort
*out
= (ushort
*)_out
;
1181 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
1182 (out
+j
)[0] = (ushort
)in
[i
];
1183 (out
+j
)[1] = (ushort
)in
[i
+1];
1185 (out
+j
)[0] = (ushort
)in
[i
];
1186 (out
+j
)[1] = (ushort
)in
[0];
1188 static void translate_tris_ubyte2ushort_first2first(
1193 const ubyte
*in
= (const ubyte
*)_in
;
1194 ushort
*out
= (ushort
*)_out
;
1197 for (i
= 0; i
< nr
; i
+=3) {
1198 (out
+i
)[0] = (ushort
)in
[i
];
1199 (out
+i
)[1] = (ushort
)in
[i
+1];
1200 (out
+i
)[2] = (ushort
)in
[i
+2];
1203 static void translate_tristrip_ubyte2ushort_first2first(
1208 const ubyte
*in
= (const ubyte
*)_in
;
1209 ushort
*out
= (ushort
*)_out
;
1212 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
1213 (out
+j
)[0] = (ushort
)in
[i
];
1214 (out
+j
)[1] = (ushort
)in
[i
+1+(i
&1)];
1215 (out
+j
)[2] = (ushort
)in
[i
+2-(i
&1)];
1218 static void translate_trifan_ubyte2ushort_first2first(
1223 const ubyte
*in
= (const ubyte
*)_in
;
1224 ushort
*out
= (ushort
*)_out
;
1227 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
1228 (out
+j
)[0] = (ushort
)in
[0];
1229 (out
+j
)[1] = (ushort
)in
[i
+1];
1230 (out
+j
)[2] = (ushort
)in
[i
+2];
1233 static void translate_quads_ubyte2ushort_first2first(
1238 const ubyte
*in
= (const ubyte
*)_in
;
1239 ushort
*out
= (ushort
*)_out
;
1242 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
1243 (out
+j
+0)[0] = (ushort
)in
[i
+0];
1244 (out
+j
+0)[1] = (ushort
)in
[i
+1];
1245 (out
+j
+0)[2] = (ushort
)in
[i
+3];
1246 (out
+j
+3)[0] = (ushort
)in
[i
+1];
1247 (out
+j
+3)[1] = (ushort
)in
[i
+2];
1248 (out
+j
+3)[2] = (ushort
)in
[i
+3];
1251 static void translate_quadstrip_ubyte2ushort_first2first(
1256 const ubyte
*in
= (const ubyte
*)_in
;
1257 ushort
*out
= (ushort
*)_out
;
1260 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
1261 (out
+j
+0)[0] = (ushort
)in
[i
+2];
1262 (out
+j
+0)[1] = (ushort
)in
[i
+0];
1263 (out
+j
+0)[2] = (ushort
)in
[i
+3];
1264 (out
+j
+3)[0] = (ushort
)in
[i
+0];
1265 (out
+j
+3)[1] = (ushort
)in
[i
+1];
1266 (out
+j
+3)[2] = (ushort
)in
[i
+3];
1269 static void translate_polygon_ubyte2ushort_first2first(
1274 const ubyte
*in
= (const ubyte
*)_in
;
1275 ushort
*out
= (ushort
*)_out
;
1278 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
1279 (out
+j
)[0] = (ushort
)in
[0];
1280 (out
+j
)[1] = (ushort
)in
[i
+1];
1281 (out
+j
)[2] = (ushort
)in
[i
+2];
1284 static void translate_points_ubyte2ushort_first2last(
1289 const ubyte
*in
= (const ubyte
*)_in
;
1290 ushort
*out
= (ushort
*)_out
;
1293 for (i
= 0; i
< nr
; i
++) {
1294 (out
+i
)[0] = (ushort
)in
[i
];
1297 static void translate_lines_ubyte2ushort_first2last(
1302 const ubyte
*in
= (const ubyte
*)_in
;
1303 ushort
*out
= (ushort
*)_out
;
1306 for (i
= 0; i
< nr
; i
+=2) {
1307 (out
+i
)[0] = (ushort
)in
[i
+1];
1308 (out
+i
)[1] = (ushort
)in
[i
];
1311 static void translate_linestrip_ubyte2ushort_first2last(
1316 const ubyte
*in
= (const ubyte
*)_in
;
1317 ushort
*out
= (ushort
*)_out
;
1320 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
1321 (out
+j
)[0] = (ushort
)in
[i
+1];
1322 (out
+j
)[1] = (ushort
)in
[i
];
1325 static void translate_lineloop_ubyte2ushort_first2last(
1330 const ubyte
*in
= (const ubyte
*)_in
;
1331 ushort
*out
= (ushort
*)_out
;
1334 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
1335 (out
+j
)[0] = (ushort
)in
[i
+1];
1336 (out
+j
)[1] = (ushort
)in
[i
];
1338 (out
+j
)[0] = (ushort
)in
[0];
1339 (out
+j
)[1] = (ushort
)in
[i
];
1341 static void translate_tris_ubyte2ushort_first2last(
1346 const ubyte
*in
= (const ubyte
*)_in
;
1347 ushort
*out
= (ushort
*)_out
;
1350 for (i
= 0; i
< nr
; i
+=3) {
1351 (out
+i
)[0] = (ushort
)in
[i
+1];
1352 (out
+i
)[1] = (ushort
)in
[i
+2];
1353 (out
+i
)[2] = (ushort
)in
[i
];
1356 static void translate_tristrip_ubyte2ushort_first2last(
1361 const ubyte
*in
= (const ubyte
*)_in
;
1362 ushort
*out
= (ushort
*)_out
;
1365 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
1366 (out
+j
)[0] = (ushort
)in
[i
+1+(i
&1)];
1367 (out
+j
)[1] = (ushort
)in
[i
+2-(i
&1)];
1368 (out
+j
)[2] = (ushort
)in
[i
];
1371 static void translate_trifan_ubyte2ushort_first2last(
1376 const ubyte
*in
= (const ubyte
*)_in
;
1377 ushort
*out
= (ushort
*)_out
;
1380 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
1381 (out
+j
)[0] = (ushort
)in
[i
+1];
1382 (out
+j
)[1] = (ushort
)in
[i
+2];
1383 (out
+j
)[2] = (ushort
)in
[0];
1386 static void translate_quads_ubyte2ushort_first2last(
1391 const ubyte
*in
= (const ubyte
*)_in
;
1392 ushort
*out
= (ushort
*)_out
;
1395 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
1396 (out
+j
+0)[0] = (ushort
)in
[i
+1];
1397 (out
+j
+0)[1] = (ushort
)in
[i
+3];
1398 (out
+j
+0)[2] = (ushort
)in
[i
+0];
1399 (out
+j
+3)[0] = (ushort
)in
[i
+2];
1400 (out
+j
+3)[1] = (ushort
)in
[i
+3];
1401 (out
+j
+3)[2] = (ushort
)in
[i
+1];
1404 static void translate_quadstrip_ubyte2ushort_first2last(
1409 const ubyte
*in
= (const ubyte
*)_in
;
1410 ushort
*out
= (ushort
*)_out
;
1413 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
1414 (out
+j
+0)[0] = (ushort
)in
[i
+0];
1415 (out
+j
+0)[1] = (ushort
)in
[i
+3];
1416 (out
+j
+0)[2] = (ushort
)in
[i
+2];
1417 (out
+j
+3)[0] = (ushort
)in
[i
+1];
1418 (out
+j
+3)[1] = (ushort
)in
[i
+3];
1419 (out
+j
+3)[2] = (ushort
)in
[i
+0];
1422 static void translate_polygon_ubyte2ushort_first2last(
1427 const ubyte
*in
= (const ubyte
*)_in
;
1428 ushort
*out
= (ushort
*)_out
;
1431 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
1432 (out
+j
)[0] = (ushort
)in
[i
+1];
1433 (out
+j
)[1] = (ushort
)in
[i
+2];
1434 (out
+j
)[2] = (ushort
)in
[0];
1437 static void translate_points_ubyte2ushort_last2first(
1442 const ubyte
*in
= (const ubyte
*)_in
;
1443 ushort
*out
= (ushort
*)_out
;
1446 for (i
= 0; i
< nr
; i
++) {
1447 (out
+i
)[0] = (ushort
)in
[i
];
1450 static void translate_lines_ubyte2ushort_last2first(
1455 const ubyte
*in
= (const ubyte
*)_in
;
1456 ushort
*out
= (ushort
*)_out
;
1459 for (i
= 0; i
< nr
; i
+=2) {
1460 (out
+i
)[0] = (ushort
)in
[i
+1];
1461 (out
+i
)[1] = (ushort
)in
[i
];
1464 static void translate_linestrip_ubyte2ushort_last2first(
1469 const ubyte
*in
= (const ubyte
*)_in
;
1470 ushort
*out
= (ushort
*)_out
;
1473 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
1474 (out
+j
)[0] = (ushort
)in
[i
+1];
1475 (out
+j
)[1] = (ushort
)in
[i
];
1478 static void translate_lineloop_ubyte2ushort_last2first(
1483 const ubyte
*in
= (const ubyte
*)_in
;
1484 ushort
*out
= (ushort
*)_out
;
1487 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
1488 (out
+j
)[0] = (ushort
)in
[i
+1];
1489 (out
+j
)[1] = (ushort
)in
[i
];
1491 (out
+j
)[0] = (ushort
)in
[0];
1492 (out
+j
)[1] = (ushort
)in
[i
];
1494 static void translate_tris_ubyte2ushort_last2first(
1499 const ubyte
*in
= (const ubyte
*)_in
;
1500 ushort
*out
= (ushort
*)_out
;
1503 for (i
= 0; i
< nr
; i
+=3) {
1504 (out
+i
)[0] = (ushort
)in
[i
+2];
1505 (out
+i
)[1] = (ushort
)in
[i
];
1506 (out
+i
)[2] = (ushort
)in
[i
+1];
1509 static void translate_tristrip_ubyte2ushort_last2first(
1514 const ubyte
*in
= (const ubyte
*)_in
;
1515 ushort
*out
= (ushort
*)_out
;
1518 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
1519 (out
+j
)[0] = (ushort
)in
[i
+2];
1520 (out
+j
)[1] = (ushort
)in
[i
+(i
&1)];
1521 (out
+j
)[2] = (ushort
)in
[i
+1-(i
&1)];
1524 static void translate_trifan_ubyte2ushort_last2first(
1529 const ubyte
*in
= (const ubyte
*)_in
;
1530 ushort
*out
= (ushort
*)_out
;
1533 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
1534 (out
+j
)[0] = (ushort
)in
[i
+2];
1535 (out
+j
)[1] = (ushort
)in
[0];
1536 (out
+j
)[2] = (ushort
)in
[i
+1];
1539 static void translate_quads_ubyte2ushort_last2first(
1544 const ubyte
*in
= (const ubyte
*)_in
;
1545 ushort
*out
= (ushort
*)_out
;
1548 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
1549 (out
+j
+0)[0] = (ushort
)in
[i
+3];
1550 (out
+j
+0)[1] = (ushort
)in
[i
+0];
1551 (out
+j
+0)[2] = (ushort
)in
[i
+1];
1552 (out
+j
+3)[0] = (ushort
)in
[i
+3];
1553 (out
+j
+3)[1] = (ushort
)in
[i
+1];
1554 (out
+j
+3)[2] = (ushort
)in
[i
+2];
1557 static void translate_quadstrip_ubyte2ushort_last2first(
1562 const ubyte
*in
= (const ubyte
*)_in
;
1563 ushort
*out
= (ushort
*)_out
;
1566 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
1567 (out
+j
+0)[0] = (ushort
)in
[i
+3];
1568 (out
+j
+0)[1] = (ushort
)in
[i
+2];
1569 (out
+j
+0)[2] = (ushort
)in
[i
+0];
1570 (out
+j
+3)[0] = (ushort
)in
[i
+3];
1571 (out
+j
+3)[1] = (ushort
)in
[i
+0];
1572 (out
+j
+3)[2] = (ushort
)in
[i
+1];
1575 static void translate_polygon_ubyte2ushort_last2first(
1580 const ubyte
*in
= (const ubyte
*)_in
;
1581 ushort
*out
= (ushort
*)_out
;
1584 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
1585 (out
+j
)[0] = (ushort
)in
[0];
1586 (out
+j
)[1] = (ushort
)in
[i
+1];
1587 (out
+j
)[2] = (ushort
)in
[i
+2];
1590 static void translate_points_ubyte2ushort_last2last(
1595 const ubyte
*in
= (const ubyte
*)_in
;
1596 ushort
*out
= (ushort
*)_out
;
1599 for (i
= 0; i
< nr
; i
++) {
1600 (out
+i
)[0] = (ushort
)in
[i
];
1603 static void translate_lines_ubyte2ushort_last2last(
1608 const ubyte
*in
= (const ubyte
*)_in
;
1609 ushort
*out
= (ushort
*)_out
;
1612 for (i
= 0; i
< nr
; i
+=2) {
1613 (out
+i
)[0] = (ushort
)in
[i
];
1614 (out
+i
)[1] = (ushort
)in
[i
+1];
1617 static void translate_linestrip_ubyte2ushort_last2last(
1622 const ubyte
*in
= (const ubyte
*)_in
;
1623 ushort
*out
= (ushort
*)_out
;
1626 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
1627 (out
+j
)[0] = (ushort
)in
[i
];
1628 (out
+j
)[1] = (ushort
)in
[i
+1];
1631 static void translate_lineloop_ubyte2ushort_last2last(
1636 const ubyte
*in
= (const ubyte
*)_in
;
1637 ushort
*out
= (ushort
*)_out
;
1640 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
1641 (out
+j
)[0] = (ushort
)in
[i
];
1642 (out
+j
)[1] = (ushort
)in
[i
+1];
1644 (out
+j
)[0] = (ushort
)in
[i
];
1645 (out
+j
)[1] = (ushort
)in
[0];
1647 static void translate_tris_ubyte2ushort_last2last(
1652 const ubyte
*in
= (const ubyte
*)_in
;
1653 ushort
*out
= (ushort
*)_out
;
1656 for (i
= 0; i
< nr
; i
+=3) {
1657 (out
+i
)[0] = (ushort
)in
[i
];
1658 (out
+i
)[1] = (ushort
)in
[i
+1];
1659 (out
+i
)[2] = (ushort
)in
[i
+2];
1662 static void translate_tristrip_ubyte2ushort_last2last(
1667 const ubyte
*in
= (const ubyte
*)_in
;
1668 ushort
*out
= (ushort
*)_out
;
1671 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
1672 (out
+j
)[0] = (ushort
)in
[i
+(i
&1)];
1673 (out
+j
)[1] = (ushort
)in
[i
+1-(i
&1)];
1674 (out
+j
)[2] = (ushort
)in
[i
+2];
1677 static void translate_trifan_ubyte2ushort_last2last(
1682 const ubyte
*in
= (const ubyte
*)_in
;
1683 ushort
*out
= (ushort
*)_out
;
1686 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
1687 (out
+j
)[0] = (ushort
)in
[0];
1688 (out
+j
)[1] = (ushort
)in
[i
+1];
1689 (out
+j
)[2] = (ushort
)in
[i
+2];
1692 static void translate_quads_ubyte2ushort_last2last(
1697 const ubyte
*in
= (const ubyte
*)_in
;
1698 ushort
*out
= (ushort
*)_out
;
1701 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
1702 (out
+j
+0)[0] = (ushort
)in
[i
+0];
1703 (out
+j
+0)[1] = (ushort
)in
[i
+1];
1704 (out
+j
+0)[2] = (ushort
)in
[i
+3];
1705 (out
+j
+3)[0] = (ushort
)in
[i
+1];
1706 (out
+j
+3)[1] = (ushort
)in
[i
+2];
1707 (out
+j
+3)[2] = (ushort
)in
[i
+3];
1710 static void translate_quadstrip_ubyte2ushort_last2last(
1715 const ubyte
*in
= (const ubyte
*)_in
;
1716 ushort
*out
= (ushort
*)_out
;
1719 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
1720 (out
+j
+0)[0] = (ushort
)in
[i
+2];
1721 (out
+j
+0)[1] = (ushort
)in
[i
+0];
1722 (out
+j
+0)[2] = (ushort
)in
[i
+3];
1723 (out
+j
+3)[0] = (ushort
)in
[i
+0];
1724 (out
+j
+3)[1] = (ushort
)in
[i
+1];
1725 (out
+j
+3)[2] = (ushort
)in
[i
+3];
1728 static void translate_polygon_ubyte2ushort_last2last(
1733 const ubyte
*in
= (const ubyte
*)_in
;
1734 ushort
*out
= (ushort
*)_out
;
1737 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
1738 (out
+j
)[0] = (ushort
)in
[i
+1];
1739 (out
+j
)[1] = (ushort
)in
[i
+2];
1740 (out
+j
)[2] = (ushort
)in
[0];
1743 static void translate_points_ubyte2uint_first2first(
1748 const ubyte
*in
= (const ubyte
*)_in
;
1749 uint
*out
= (uint
*)_out
;
1752 for (i
= 0; i
< nr
; i
++) {
1753 (out
+i
)[0] = (uint
)in
[i
];
1756 static void translate_lines_ubyte2uint_first2first(
1761 const ubyte
*in
= (const ubyte
*)_in
;
1762 uint
*out
= (uint
*)_out
;
1765 for (i
= 0; i
< nr
; i
+=2) {
1766 (out
+i
)[0] = (uint
)in
[i
];
1767 (out
+i
)[1] = (uint
)in
[i
+1];
1770 static void translate_linestrip_ubyte2uint_first2first(
1775 const ubyte
*in
= (const ubyte
*)_in
;
1776 uint
*out
= (uint
*)_out
;
1779 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
1780 (out
+j
)[0] = (uint
)in
[i
];
1781 (out
+j
)[1] = (uint
)in
[i
+1];
1784 static void translate_lineloop_ubyte2uint_first2first(
1789 const ubyte
*in
= (const ubyte
*)_in
;
1790 uint
*out
= (uint
*)_out
;
1793 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
1794 (out
+j
)[0] = (uint
)in
[i
];
1795 (out
+j
)[1] = (uint
)in
[i
+1];
1797 (out
+j
)[0] = (uint
)in
[i
];
1798 (out
+j
)[1] = (uint
)in
[0];
1800 static void translate_tris_ubyte2uint_first2first(
1805 const ubyte
*in
= (const ubyte
*)_in
;
1806 uint
*out
= (uint
*)_out
;
1809 for (i
= 0; i
< nr
; i
+=3) {
1810 (out
+i
)[0] = (uint
)in
[i
];
1811 (out
+i
)[1] = (uint
)in
[i
+1];
1812 (out
+i
)[2] = (uint
)in
[i
+2];
1815 static void translate_tristrip_ubyte2uint_first2first(
1820 const ubyte
*in
= (const ubyte
*)_in
;
1821 uint
*out
= (uint
*)_out
;
1824 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
1825 (out
+j
)[0] = (uint
)in
[i
];
1826 (out
+j
)[1] = (uint
)in
[i
+1+(i
&1)];
1827 (out
+j
)[2] = (uint
)in
[i
+2-(i
&1)];
1830 static void translate_trifan_ubyte2uint_first2first(
1835 const ubyte
*in
= (const ubyte
*)_in
;
1836 uint
*out
= (uint
*)_out
;
1839 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
1840 (out
+j
)[0] = (uint
)in
[0];
1841 (out
+j
)[1] = (uint
)in
[i
+1];
1842 (out
+j
)[2] = (uint
)in
[i
+2];
1845 static void translate_quads_ubyte2uint_first2first(
1850 const ubyte
*in
= (const ubyte
*)_in
;
1851 uint
*out
= (uint
*)_out
;
1854 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
1855 (out
+j
+0)[0] = (uint
)in
[i
+0];
1856 (out
+j
+0)[1] = (uint
)in
[i
+1];
1857 (out
+j
+0)[2] = (uint
)in
[i
+3];
1858 (out
+j
+3)[0] = (uint
)in
[i
+1];
1859 (out
+j
+3)[1] = (uint
)in
[i
+2];
1860 (out
+j
+3)[2] = (uint
)in
[i
+3];
1863 static void translate_quadstrip_ubyte2uint_first2first(
1868 const ubyte
*in
= (const ubyte
*)_in
;
1869 uint
*out
= (uint
*)_out
;
1872 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
1873 (out
+j
+0)[0] = (uint
)in
[i
+2];
1874 (out
+j
+0)[1] = (uint
)in
[i
+0];
1875 (out
+j
+0)[2] = (uint
)in
[i
+3];
1876 (out
+j
+3)[0] = (uint
)in
[i
+0];
1877 (out
+j
+3)[1] = (uint
)in
[i
+1];
1878 (out
+j
+3)[2] = (uint
)in
[i
+3];
1881 static void translate_polygon_ubyte2uint_first2first(
1886 const ubyte
*in
= (const ubyte
*)_in
;
1887 uint
*out
= (uint
*)_out
;
1890 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
1891 (out
+j
)[0] = (uint
)in
[0];
1892 (out
+j
)[1] = (uint
)in
[i
+1];
1893 (out
+j
)[2] = (uint
)in
[i
+2];
1896 static void translate_points_ubyte2uint_first2last(
1901 const ubyte
*in
= (const ubyte
*)_in
;
1902 uint
*out
= (uint
*)_out
;
1905 for (i
= 0; i
< nr
; i
++) {
1906 (out
+i
)[0] = (uint
)in
[i
];
1909 static void translate_lines_ubyte2uint_first2last(
1914 const ubyte
*in
= (const ubyte
*)_in
;
1915 uint
*out
= (uint
*)_out
;
1918 for (i
= 0; i
< nr
; i
+=2) {
1919 (out
+i
)[0] = (uint
)in
[i
+1];
1920 (out
+i
)[1] = (uint
)in
[i
];
1923 static void translate_linestrip_ubyte2uint_first2last(
1928 const ubyte
*in
= (const ubyte
*)_in
;
1929 uint
*out
= (uint
*)_out
;
1932 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
1933 (out
+j
)[0] = (uint
)in
[i
+1];
1934 (out
+j
)[1] = (uint
)in
[i
];
1937 static void translate_lineloop_ubyte2uint_first2last(
1942 const ubyte
*in
= (const ubyte
*)_in
;
1943 uint
*out
= (uint
*)_out
;
1946 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
1947 (out
+j
)[0] = (uint
)in
[i
+1];
1948 (out
+j
)[1] = (uint
)in
[i
];
1950 (out
+j
)[0] = (uint
)in
[0];
1951 (out
+j
)[1] = (uint
)in
[i
];
1953 static void translate_tris_ubyte2uint_first2last(
1958 const ubyte
*in
= (const ubyte
*)_in
;
1959 uint
*out
= (uint
*)_out
;
1962 for (i
= 0; i
< nr
; i
+=3) {
1963 (out
+i
)[0] = (uint
)in
[i
+1];
1964 (out
+i
)[1] = (uint
)in
[i
+2];
1965 (out
+i
)[2] = (uint
)in
[i
];
1968 static void translate_tristrip_ubyte2uint_first2last(
1973 const ubyte
*in
= (const ubyte
*)_in
;
1974 uint
*out
= (uint
*)_out
;
1977 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
1978 (out
+j
)[0] = (uint
)in
[i
+1+(i
&1)];
1979 (out
+j
)[1] = (uint
)in
[i
+2-(i
&1)];
1980 (out
+j
)[2] = (uint
)in
[i
];
1983 static void translate_trifan_ubyte2uint_first2last(
1988 const ubyte
*in
= (const ubyte
*)_in
;
1989 uint
*out
= (uint
*)_out
;
1992 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
1993 (out
+j
)[0] = (uint
)in
[i
+1];
1994 (out
+j
)[1] = (uint
)in
[i
+2];
1995 (out
+j
)[2] = (uint
)in
[0];
1998 static void translate_quads_ubyte2uint_first2last(
2003 const ubyte
*in
= (const ubyte
*)_in
;
2004 uint
*out
= (uint
*)_out
;
2007 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
2008 (out
+j
+0)[0] = (uint
)in
[i
+1];
2009 (out
+j
+0)[1] = (uint
)in
[i
+3];
2010 (out
+j
+0)[2] = (uint
)in
[i
+0];
2011 (out
+j
+3)[0] = (uint
)in
[i
+2];
2012 (out
+j
+3)[1] = (uint
)in
[i
+3];
2013 (out
+j
+3)[2] = (uint
)in
[i
+1];
2016 static void translate_quadstrip_ubyte2uint_first2last(
2021 const ubyte
*in
= (const ubyte
*)_in
;
2022 uint
*out
= (uint
*)_out
;
2025 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
2026 (out
+j
+0)[0] = (uint
)in
[i
+0];
2027 (out
+j
+0)[1] = (uint
)in
[i
+3];
2028 (out
+j
+0)[2] = (uint
)in
[i
+2];
2029 (out
+j
+3)[0] = (uint
)in
[i
+1];
2030 (out
+j
+3)[1] = (uint
)in
[i
+3];
2031 (out
+j
+3)[2] = (uint
)in
[i
+0];
2034 static void translate_polygon_ubyte2uint_first2last(
2039 const ubyte
*in
= (const ubyte
*)_in
;
2040 uint
*out
= (uint
*)_out
;
2043 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
2044 (out
+j
)[0] = (uint
)in
[i
+1];
2045 (out
+j
)[1] = (uint
)in
[i
+2];
2046 (out
+j
)[2] = (uint
)in
[0];
2049 static void translate_points_ubyte2uint_last2first(
2054 const ubyte
*in
= (const ubyte
*)_in
;
2055 uint
*out
= (uint
*)_out
;
2058 for (i
= 0; i
< nr
; i
++) {
2059 (out
+i
)[0] = (uint
)in
[i
];
2062 static void translate_lines_ubyte2uint_last2first(
2067 const ubyte
*in
= (const ubyte
*)_in
;
2068 uint
*out
= (uint
*)_out
;
2071 for (i
= 0; i
< nr
; i
+=2) {
2072 (out
+i
)[0] = (uint
)in
[i
+1];
2073 (out
+i
)[1] = (uint
)in
[i
];
2076 static void translate_linestrip_ubyte2uint_last2first(
2081 const ubyte
*in
= (const ubyte
*)_in
;
2082 uint
*out
= (uint
*)_out
;
2085 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
2086 (out
+j
)[0] = (uint
)in
[i
+1];
2087 (out
+j
)[1] = (uint
)in
[i
];
2090 static void translate_lineloop_ubyte2uint_last2first(
2095 const ubyte
*in
= (const ubyte
*)_in
;
2096 uint
*out
= (uint
*)_out
;
2099 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
2100 (out
+j
)[0] = (uint
)in
[i
+1];
2101 (out
+j
)[1] = (uint
)in
[i
];
2103 (out
+j
)[0] = (uint
)in
[0];
2104 (out
+j
)[1] = (uint
)in
[i
];
2106 static void translate_tris_ubyte2uint_last2first(
2111 const ubyte
*in
= (const ubyte
*)_in
;
2112 uint
*out
= (uint
*)_out
;
2115 for (i
= 0; i
< nr
; i
+=3) {
2116 (out
+i
)[0] = (uint
)in
[i
+2];
2117 (out
+i
)[1] = (uint
)in
[i
];
2118 (out
+i
)[2] = (uint
)in
[i
+1];
2121 static void translate_tristrip_ubyte2uint_last2first(
2126 const ubyte
*in
= (const ubyte
*)_in
;
2127 uint
*out
= (uint
*)_out
;
2130 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
2131 (out
+j
)[0] = (uint
)in
[i
+2];
2132 (out
+j
)[1] = (uint
)in
[i
+(i
&1)];
2133 (out
+j
)[2] = (uint
)in
[i
+1-(i
&1)];
2136 static void translate_trifan_ubyte2uint_last2first(
2141 const ubyte
*in
= (const ubyte
*)_in
;
2142 uint
*out
= (uint
*)_out
;
2145 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
2146 (out
+j
)[0] = (uint
)in
[i
+2];
2147 (out
+j
)[1] = (uint
)in
[0];
2148 (out
+j
)[2] = (uint
)in
[i
+1];
2151 static void translate_quads_ubyte2uint_last2first(
2156 const ubyte
*in
= (const ubyte
*)_in
;
2157 uint
*out
= (uint
*)_out
;
2160 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
2161 (out
+j
+0)[0] = (uint
)in
[i
+3];
2162 (out
+j
+0)[1] = (uint
)in
[i
+0];
2163 (out
+j
+0)[2] = (uint
)in
[i
+1];
2164 (out
+j
+3)[0] = (uint
)in
[i
+3];
2165 (out
+j
+3)[1] = (uint
)in
[i
+1];
2166 (out
+j
+3)[2] = (uint
)in
[i
+2];
2169 static void translate_quadstrip_ubyte2uint_last2first(
2174 const ubyte
*in
= (const ubyte
*)_in
;
2175 uint
*out
= (uint
*)_out
;
2178 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
2179 (out
+j
+0)[0] = (uint
)in
[i
+3];
2180 (out
+j
+0)[1] = (uint
)in
[i
+2];
2181 (out
+j
+0)[2] = (uint
)in
[i
+0];
2182 (out
+j
+3)[0] = (uint
)in
[i
+3];
2183 (out
+j
+3)[1] = (uint
)in
[i
+0];
2184 (out
+j
+3)[2] = (uint
)in
[i
+1];
2187 static void translate_polygon_ubyte2uint_last2first(
2192 const ubyte
*in
= (const ubyte
*)_in
;
2193 uint
*out
= (uint
*)_out
;
2196 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
2197 (out
+j
)[0] = (uint
)in
[0];
2198 (out
+j
)[1] = (uint
)in
[i
+1];
2199 (out
+j
)[2] = (uint
)in
[i
+2];
2202 static void translate_points_ubyte2uint_last2last(
2207 const ubyte
*in
= (const ubyte
*)_in
;
2208 uint
*out
= (uint
*)_out
;
2211 for (i
= 0; i
< nr
; i
++) {
2212 (out
+i
)[0] = (uint
)in
[i
];
2215 static void translate_lines_ubyte2uint_last2last(
2220 const ubyte
*in
= (const ubyte
*)_in
;
2221 uint
*out
= (uint
*)_out
;
2224 for (i
= 0; i
< nr
; i
+=2) {
2225 (out
+i
)[0] = (uint
)in
[i
];
2226 (out
+i
)[1] = (uint
)in
[i
+1];
2229 static void translate_linestrip_ubyte2uint_last2last(
2234 const ubyte
*in
= (const ubyte
*)_in
;
2235 uint
*out
= (uint
*)_out
;
2238 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
2239 (out
+j
)[0] = (uint
)in
[i
];
2240 (out
+j
)[1] = (uint
)in
[i
+1];
2243 static void translate_lineloop_ubyte2uint_last2last(
2248 const ubyte
*in
= (const ubyte
*)_in
;
2249 uint
*out
= (uint
*)_out
;
2252 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
2253 (out
+j
)[0] = (uint
)in
[i
];
2254 (out
+j
)[1] = (uint
)in
[i
+1];
2256 (out
+j
)[0] = (uint
)in
[i
];
2257 (out
+j
)[1] = (uint
)in
[0];
2259 static void translate_tris_ubyte2uint_last2last(
2264 const ubyte
*in
= (const ubyte
*)_in
;
2265 uint
*out
= (uint
*)_out
;
2268 for (i
= 0; i
< nr
; i
+=3) {
2269 (out
+i
)[0] = (uint
)in
[i
];
2270 (out
+i
)[1] = (uint
)in
[i
+1];
2271 (out
+i
)[2] = (uint
)in
[i
+2];
2274 static void translate_tristrip_ubyte2uint_last2last(
2279 const ubyte
*in
= (const ubyte
*)_in
;
2280 uint
*out
= (uint
*)_out
;
2283 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
2284 (out
+j
)[0] = (uint
)in
[i
+(i
&1)];
2285 (out
+j
)[1] = (uint
)in
[i
+1-(i
&1)];
2286 (out
+j
)[2] = (uint
)in
[i
+2];
2289 static void translate_trifan_ubyte2uint_last2last(
2294 const ubyte
*in
= (const ubyte
*)_in
;
2295 uint
*out
= (uint
*)_out
;
2298 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
2299 (out
+j
)[0] = (uint
)in
[0];
2300 (out
+j
)[1] = (uint
)in
[i
+1];
2301 (out
+j
)[2] = (uint
)in
[i
+2];
2304 static void translate_quads_ubyte2uint_last2last(
2309 const ubyte
*in
= (const ubyte
*)_in
;
2310 uint
*out
= (uint
*)_out
;
2313 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
2314 (out
+j
+0)[0] = (uint
)in
[i
+0];
2315 (out
+j
+0)[1] = (uint
)in
[i
+1];
2316 (out
+j
+0)[2] = (uint
)in
[i
+3];
2317 (out
+j
+3)[0] = (uint
)in
[i
+1];
2318 (out
+j
+3)[1] = (uint
)in
[i
+2];
2319 (out
+j
+3)[2] = (uint
)in
[i
+3];
2322 static void translate_quadstrip_ubyte2uint_last2last(
2327 const ubyte
*in
= (const ubyte
*)_in
;
2328 uint
*out
= (uint
*)_out
;
2331 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
2332 (out
+j
+0)[0] = (uint
)in
[i
+2];
2333 (out
+j
+0)[1] = (uint
)in
[i
+0];
2334 (out
+j
+0)[2] = (uint
)in
[i
+3];
2335 (out
+j
+3)[0] = (uint
)in
[i
+0];
2336 (out
+j
+3)[1] = (uint
)in
[i
+1];
2337 (out
+j
+3)[2] = (uint
)in
[i
+3];
2340 static void translate_polygon_ubyte2uint_last2last(
2345 const ubyte
*in
= (const ubyte
*)_in
;
2346 uint
*out
= (uint
*)_out
;
2349 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
2350 (out
+j
)[0] = (uint
)in
[i
+1];
2351 (out
+j
)[1] = (uint
)in
[i
+2];
2352 (out
+j
)[2] = (uint
)in
[0];
2355 static void translate_points_ushort2ushort_first2first(
2360 const ushort
*in
= (const ushort
*)_in
;
2361 ushort
*out
= (ushort
*)_out
;
2364 for (i
= 0; i
< nr
; i
++) {
2365 (out
+i
)[0] = (ushort
)in
[i
];
2368 static void translate_lines_ushort2ushort_first2first(
2373 const ushort
*in
= (const ushort
*)_in
;
2374 ushort
*out
= (ushort
*)_out
;
2377 for (i
= 0; i
< nr
; i
+=2) {
2378 (out
+i
)[0] = (ushort
)in
[i
];
2379 (out
+i
)[1] = (ushort
)in
[i
+1];
2382 static void translate_linestrip_ushort2ushort_first2first(
2387 const ushort
*in
= (const ushort
*)_in
;
2388 ushort
*out
= (ushort
*)_out
;
2391 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
2392 (out
+j
)[0] = (ushort
)in
[i
];
2393 (out
+j
)[1] = (ushort
)in
[i
+1];
2396 static void translate_lineloop_ushort2ushort_first2first(
2401 const ushort
*in
= (const ushort
*)_in
;
2402 ushort
*out
= (ushort
*)_out
;
2405 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
2406 (out
+j
)[0] = (ushort
)in
[i
];
2407 (out
+j
)[1] = (ushort
)in
[i
+1];
2409 (out
+j
)[0] = (ushort
)in
[i
];
2410 (out
+j
)[1] = (ushort
)in
[0];
2412 static void translate_tris_ushort2ushort_first2first(
2417 const ushort
*in
= (const ushort
*)_in
;
2418 ushort
*out
= (ushort
*)_out
;
2421 for (i
= 0; i
< nr
; i
+=3) {
2422 (out
+i
)[0] = (ushort
)in
[i
];
2423 (out
+i
)[1] = (ushort
)in
[i
+1];
2424 (out
+i
)[2] = (ushort
)in
[i
+2];
2427 static void translate_tristrip_ushort2ushort_first2first(
2432 const ushort
*in
= (const ushort
*)_in
;
2433 ushort
*out
= (ushort
*)_out
;
2436 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
2437 (out
+j
)[0] = (ushort
)in
[i
];
2438 (out
+j
)[1] = (ushort
)in
[i
+1+(i
&1)];
2439 (out
+j
)[2] = (ushort
)in
[i
+2-(i
&1)];
2442 static void translate_trifan_ushort2ushort_first2first(
2447 const ushort
*in
= (const ushort
*)_in
;
2448 ushort
*out
= (ushort
*)_out
;
2451 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
2452 (out
+j
)[0] = (ushort
)in
[0];
2453 (out
+j
)[1] = (ushort
)in
[i
+1];
2454 (out
+j
)[2] = (ushort
)in
[i
+2];
2457 static void translate_quads_ushort2ushort_first2first(
2462 const ushort
*in
= (const ushort
*)_in
;
2463 ushort
*out
= (ushort
*)_out
;
2466 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
2467 (out
+j
+0)[0] = (ushort
)in
[i
+0];
2468 (out
+j
+0)[1] = (ushort
)in
[i
+1];
2469 (out
+j
+0)[2] = (ushort
)in
[i
+3];
2470 (out
+j
+3)[0] = (ushort
)in
[i
+1];
2471 (out
+j
+3)[1] = (ushort
)in
[i
+2];
2472 (out
+j
+3)[2] = (ushort
)in
[i
+3];
2475 static void translate_quadstrip_ushort2ushort_first2first(
2480 const ushort
*in
= (const ushort
*)_in
;
2481 ushort
*out
= (ushort
*)_out
;
2484 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
2485 (out
+j
+0)[0] = (ushort
)in
[i
+2];
2486 (out
+j
+0)[1] = (ushort
)in
[i
+0];
2487 (out
+j
+0)[2] = (ushort
)in
[i
+3];
2488 (out
+j
+3)[0] = (ushort
)in
[i
+0];
2489 (out
+j
+3)[1] = (ushort
)in
[i
+1];
2490 (out
+j
+3)[2] = (ushort
)in
[i
+3];
2493 static void translate_polygon_ushort2ushort_first2first(
2498 const ushort
*in
= (const ushort
*)_in
;
2499 ushort
*out
= (ushort
*)_out
;
2502 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
2503 (out
+j
)[0] = (ushort
)in
[0];
2504 (out
+j
)[1] = (ushort
)in
[i
+1];
2505 (out
+j
)[2] = (ushort
)in
[i
+2];
2508 static void translate_points_ushort2ushort_first2last(
2513 const ushort
*in
= (const ushort
*)_in
;
2514 ushort
*out
= (ushort
*)_out
;
2517 for (i
= 0; i
< nr
; i
++) {
2518 (out
+i
)[0] = (ushort
)in
[i
];
2521 static void translate_lines_ushort2ushort_first2last(
2526 const ushort
*in
= (const ushort
*)_in
;
2527 ushort
*out
= (ushort
*)_out
;
2530 for (i
= 0; i
< nr
; i
+=2) {
2531 (out
+i
)[0] = (ushort
)in
[i
+1];
2532 (out
+i
)[1] = (ushort
)in
[i
];
2535 static void translate_linestrip_ushort2ushort_first2last(
2540 const ushort
*in
= (const ushort
*)_in
;
2541 ushort
*out
= (ushort
*)_out
;
2544 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
2545 (out
+j
)[0] = (ushort
)in
[i
+1];
2546 (out
+j
)[1] = (ushort
)in
[i
];
2549 static void translate_lineloop_ushort2ushort_first2last(
2554 const ushort
*in
= (const ushort
*)_in
;
2555 ushort
*out
= (ushort
*)_out
;
2558 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
2559 (out
+j
)[0] = (ushort
)in
[i
+1];
2560 (out
+j
)[1] = (ushort
)in
[i
];
2562 (out
+j
)[0] = (ushort
)in
[0];
2563 (out
+j
)[1] = (ushort
)in
[i
];
2565 static void translate_tris_ushort2ushort_first2last(
2570 const ushort
*in
= (const ushort
*)_in
;
2571 ushort
*out
= (ushort
*)_out
;
2574 for (i
= 0; i
< nr
; i
+=3) {
2575 (out
+i
)[0] = (ushort
)in
[i
+1];
2576 (out
+i
)[1] = (ushort
)in
[i
+2];
2577 (out
+i
)[2] = (ushort
)in
[i
];
2580 static void translate_tristrip_ushort2ushort_first2last(
2585 const ushort
*in
= (const ushort
*)_in
;
2586 ushort
*out
= (ushort
*)_out
;
2589 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
2590 (out
+j
)[0] = (ushort
)in
[i
+1+(i
&1)];
2591 (out
+j
)[1] = (ushort
)in
[i
+2-(i
&1)];
2592 (out
+j
)[2] = (ushort
)in
[i
];
2595 static void translate_trifan_ushort2ushort_first2last(
2600 const ushort
*in
= (const ushort
*)_in
;
2601 ushort
*out
= (ushort
*)_out
;
2604 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
2605 (out
+j
)[0] = (ushort
)in
[i
+1];
2606 (out
+j
)[1] = (ushort
)in
[i
+2];
2607 (out
+j
)[2] = (ushort
)in
[0];
2610 static void translate_quads_ushort2ushort_first2last(
2615 const ushort
*in
= (const ushort
*)_in
;
2616 ushort
*out
= (ushort
*)_out
;
2619 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
2620 (out
+j
+0)[0] = (ushort
)in
[i
+1];
2621 (out
+j
+0)[1] = (ushort
)in
[i
+3];
2622 (out
+j
+0)[2] = (ushort
)in
[i
+0];
2623 (out
+j
+3)[0] = (ushort
)in
[i
+2];
2624 (out
+j
+3)[1] = (ushort
)in
[i
+3];
2625 (out
+j
+3)[2] = (ushort
)in
[i
+1];
2628 static void translate_quadstrip_ushort2ushort_first2last(
2633 const ushort
*in
= (const ushort
*)_in
;
2634 ushort
*out
= (ushort
*)_out
;
2637 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
2638 (out
+j
+0)[0] = (ushort
)in
[i
+0];
2639 (out
+j
+0)[1] = (ushort
)in
[i
+3];
2640 (out
+j
+0)[2] = (ushort
)in
[i
+2];
2641 (out
+j
+3)[0] = (ushort
)in
[i
+1];
2642 (out
+j
+3)[1] = (ushort
)in
[i
+3];
2643 (out
+j
+3)[2] = (ushort
)in
[i
+0];
2646 static void translate_polygon_ushort2ushort_first2last(
2651 const ushort
*in
= (const ushort
*)_in
;
2652 ushort
*out
= (ushort
*)_out
;
2655 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
2656 (out
+j
)[0] = (ushort
)in
[i
+1];
2657 (out
+j
)[1] = (ushort
)in
[i
+2];
2658 (out
+j
)[2] = (ushort
)in
[0];
2661 static void translate_points_ushort2ushort_last2first(
2666 const ushort
*in
= (const ushort
*)_in
;
2667 ushort
*out
= (ushort
*)_out
;
2670 for (i
= 0; i
< nr
; i
++) {
2671 (out
+i
)[0] = (ushort
)in
[i
];
2674 static void translate_lines_ushort2ushort_last2first(
2679 const ushort
*in
= (const ushort
*)_in
;
2680 ushort
*out
= (ushort
*)_out
;
2683 for (i
= 0; i
< nr
; i
+=2) {
2684 (out
+i
)[0] = (ushort
)in
[i
+1];
2685 (out
+i
)[1] = (ushort
)in
[i
];
2688 static void translate_linestrip_ushort2ushort_last2first(
2693 const ushort
*in
= (const ushort
*)_in
;
2694 ushort
*out
= (ushort
*)_out
;
2697 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
2698 (out
+j
)[0] = (ushort
)in
[i
+1];
2699 (out
+j
)[1] = (ushort
)in
[i
];
2702 static void translate_lineloop_ushort2ushort_last2first(
2707 const ushort
*in
= (const ushort
*)_in
;
2708 ushort
*out
= (ushort
*)_out
;
2711 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
2712 (out
+j
)[0] = (ushort
)in
[i
+1];
2713 (out
+j
)[1] = (ushort
)in
[i
];
2715 (out
+j
)[0] = (ushort
)in
[0];
2716 (out
+j
)[1] = (ushort
)in
[i
];
2718 static void translate_tris_ushort2ushort_last2first(
2723 const ushort
*in
= (const ushort
*)_in
;
2724 ushort
*out
= (ushort
*)_out
;
2727 for (i
= 0; i
< nr
; i
+=3) {
2728 (out
+i
)[0] = (ushort
)in
[i
+2];
2729 (out
+i
)[1] = (ushort
)in
[i
];
2730 (out
+i
)[2] = (ushort
)in
[i
+1];
2733 static void translate_tristrip_ushort2ushort_last2first(
2738 const ushort
*in
= (const ushort
*)_in
;
2739 ushort
*out
= (ushort
*)_out
;
2742 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
2743 (out
+j
)[0] = (ushort
)in
[i
+2];
2744 (out
+j
)[1] = (ushort
)in
[i
+(i
&1)];
2745 (out
+j
)[2] = (ushort
)in
[i
+1-(i
&1)];
2748 static void translate_trifan_ushort2ushort_last2first(
2753 const ushort
*in
= (const ushort
*)_in
;
2754 ushort
*out
= (ushort
*)_out
;
2757 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
2758 (out
+j
)[0] = (ushort
)in
[i
+2];
2759 (out
+j
)[1] = (ushort
)in
[0];
2760 (out
+j
)[2] = (ushort
)in
[i
+1];
2763 static void translate_quads_ushort2ushort_last2first(
2768 const ushort
*in
= (const ushort
*)_in
;
2769 ushort
*out
= (ushort
*)_out
;
2772 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
2773 (out
+j
+0)[0] = (ushort
)in
[i
+3];
2774 (out
+j
+0)[1] = (ushort
)in
[i
+0];
2775 (out
+j
+0)[2] = (ushort
)in
[i
+1];
2776 (out
+j
+3)[0] = (ushort
)in
[i
+3];
2777 (out
+j
+3)[1] = (ushort
)in
[i
+1];
2778 (out
+j
+3)[2] = (ushort
)in
[i
+2];
2781 static void translate_quadstrip_ushort2ushort_last2first(
2786 const ushort
*in
= (const ushort
*)_in
;
2787 ushort
*out
= (ushort
*)_out
;
2790 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
2791 (out
+j
+0)[0] = (ushort
)in
[i
+3];
2792 (out
+j
+0)[1] = (ushort
)in
[i
+2];
2793 (out
+j
+0)[2] = (ushort
)in
[i
+0];
2794 (out
+j
+3)[0] = (ushort
)in
[i
+3];
2795 (out
+j
+3)[1] = (ushort
)in
[i
+0];
2796 (out
+j
+3)[2] = (ushort
)in
[i
+1];
2799 static void translate_polygon_ushort2ushort_last2first(
2804 const ushort
*in
= (const ushort
*)_in
;
2805 ushort
*out
= (ushort
*)_out
;
2808 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
2809 (out
+j
)[0] = (ushort
)in
[0];
2810 (out
+j
)[1] = (ushort
)in
[i
+1];
2811 (out
+j
)[2] = (ushort
)in
[i
+2];
2814 static void translate_points_ushort2ushort_last2last(
2819 const ushort
*in
= (const ushort
*)_in
;
2820 ushort
*out
= (ushort
*)_out
;
2823 for (i
= 0; i
< nr
; i
++) {
2824 (out
+i
)[0] = (ushort
)in
[i
];
2827 static void translate_lines_ushort2ushort_last2last(
2832 const ushort
*in
= (const ushort
*)_in
;
2833 ushort
*out
= (ushort
*)_out
;
2836 for (i
= 0; i
< nr
; i
+=2) {
2837 (out
+i
)[0] = (ushort
)in
[i
];
2838 (out
+i
)[1] = (ushort
)in
[i
+1];
2841 static void translate_linestrip_ushort2ushort_last2last(
2846 const ushort
*in
= (const ushort
*)_in
;
2847 ushort
*out
= (ushort
*)_out
;
2850 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
2851 (out
+j
)[0] = (ushort
)in
[i
];
2852 (out
+j
)[1] = (ushort
)in
[i
+1];
2855 static void translate_lineloop_ushort2ushort_last2last(
2860 const ushort
*in
= (const ushort
*)_in
;
2861 ushort
*out
= (ushort
*)_out
;
2864 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
2865 (out
+j
)[0] = (ushort
)in
[i
];
2866 (out
+j
)[1] = (ushort
)in
[i
+1];
2868 (out
+j
)[0] = (ushort
)in
[i
];
2869 (out
+j
)[1] = (ushort
)in
[0];
2871 static void translate_tris_ushort2ushort_last2last(
2876 const ushort
*in
= (const ushort
*)_in
;
2877 ushort
*out
= (ushort
*)_out
;
2880 for (i
= 0; i
< nr
; i
+=3) {
2881 (out
+i
)[0] = (ushort
)in
[i
];
2882 (out
+i
)[1] = (ushort
)in
[i
+1];
2883 (out
+i
)[2] = (ushort
)in
[i
+2];
2886 static void translate_tristrip_ushort2ushort_last2last(
2891 const ushort
*in
= (const ushort
*)_in
;
2892 ushort
*out
= (ushort
*)_out
;
2895 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
2896 (out
+j
)[0] = (ushort
)in
[i
+(i
&1)];
2897 (out
+j
)[1] = (ushort
)in
[i
+1-(i
&1)];
2898 (out
+j
)[2] = (ushort
)in
[i
+2];
2901 static void translate_trifan_ushort2ushort_last2last(
2906 const ushort
*in
= (const ushort
*)_in
;
2907 ushort
*out
= (ushort
*)_out
;
2910 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
2911 (out
+j
)[0] = (ushort
)in
[0];
2912 (out
+j
)[1] = (ushort
)in
[i
+1];
2913 (out
+j
)[2] = (ushort
)in
[i
+2];
2916 static void translate_quads_ushort2ushort_last2last(
2921 const ushort
*in
= (const ushort
*)_in
;
2922 ushort
*out
= (ushort
*)_out
;
2925 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
2926 (out
+j
+0)[0] = (ushort
)in
[i
+0];
2927 (out
+j
+0)[1] = (ushort
)in
[i
+1];
2928 (out
+j
+0)[2] = (ushort
)in
[i
+3];
2929 (out
+j
+3)[0] = (ushort
)in
[i
+1];
2930 (out
+j
+3)[1] = (ushort
)in
[i
+2];
2931 (out
+j
+3)[2] = (ushort
)in
[i
+3];
2934 static void translate_quadstrip_ushort2ushort_last2last(
2939 const ushort
*in
= (const ushort
*)_in
;
2940 ushort
*out
= (ushort
*)_out
;
2943 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
2944 (out
+j
+0)[0] = (ushort
)in
[i
+2];
2945 (out
+j
+0)[1] = (ushort
)in
[i
+0];
2946 (out
+j
+0)[2] = (ushort
)in
[i
+3];
2947 (out
+j
+3)[0] = (ushort
)in
[i
+0];
2948 (out
+j
+3)[1] = (ushort
)in
[i
+1];
2949 (out
+j
+3)[2] = (ushort
)in
[i
+3];
2952 static void translate_polygon_ushort2ushort_last2last(
2957 const ushort
*in
= (const ushort
*)_in
;
2958 ushort
*out
= (ushort
*)_out
;
2961 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
2962 (out
+j
)[0] = (ushort
)in
[i
+1];
2963 (out
+j
)[1] = (ushort
)in
[i
+2];
2964 (out
+j
)[2] = (ushort
)in
[0];
2967 static void translate_points_ushort2uint_first2first(
2972 const ushort
*in
= (const ushort
*)_in
;
2973 uint
*out
= (uint
*)_out
;
2976 for (i
= 0; i
< nr
; i
++) {
2977 (out
+i
)[0] = (uint
)in
[i
];
2980 static void translate_lines_ushort2uint_first2first(
2985 const ushort
*in
= (const ushort
*)_in
;
2986 uint
*out
= (uint
*)_out
;
2989 for (i
= 0; i
< nr
; i
+=2) {
2990 (out
+i
)[0] = (uint
)in
[i
];
2991 (out
+i
)[1] = (uint
)in
[i
+1];
2994 static void translate_linestrip_ushort2uint_first2first(
2999 const ushort
*in
= (const ushort
*)_in
;
3000 uint
*out
= (uint
*)_out
;
3003 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
3004 (out
+j
)[0] = (uint
)in
[i
];
3005 (out
+j
)[1] = (uint
)in
[i
+1];
3008 static void translate_lineloop_ushort2uint_first2first(
3013 const ushort
*in
= (const ushort
*)_in
;
3014 uint
*out
= (uint
*)_out
;
3017 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
3018 (out
+j
)[0] = (uint
)in
[i
];
3019 (out
+j
)[1] = (uint
)in
[i
+1];
3021 (out
+j
)[0] = (uint
)in
[i
];
3022 (out
+j
)[1] = (uint
)in
[0];
3024 static void translate_tris_ushort2uint_first2first(
3029 const ushort
*in
= (const ushort
*)_in
;
3030 uint
*out
= (uint
*)_out
;
3033 for (i
= 0; i
< nr
; i
+=3) {
3034 (out
+i
)[0] = (uint
)in
[i
];
3035 (out
+i
)[1] = (uint
)in
[i
+1];
3036 (out
+i
)[2] = (uint
)in
[i
+2];
3039 static void translate_tristrip_ushort2uint_first2first(
3044 const ushort
*in
= (const ushort
*)_in
;
3045 uint
*out
= (uint
*)_out
;
3048 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
3049 (out
+j
)[0] = (uint
)in
[i
];
3050 (out
+j
)[1] = (uint
)in
[i
+1+(i
&1)];
3051 (out
+j
)[2] = (uint
)in
[i
+2-(i
&1)];
3054 static void translate_trifan_ushort2uint_first2first(
3059 const ushort
*in
= (const ushort
*)_in
;
3060 uint
*out
= (uint
*)_out
;
3063 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
3064 (out
+j
)[0] = (uint
)in
[0];
3065 (out
+j
)[1] = (uint
)in
[i
+1];
3066 (out
+j
)[2] = (uint
)in
[i
+2];
3069 static void translate_quads_ushort2uint_first2first(
3074 const ushort
*in
= (const ushort
*)_in
;
3075 uint
*out
= (uint
*)_out
;
3078 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
3079 (out
+j
+0)[0] = (uint
)in
[i
+0];
3080 (out
+j
+0)[1] = (uint
)in
[i
+1];
3081 (out
+j
+0)[2] = (uint
)in
[i
+3];
3082 (out
+j
+3)[0] = (uint
)in
[i
+1];
3083 (out
+j
+3)[1] = (uint
)in
[i
+2];
3084 (out
+j
+3)[2] = (uint
)in
[i
+3];
3087 static void translate_quadstrip_ushort2uint_first2first(
3092 const ushort
*in
= (const ushort
*)_in
;
3093 uint
*out
= (uint
*)_out
;
3096 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
3097 (out
+j
+0)[0] = (uint
)in
[i
+2];
3098 (out
+j
+0)[1] = (uint
)in
[i
+0];
3099 (out
+j
+0)[2] = (uint
)in
[i
+3];
3100 (out
+j
+3)[0] = (uint
)in
[i
+0];
3101 (out
+j
+3)[1] = (uint
)in
[i
+1];
3102 (out
+j
+3)[2] = (uint
)in
[i
+3];
3105 static void translate_polygon_ushort2uint_first2first(
3110 const ushort
*in
= (const ushort
*)_in
;
3111 uint
*out
= (uint
*)_out
;
3114 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
3115 (out
+j
)[0] = (uint
)in
[0];
3116 (out
+j
)[1] = (uint
)in
[i
+1];
3117 (out
+j
)[2] = (uint
)in
[i
+2];
3120 static void translate_points_ushort2uint_first2last(
3125 const ushort
*in
= (const ushort
*)_in
;
3126 uint
*out
= (uint
*)_out
;
3129 for (i
= 0; i
< nr
; i
++) {
3130 (out
+i
)[0] = (uint
)in
[i
];
3133 static void translate_lines_ushort2uint_first2last(
3138 const ushort
*in
= (const ushort
*)_in
;
3139 uint
*out
= (uint
*)_out
;
3142 for (i
= 0; i
< nr
; i
+=2) {
3143 (out
+i
)[0] = (uint
)in
[i
+1];
3144 (out
+i
)[1] = (uint
)in
[i
];
3147 static void translate_linestrip_ushort2uint_first2last(
3152 const ushort
*in
= (const ushort
*)_in
;
3153 uint
*out
= (uint
*)_out
;
3156 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
3157 (out
+j
)[0] = (uint
)in
[i
+1];
3158 (out
+j
)[1] = (uint
)in
[i
];
3161 static void translate_lineloop_ushort2uint_first2last(
3166 const ushort
*in
= (const ushort
*)_in
;
3167 uint
*out
= (uint
*)_out
;
3170 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
3171 (out
+j
)[0] = (uint
)in
[i
+1];
3172 (out
+j
)[1] = (uint
)in
[i
];
3174 (out
+j
)[0] = (uint
)in
[0];
3175 (out
+j
)[1] = (uint
)in
[i
];
3177 static void translate_tris_ushort2uint_first2last(
3182 const ushort
*in
= (const ushort
*)_in
;
3183 uint
*out
= (uint
*)_out
;
3186 for (i
= 0; i
< nr
; i
+=3) {
3187 (out
+i
)[0] = (uint
)in
[i
+1];
3188 (out
+i
)[1] = (uint
)in
[i
+2];
3189 (out
+i
)[2] = (uint
)in
[i
];
3192 static void translate_tristrip_ushort2uint_first2last(
3197 const ushort
*in
= (const ushort
*)_in
;
3198 uint
*out
= (uint
*)_out
;
3201 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
3202 (out
+j
)[0] = (uint
)in
[i
+1+(i
&1)];
3203 (out
+j
)[1] = (uint
)in
[i
+2-(i
&1)];
3204 (out
+j
)[2] = (uint
)in
[i
];
3207 static void translate_trifan_ushort2uint_first2last(
3212 const ushort
*in
= (const ushort
*)_in
;
3213 uint
*out
= (uint
*)_out
;
3216 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
3217 (out
+j
)[0] = (uint
)in
[i
+1];
3218 (out
+j
)[1] = (uint
)in
[i
+2];
3219 (out
+j
)[2] = (uint
)in
[0];
3222 static void translate_quads_ushort2uint_first2last(
3227 const ushort
*in
= (const ushort
*)_in
;
3228 uint
*out
= (uint
*)_out
;
3231 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
3232 (out
+j
+0)[0] = (uint
)in
[i
+1];
3233 (out
+j
+0)[1] = (uint
)in
[i
+3];
3234 (out
+j
+0)[2] = (uint
)in
[i
+0];
3235 (out
+j
+3)[0] = (uint
)in
[i
+2];
3236 (out
+j
+3)[1] = (uint
)in
[i
+3];
3237 (out
+j
+3)[2] = (uint
)in
[i
+1];
3240 static void translate_quadstrip_ushort2uint_first2last(
3245 const ushort
*in
= (const ushort
*)_in
;
3246 uint
*out
= (uint
*)_out
;
3249 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
3250 (out
+j
+0)[0] = (uint
)in
[i
+0];
3251 (out
+j
+0)[1] = (uint
)in
[i
+3];
3252 (out
+j
+0)[2] = (uint
)in
[i
+2];
3253 (out
+j
+3)[0] = (uint
)in
[i
+1];
3254 (out
+j
+3)[1] = (uint
)in
[i
+3];
3255 (out
+j
+3)[2] = (uint
)in
[i
+0];
3258 static void translate_polygon_ushort2uint_first2last(
3263 const ushort
*in
= (const ushort
*)_in
;
3264 uint
*out
= (uint
*)_out
;
3267 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
3268 (out
+j
)[0] = (uint
)in
[i
+1];
3269 (out
+j
)[1] = (uint
)in
[i
+2];
3270 (out
+j
)[2] = (uint
)in
[0];
3273 static void translate_points_ushort2uint_last2first(
3278 const ushort
*in
= (const ushort
*)_in
;
3279 uint
*out
= (uint
*)_out
;
3282 for (i
= 0; i
< nr
; i
++) {
3283 (out
+i
)[0] = (uint
)in
[i
];
3286 static void translate_lines_ushort2uint_last2first(
3291 const ushort
*in
= (const ushort
*)_in
;
3292 uint
*out
= (uint
*)_out
;
3295 for (i
= 0; i
< nr
; i
+=2) {
3296 (out
+i
)[0] = (uint
)in
[i
+1];
3297 (out
+i
)[1] = (uint
)in
[i
];
3300 static void translate_linestrip_ushort2uint_last2first(
3305 const ushort
*in
= (const ushort
*)_in
;
3306 uint
*out
= (uint
*)_out
;
3309 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
3310 (out
+j
)[0] = (uint
)in
[i
+1];
3311 (out
+j
)[1] = (uint
)in
[i
];
3314 static void translate_lineloop_ushort2uint_last2first(
3319 const ushort
*in
= (const ushort
*)_in
;
3320 uint
*out
= (uint
*)_out
;
3323 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
3324 (out
+j
)[0] = (uint
)in
[i
+1];
3325 (out
+j
)[1] = (uint
)in
[i
];
3327 (out
+j
)[0] = (uint
)in
[0];
3328 (out
+j
)[1] = (uint
)in
[i
];
3330 static void translate_tris_ushort2uint_last2first(
3335 const ushort
*in
= (const ushort
*)_in
;
3336 uint
*out
= (uint
*)_out
;
3339 for (i
= 0; i
< nr
; i
+=3) {
3340 (out
+i
)[0] = (uint
)in
[i
+2];
3341 (out
+i
)[1] = (uint
)in
[i
];
3342 (out
+i
)[2] = (uint
)in
[i
+1];
3345 static void translate_tristrip_ushort2uint_last2first(
3350 const ushort
*in
= (const ushort
*)_in
;
3351 uint
*out
= (uint
*)_out
;
3354 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
3355 (out
+j
)[0] = (uint
)in
[i
+2];
3356 (out
+j
)[1] = (uint
)in
[i
+(i
&1)];
3357 (out
+j
)[2] = (uint
)in
[i
+1-(i
&1)];
3360 static void translate_trifan_ushort2uint_last2first(
3365 const ushort
*in
= (const ushort
*)_in
;
3366 uint
*out
= (uint
*)_out
;
3369 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
3370 (out
+j
)[0] = (uint
)in
[i
+2];
3371 (out
+j
)[1] = (uint
)in
[0];
3372 (out
+j
)[2] = (uint
)in
[i
+1];
3375 static void translate_quads_ushort2uint_last2first(
3380 const ushort
*in
= (const ushort
*)_in
;
3381 uint
*out
= (uint
*)_out
;
3384 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
3385 (out
+j
+0)[0] = (uint
)in
[i
+3];
3386 (out
+j
+0)[1] = (uint
)in
[i
+0];
3387 (out
+j
+0)[2] = (uint
)in
[i
+1];
3388 (out
+j
+3)[0] = (uint
)in
[i
+3];
3389 (out
+j
+3)[1] = (uint
)in
[i
+1];
3390 (out
+j
+3)[2] = (uint
)in
[i
+2];
3393 static void translate_quadstrip_ushort2uint_last2first(
3398 const ushort
*in
= (const ushort
*)_in
;
3399 uint
*out
= (uint
*)_out
;
3402 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
3403 (out
+j
+0)[0] = (uint
)in
[i
+3];
3404 (out
+j
+0)[1] = (uint
)in
[i
+2];
3405 (out
+j
+0)[2] = (uint
)in
[i
+0];
3406 (out
+j
+3)[0] = (uint
)in
[i
+3];
3407 (out
+j
+3)[1] = (uint
)in
[i
+0];
3408 (out
+j
+3)[2] = (uint
)in
[i
+1];
3411 static void translate_polygon_ushort2uint_last2first(
3416 const ushort
*in
= (const ushort
*)_in
;
3417 uint
*out
= (uint
*)_out
;
3420 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
3421 (out
+j
)[0] = (uint
)in
[0];
3422 (out
+j
)[1] = (uint
)in
[i
+1];
3423 (out
+j
)[2] = (uint
)in
[i
+2];
3426 static void translate_points_ushort2uint_last2last(
3431 const ushort
*in
= (const ushort
*)_in
;
3432 uint
*out
= (uint
*)_out
;
3435 for (i
= 0; i
< nr
; i
++) {
3436 (out
+i
)[0] = (uint
)in
[i
];
3439 static void translate_lines_ushort2uint_last2last(
3444 const ushort
*in
= (const ushort
*)_in
;
3445 uint
*out
= (uint
*)_out
;
3448 for (i
= 0; i
< nr
; i
+=2) {
3449 (out
+i
)[0] = (uint
)in
[i
];
3450 (out
+i
)[1] = (uint
)in
[i
+1];
3453 static void translate_linestrip_ushort2uint_last2last(
3458 const ushort
*in
= (const ushort
*)_in
;
3459 uint
*out
= (uint
*)_out
;
3462 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
3463 (out
+j
)[0] = (uint
)in
[i
];
3464 (out
+j
)[1] = (uint
)in
[i
+1];
3467 static void translate_lineloop_ushort2uint_last2last(
3472 const ushort
*in
= (const ushort
*)_in
;
3473 uint
*out
= (uint
*)_out
;
3476 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
3477 (out
+j
)[0] = (uint
)in
[i
];
3478 (out
+j
)[1] = (uint
)in
[i
+1];
3480 (out
+j
)[0] = (uint
)in
[i
];
3481 (out
+j
)[1] = (uint
)in
[0];
3483 static void translate_tris_ushort2uint_last2last(
3488 const ushort
*in
= (const ushort
*)_in
;
3489 uint
*out
= (uint
*)_out
;
3492 for (i
= 0; i
< nr
; i
+=3) {
3493 (out
+i
)[0] = (uint
)in
[i
];
3494 (out
+i
)[1] = (uint
)in
[i
+1];
3495 (out
+i
)[2] = (uint
)in
[i
+2];
3498 static void translate_tristrip_ushort2uint_last2last(
3503 const ushort
*in
= (const ushort
*)_in
;
3504 uint
*out
= (uint
*)_out
;
3507 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
3508 (out
+j
)[0] = (uint
)in
[i
+(i
&1)];
3509 (out
+j
)[1] = (uint
)in
[i
+1-(i
&1)];
3510 (out
+j
)[2] = (uint
)in
[i
+2];
3513 static void translate_trifan_ushort2uint_last2last(
3518 const ushort
*in
= (const ushort
*)_in
;
3519 uint
*out
= (uint
*)_out
;
3522 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
3523 (out
+j
)[0] = (uint
)in
[0];
3524 (out
+j
)[1] = (uint
)in
[i
+1];
3525 (out
+j
)[2] = (uint
)in
[i
+2];
3528 static void translate_quads_ushort2uint_last2last(
3533 const ushort
*in
= (const ushort
*)_in
;
3534 uint
*out
= (uint
*)_out
;
3537 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
3538 (out
+j
+0)[0] = (uint
)in
[i
+0];
3539 (out
+j
+0)[1] = (uint
)in
[i
+1];
3540 (out
+j
+0)[2] = (uint
)in
[i
+3];
3541 (out
+j
+3)[0] = (uint
)in
[i
+1];
3542 (out
+j
+3)[1] = (uint
)in
[i
+2];
3543 (out
+j
+3)[2] = (uint
)in
[i
+3];
3546 static void translate_quadstrip_ushort2uint_last2last(
3551 const ushort
*in
= (const ushort
*)_in
;
3552 uint
*out
= (uint
*)_out
;
3555 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
3556 (out
+j
+0)[0] = (uint
)in
[i
+2];
3557 (out
+j
+0)[1] = (uint
)in
[i
+0];
3558 (out
+j
+0)[2] = (uint
)in
[i
+3];
3559 (out
+j
+3)[0] = (uint
)in
[i
+0];
3560 (out
+j
+3)[1] = (uint
)in
[i
+1];
3561 (out
+j
+3)[2] = (uint
)in
[i
+3];
3564 static void translate_polygon_ushort2uint_last2last(
3569 const ushort
*in
= (const ushort
*)_in
;
3570 uint
*out
= (uint
*)_out
;
3573 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
3574 (out
+j
)[0] = (uint
)in
[i
+1];
3575 (out
+j
)[1] = (uint
)in
[i
+2];
3576 (out
+j
)[2] = (uint
)in
[0];
3579 static void translate_points_uint2ushort_first2first(
3584 const uint
*in
= (const uint
*)_in
;
3585 ushort
*out
= (ushort
*)_out
;
3588 for (i
= 0; i
< nr
; i
++) {
3589 (out
+i
)[0] = (ushort
)in
[i
];
3592 static void translate_lines_uint2ushort_first2first(
3597 const uint
*in
= (const uint
*)_in
;
3598 ushort
*out
= (ushort
*)_out
;
3601 for (i
= 0; i
< nr
; i
+=2) {
3602 (out
+i
)[0] = (ushort
)in
[i
];
3603 (out
+i
)[1] = (ushort
)in
[i
+1];
3606 static void translate_linestrip_uint2ushort_first2first(
3611 const uint
*in
= (const uint
*)_in
;
3612 ushort
*out
= (ushort
*)_out
;
3615 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
3616 (out
+j
)[0] = (ushort
)in
[i
];
3617 (out
+j
)[1] = (ushort
)in
[i
+1];
3620 static void translate_lineloop_uint2ushort_first2first(
3625 const uint
*in
= (const uint
*)_in
;
3626 ushort
*out
= (ushort
*)_out
;
3629 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
3630 (out
+j
)[0] = (ushort
)in
[i
];
3631 (out
+j
)[1] = (ushort
)in
[i
+1];
3633 (out
+j
)[0] = (ushort
)in
[i
];
3634 (out
+j
)[1] = (ushort
)in
[0];
3636 static void translate_tris_uint2ushort_first2first(
3641 const uint
*in
= (const uint
*)_in
;
3642 ushort
*out
= (ushort
*)_out
;
3645 for (i
= 0; i
< nr
; i
+=3) {
3646 (out
+i
)[0] = (ushort
)in
[i
];
3647 (out
+i
)[1] = (ushort
)in
[i
+1];
3648 (out
+i
)[2] = (ushort
)in
[i
+2];
3651 static void translate_tristrip_uint2ushort_first2first(
3656 const uint
*in
= (const uint
*)_in
;
3657 ushort
*out
= (ushort
*)_out
;
3660 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
3661 (out
+j
)[0] = (ushort
)in
[i
];
3662 (out
+j
)[1] = (ushort
)in
[i
+1+(i
&1)];
3663 (out
+j
)[2] = (ushort
)in
[i
+2-(i
&1)];
3666 static void translate_trifan_uint2ushort_first2first(
3671 const uint
*in
= (const uint
*)_in
;
3672 ushort
*out
= (ushort
*)_out
;
3675 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
3676 (out
+j
)[0] = (ushort
)in
[0];
3677 (out
+j
)[1] = (ushort
)in
[i
+1];
3678 (out
+j
)[2] = (ushort
)in
[i
+2];
3681 static void translate_quads_uint2ushort_first2first(
3686 const uint
*in
= (const uint
*)_in
;
3687 ushort
*out
= (ushort
*)_out
;
3690 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
3691 (out
+j
+0)[0] = (ushort
)in
[i
+0];
3692 (out
+j
+0)[1] = (ushort
)in
[i
+1];
3693 (out
+j
+0)[2] = (ushort
)in
[i
+3];
3694 (out
+j
+3)[0] = (ushort
)in
[i
+1];
3695 (out
+j
+3)[1] = (ushort
)in
[i
+2];
3696 (out
+j
+3)[2] = (ushort
)in
[i
+3];
3699 static void translate_quadstrip_uint2ushort_first2first(
3704 const uint
*in
= (const uint
*)_in
;
3705 ushort
*out
= (ushort
*)_out
;
3708 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
3709 (out
+j
+0)[0] = (ushort
)in
[i
+2];
3710 (out
+j
+0)[1] = (ushort
)in
[i
+0];
3711 (out
+j
+0)[2] = (ushort
)in
[i
+3];
3712 (out
+j
+3)[0] = (ushort
)in
[i
+0];
3713 (out
+j
+3)[1] = (ushort
)in
[i
+1];
3714 (out
+j
+3)[2] = (ushort
)in
[i
+3];
3717 static void translate_polygon_uint2ushort_first2first(
3722 const uint
*in
= (const uint
*)_in
;
3723 ushort
*out
= (ushort
*)_out
;
3726 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
3727 (out
+j
)[0] = (ushort
)in
[0];
3728 (out
+j
)[1] = (ushort
)in
[i
+1];
3729 (out
+j
)[2] = (ushort
)in
[i
+2];
3732 static void translate_points_uint2ushort_first2last(
3737 const uint
*in
= (const uint
*)_in
;
3738 ushort
*out
= (ushort
*)_out
;
3741 for (i
= 0; i
< nr
; i
++) {
3742 (out
+i
)[0] = (ushort
)in
[i
];
3745 static void translate_lines_uint2ushort_first2last(
3750 const uint
*in
= (const uint
*)_in
;
3751 ushort
*out
= (ushort
*)_out
;
3754 for (i
= 0; i
< nr
; i
+=2) {
3755 (out
+i
)[0] = (ushort
)in
[i
+1];
3756 (out
+i
)[1] = (ushort
)in
[i
];
3759 static void translate_linestrip_uint2ushort_first2last(
3764 const uint
*in
= (const uint
*)_in
;
3765 ushort
*out
= (ushort
*)_out
;
3768 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
3769 (out
+j
)[0] = (ushort
)in
[i
+1];
3770 (out
+j
)[1] = (ushort
)in
[i
];
3773 static void translate_lineloop_uint2ushort_first2last(
3778 const uint
*in
= (const uint
*)_in
;
3779 ushort
*out
= (ushort
*)_out
;
3782 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
3783 (out
+j
)[0] = (ushort
)in
[i
+1];
3784 (out
+j
)[1] = (ushort
)in
[i
];
3786 (out
+j
)[0] = (ushort
)in
[0];
3787 (out
+j
)[1] = (ushort
)in
[i
];
3789 static void translate_tris_uint2ushort_first2last(
3794 const uint
*in
= (const uint
*)_in
;
3795 ushort
*out
= (ushort
*)_out
;
3798 for (i
= 0; i
< nr
; i
+=3) {
3799 (out
+i
)[0] = (ushort
)in
[i
+1];
3800 (out
+i
)[1] = (ushort
)in
[i
+2];
3801 (out
+i
)[2] = (ushort
)in
[i
];
3804 static void translate_tristrip_uint2ushort_first2last(
3809 const uint
*in
= (const uint
*)_in
;
3810 ushort
*out
= (ushort
*)_out
;
3813 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
3814 (out
+j
)[0] = (ushort
)in
[i
+1+(i
&1)];
3815 (out
+j
)[1] = (ushort
)in
[i
+2-(i
&1)];
3816 (out
+j
)[2] = (ushort
)in
[i
];
3819 static void translate_trifan_uint2ushort_first2last(
3824 const uint
*in
= (const uint
*)_in
;
3825 ushort
*out
= (ushort
*)_out
;
3828 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
3829 (out
+j
)[0] = (ushort
)in
[i
+1];
3830 (out
+j
)[1] = (ushort
)in
[i
+2];
3831 (out
+j
)[2] = (ushort
)in
[0];
3834 static void translate_quads_uint2ushort_first2last(
3839 const uint
*in
= (const uint
*)_in
;
3840 ushort
*out
= (ushort
*)_out
;
3843 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
3844 (out
+j
+0)[0] = (ushort
)in
[i
+1];
3845 (out
+j
+0)[1] = (ushort
)in
[i
+3];
3846 (out
+j
+0)[2] = (ushort
)in
[i
+0];
3847 (out
+j
+3)[0] = (ushort
)in
[i
+2];
3848 (out
+j
+3)[1] = (ushort
)in
[i
+3];
3849 (out
+j
+3)[2] = (ushort
)in
[i
+1];
3852 static void translate_quadstrip_uint2ushort_first2last(
3857 const uint
*in
= (const uint
*)_in
;
3858 ushort
*out
= (ushort
*)_out
;
3861 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
3862 (out
+j
+0)[0] = (ushort
)in
[i
+0];
3863 (out
+j
+0)[1] = (ushort
)in
[i
+3];
3864 (out
+j
+0)[2] = (ushort
)in
[i
+2];
3865 (out
+j
+3)[0] = (ushort
)in
[i
+1];
3866 (out
+j
+3)[1] = (ushort
)in
[i
+3];
3867 (out
+j
+3)[2] = (ushort
)in
[i
+0];
3870 static void translate_polygon_uint2ushort_first2last(
3875 const uint
*in
= (const uint
*)_in
;
3876 ushort
*out
= (ushort
*)_out
;
3879 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
3880 (out
+j
)[0] = (ushort
)in
[i
+1];
3881 (out
+j
)[1] = (ushort
)in
[i
+2];
3882 (out
+j
)[2] = (ushort
)in
[0];
3885 static void translate_points_uint2ushort_last2first(
3890 const uint
*in
= (const uint
*)_in
;
3891 ushort
*out
= (ushort
*)_out
;
3894 for (i
= 0; i
< nr
; i
++) {
3895 (out
+i
)[0] = (ushort
)in
[i
];
3898 static void translate_lines_uint2ushort_last2first(
3903 const uint
*in
= (const uint
*)_in
;
3904 ushort
*out
= (ushort
*)_out
;
3907 for (i
= 0; i
< nr
; i
+=2) {
3908 (out
+i
)[0] = (ushort
)in
[i
+1];
3909 (out
+i
)[1] = (ushort
)in
[i
];
3912 static void translate_linestrip_uint2ushort_last2first(
3917 const uint
*in
= (const uint
*)_in
;
3918 ushort
*out
= (ushort
*)_out
;
3921 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
3922 (out
+j
)[0] = (ushort
)in
[i
+1];
3923 (out
+j
)[1] = (ushort
)in
[i
];
3926 static void translate_lineloop_uint2ushort_last2first(
3931 const uint
*in
= (const uint
*)_in
;
3932 ushort
*out
= (ushort
*)_out
;
3935 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
3936 (out
+j
)[0] = (ushort
)in
[i
+1];
3937 (out
+j
)[1] = (ushort
)in
[i
];
3939 (out
+j
)[0] = (ushort
)in
[0];
3940 (out
+j
)[1] = (ushort
)in
[i
];
3942 static void translate_tris_uint2ushort_last2first(
3947 const uint
*in
= (const uint
*)_in
;
3948 ushort
*out
= (ushort
*)_out
;
3951 for (i
= 0; i
< nr
; i
+=3) {
3952 (out
+i
)[0] = (ushort
)in
[i
+2];
3953 (out
+i
)[1] = (ushort
)in
[i
];
3954 (out
+i
)[2] = (ushort
)in
[i
+1];
3957 static void translate_tristrip_uint2ushort_last2first(
3962 const uint
*in
= (const uint
*)_in
;
3963 ushort
*out
= (ushort
*)_out
;
3966 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
3967 (out
+j
)[0] = (ushort
)in
[i
+2];
3968 (out
+j
)[1] = (ushort
)in
[i
+(i
&1)];
3969 (out
+j
)[2] = (ushort
)in
[i
+1-(i
&1)];
3972 static void translate_trifan_uint2ushort_last2first(
3977 const uint
*in
= (const uint
*)_in
;
3978 ushort
*out
= (ushort
*)_out
;
3981 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
3982 (out
+j
)[0] = (ushort
)in
[i
+2];
3983 (out
+j
)[1] = (ushort
)in
[0];
3984 (out
+j
)[2] = (ushort
)in
[i
+1];
3987 static void translate_quads_uint2ushort_last2first(
3992 const uint
*in
= (const uint
*)_in
;
3993 ushort
*out
= (ushort
*)_out
;
3996 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
3997 (out
+j
+0)[0] = (ushort
)in
[i
+3];
3998 (out
+j
+0)[1] = (ushort
)in
[i
+0];
3999 (out
+j
+0)[2] = (ushort
)in
[i
+1];
4000 (out
+j
+3)[0] = (ushort
)in
[i
+3];
4001 (out
+j
+3)[1] = (ushort
)in
[i
+1];
4002 (out
+j
+3)[2] = (ushort
)in
[i
+2];
4005 static void translate_quadstrip_uint2ushort_last2first(
4010 const uint
*in
= (const uint
*)_in
;
4011 ushort
*out
= (ushort
*)_out
;
4014 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
4015 (out
+j
+0)[0] = (ushort
)in
[i
+3];
4016 (out
+j
+0)[1] = (ushort
)in
[i
+2];
4017 (out
+j
+0)[2] = (ushort
)in
[i
+0];
4018 (out
+j
+3)[0] = (ushort
)in
[i
+3];
4019 (out
+j
+3)[1] = (ushort
)in
[i
+0];
4020 (out
+j
+3)[2] = (ushort
)in
[i
+1];
4023 static void translate_polygon_uint2ushort_last2first(
4028 const uint
*in
= (const uint
*)_in
;
4029 ushort
*out
= (ushort
*)_out
;
4032 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
4033 (out
+j
)[0] = (ushort
)in
[0];
4034 (out
+j
)[1] = (ushort
)in
[i
+1];
4035 (out
+j
)[2] = (ushort
)in
[i
+2];
4038 static void translate_points_uint2ushort_last2last(
4043 const uint
*in
= (const uint
*)_in
;
4044 ushort
*out
= (ushort
*)_out
;
4047 for (i
= 0; i
< nr
; i
++) {
4048 (out
+i
)[0] = (ushort
)in
[i
];
4051 static void translate_lines_uint2ushort_last2last(
4056 const uint
*in
= (const uint
*)_in
;
4057 ushort
*out
= (ushort
*)_out
;
4060 for (i
= 0; i
< nr
; i
+=2) {
4061 (out
+i
)[0] = (ushort
)in
[i
];
4062 (out
+i
)[1] = (ushort
)in
[i
+1];
4065 static void translate_linestrip_uint2ushort_last2last(
4070 const uint
*in
= (const uint
*)_in
;
4071 ushort
*out
= (ushort
*)_out
;
4074 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
4075 (out
+j
)[0] = (ushort
)in
[i
];
4076 (out
+j
)[1] = (ushort
)in
[i
+1];
4079 static void translate_lineloop_uint2ushort_last2last(
4084 const uint
*in
= (const uint
*)_in
;
4085 ushort
*out
= (ushort
*)_out
;
4088 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
4089 (out
+j
)[0] = (ushort
)in
[i
];
4090 (out
+j
)[1] = (ushort
)in
[i
+1];
4092 (out
+j
)[0] = (ushort
)in
[i
];
4093 (out
+j
)[1] = (ushort
)in
[0];
4095 static void translate_tris_uint2ushort_last2last(
4100 const uint
*in
= (const uint
*)_in
;
4101 ushort
*out
= (ushort
*)_out
;
4104 for (i
= 0; i
< nr
; i
+=3) {
4105 (out
+i
)[0] = (ushort
)in
[i
];
4106 (out
+i
)[1] = (ushort
)in
[i
+1];
4107 (out
+i
)[2] = (ushort
)in
[i
+2];
4110 static void translate_tristrip_uint2ushort_last2last(
4115 const uint
*in
= (const uint
*)_in
;
4116 ushort
*out
= (ushort
*)_out
;
4119 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
4120 (out
+j
)[0] = (ushort
)in
[i
+(i
&1)];
4121 (out
+j
)[1] = (ushort
)in
[i
+1-(i
&1)];
4122 (out
+j
)[2] = (ushort
)in
[i
+2];
4125 static void translate_trifan_uint2ushort_last2last(
4130 const uint
*in
= (const uint
*)_in
;
4131 ushort
*out
= (ushort
*)_out
;
4134 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
4135 (out
+j
)[0] = (ushort
)in
[0];
4136 (out
+j
)[1] = (ushort
)in
[i
+1];
4137 (out
+j
)[2] = (ushort
)in
[i
+2];
4140 static void translate_quads_uint2ushort_last2last(
4145 const uint
*in
= (const uint
*)_in
;
4146 ushort
*out
= (ushort
*)_out
;
4149 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
4150 (out
+j
+0)[0] = (ushort
)in
[i
+0];
4151 (out
+j
+0)[1] = (ushort
)in
[i
+1];
4152 (out
+j
+0)[2] = (ushort
)in
[i
+3];
4153 (out
+j
+3)[0] = (ushort
)in
[i
+1];
4154 (out
+j
+3)[1] = (ushort
)in
[i
+2];
4155 (out
+j
+3)[2] = (ushort
)in
[i
+3];
4158 static void translate_quadstrip_uint2ushort_last2last(
4163 const uint
*in
= (const uint
*)_in
;
4164 ushort
*out
= (ushort
*)_out
;
4167 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
4168 (out
+j
+0)[0] = (ushort
)in
[i
+2];
4169 (out
+j
+0)[1] = (ushort
)in
[i
+0];
4170 (out
+j
+0)[2] = (ushort
)in
[i
+3];
4171 (out
+j
+3)[0] = (ushort
)in
[i
+0];
4172 (out
+j
+3)[1] = (ushort
)in
[i
+1];
4173 (out
+j
+3)[2] = (ushort
)in
[i
+3];
4176 static void translate_polygon_uint2ushort_last2last(
4181 const uint
*in
= (const uint
*)_in
;
4182 ushort
*out
= (ushort
*)_out
;
4185 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
4186 (out
+j
)[0] = (ushort
)in
[i
+1];
4187 (out
+j
)[1] = (ushort
)in
[i
+2];
4188 (out
+j
)[2] = (ushort
)in
[0];
4191 static void translate_points_uint2uint_first2first(
4196 const uint
*in
= (const uint
*)_in
;
4197 uint
*out
= (uint
*)_out
;
4200 for (i
= 0; i
< nr
; i
++) {
4201 (out
+i
)[0] = (uint
)in
[i
];
4204 static void translate_lines_uint2uint_first2first(
4209 const uint
*in
= (const uint
*)_in
;
4210 uint
*out
= (uint
*)_out
;
4213 for (i
= 0; i
< nr
; i
+=2) {
4214 (out
+i
)[0] = (uint
)in
[i
];
4215 (out
+i
)[1] = (uint
)in
[i
+1];
4218 static void translate_linestrip_uint2uint_first2first(
4223 const uint
*in
= (const uint
*)_in
;
4224 uint
*out
= (uint
*)_out
;
4227 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
4228 (out
+j
)[0] = (uint
)in
[i
];
4229 (out
+j
)[1] = (uint
)in
[i
+1];
4232 static void translate_lineloop_uint2uint_first2first(
4237 const uint
*in
= (const uint
*)_in
;
4238 uint
*out
= (uint
*)_out
;
4241 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
4242 (out
+j
)[0] = (uint
)in
[i
];
4243 (out
+j
)[1] = (uint
)in
[i
+1];
4245 (out
+j
)[0] = (uint
)in
[i
];
4246 (out
+j
)[1] = (uint
)in
[0];
4248 static void translate_tris_uint2uint_first2first(
4253 const uint
*in
= (const uint
*)_in
;
4254 uint
*out
= (uint
*)_out
;
4257 for (i
= 0; i
< nr
; i
+=3) {
4258 (out
+i
)[0] = (uint
)in
[i
];
4259 (out
+i
)[1] = (uint
)in
[i
+1];
4260 (out
+i
)[2] = (uint
)in
[i
+2];
4263 static void translate_tristrip_uint2uint_first2first(
4268 const uint
*in
= (const uint
*)_in
;
4269 uint
*out
= (uint
*)_out
;
4272 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
4273 (out
+j
)[0] = (uint
)in
[i
];
4274 (out
+j
)[1] = (uint
)in
[i
+1+(i
&1)];
4275 (out
+j
)[2] = (uint
)in
[i
+2-(i
&1)];
4278 static void translate_trifan_uint2uint_first2first(
4283 const uint
*in
= (const uint
*)_in
;
4284 uint
*out
= (uint
*)_out
;
4287 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
4288 (out
+j
)[0] = (uint
)in
[0];
4289 (out
+j
)[1] = (uint
)in
[i
+1];
4290 (out
+j
)[2] = (uint
)in
[i
+2];
4293 static void translate_quads_uint2uint_first2first(
4298 const uint
*in
= (const uint
*)_in
;
4299 uint
*out
= (uint
*)_out
;
4302 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
4303 (out
+j
+0)[0] = (uint
)in
[i
+0];
4304 (out
+j
+0)[1] = (uint
)in
[i
+1];
4305 (out
+j
+0)[2] = (uint
)in
[i
+3];
4306 (out
+j
+3)[0] = (uint
)in
[i
+1];
4307 (out
+j
+3)[1] = (uint
)in
[i
+2];
4308 (out
+j
+3)[2] = (uint
)in
[i
+3];
4311 static void translate_quadstrip_uint2uint_first2first(
4316 const uint
*in
= (const uint
*)_in
;
4317 uint
*out
= (uint
*)_out
;
4320 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
4321 (out
+j
+0)[0] = (uint
)in
[i
+2];
4322 (out
+j
+0)[1] = (uint
)in
[i
+0];
4323 (out
+j
+0)[2] = (uint
)in
[i
+3];
4324 (out
+j
+3)[0] = (uint
)in
[i
+0];
4325 (out
+j
+3)[1] = (uint
)in
[i
+1];
4326 (out
+j
+3)[2] = (uint
)in
[i
+3];
4329 static void translate_polygon_uint2uint_first2first(
4334 const uint
*in
= (const uint
*)_in
;
4335 uint
*out
= (uint
*)_out
;
4338 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
4339 (out
+j
)[0] = (uint
)in
[0];
4340 (out
+j
)[1] = (uint
)in
[i
+1];
4341 (out
+j
)[2] = (uint
)in
[i
+2];
4344 static void translate_points_uint2uint_first2last(
4349 const uint
*in
= (const uint
*)_in
;
4350 uint
*out
= (uint
*)_out
;
4353 for (i
= 0; i
< nr
; i
++) {
4354 (out
+i
)[0] = (uint
)in
[i
];
4357 static void translate_lines_uint2uint_first2last(
4362 const uint
*in
= (const uint
*)_in
;
4363 uint
*out
= (uint
*)_out
;
4366 for (i
= 0; i
< nr
; i
+=2) {
4367 (out
+i
)[0] = (uint
)in
[i
+1];
4368 (out
+i
)[1] = (uint
)in
[i
];
4371 static void translate_linestrip_uint2uint_first2last(
4376 const uint
*in
= (const uint
*)_in
;
4377 uint
*out
= (uint
*)_out
;
4380 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
4381 (out
+j
)[0] = (uint
)in
[i
+1];
4382 (out
+j
)[1] = (uint
)in
[i
];
4385 static void translate_lineloop_uint2uint_first2last(
4390 const uint
*in
= (const uint
*)_in
;
4391 uint
*out
= (uint
*)_out
;
4394 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
4395 (out
+j
)[0] = (uint
)in
[i
+1];
4396 (out
+j
)[1] = (uint
)in
[i
];
4398 (out
+j
)[0] = (uint
)in
[0];
4399 (out
+j
)[1] = (uint
)in
[i
];
4401 static void translate_tris_uint2uint_first2last(
4406 const uint
*in
= (const uint
*)_in
;
4407 uint
*out
= (uint
*)_out
;
4410 for (i
= 0; i
< nr
; i
+=3) {
4411 (out
+i
)[0] = (uint
)in
[i
+1];
4412 (out
+i
)[1] = (uint
)in
[i
+2];
4413 (out
+i
)[2] = (uint
)in
[i
];
4416 static void translate_tristrip_uint2uint_first2last(
4421 const uint
*in
= (const uint
*)_in
;
4422 uint
*out
= (uint
*)_out
;
4425 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
4426 (out
+j
)[0] = (uint
)in
[i
+1+(i
&1)];
4427 (out
+j
)[1] = (uint
)in
[i
+2-(i
&1)];
4428 (out
+j
)[2] = (uint
)in
[i
];
4431 static void translate_trifan_uint2uint_first2last(
4436 const uint
*in
= (const uint
*)_in
;
4437 uint
*out
= (uint
*)_out
;
4440 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
4441 (out
+j
)[0] = (uint
)in
[i
+1];
4442 (out
+j
)[1] = (uint
)in
[i
+2];
4443 (out
+j
)[2] = (uint
)in
[0];
4446 static void translate_quads_uint2uint_first2last(
4451 const uint
*in
= (const uint
*)_in
;
4452 uint
*out
= (uint
*)_out
;
4455 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
4456 (out
+j
+0)[0] = (uint
)in
[i
+1];
4457 (out
+j
+0)[1] = (uint
)in
[i
+3];
4458 (out
+j
+0)[2] = (uint
)in
[i
+0];
4459 (out
+j
+3)[0] = (uint
)in
[i
+2];
4460 (out
+j
+3)[1] = (uint
)in
[i
+3];
4461 (out
+j
+3)[2] = (uint
)in
[i
+1];
4464 static void translate_quadstrip_uint2uint_first2last(
4469 const uint
*in
= (const uint
*)_in
;
4470 uint
*out
= (uint
*)_out
;
4473 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
4474 (out
+j
+0)[0] = (uint
)in
[i
+0];
4475 (out
+j
+0)[1] = (uint
)in
[i
+3];
4476 (out
+j
+0)[2] = (uint
)in
[i
+2];
4477 (out
+j
+3)[0] = (uint
)in
[i
+1];
4478 (out
+j
+3)[1] = (uint
)in
[i
+3];
4479 (out
+j
+3)[2] = (uint
)in
[i
+0];
4482 static void translate_polygon_uint2uint_first2last(
4487 const uint
*in
= (const uint
*)_in
;
4488 uint
*out
= (uint
*)_out
;
4491 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
4492 (out
+j
)[0] = (uint
)in
[i
+1];
4493 (out
+j
)[1] = (uint
)in
[i
+2];
4494 (out
+j
)[2] = (uint
)in
[0];
4497 static void translate_points_uint2uint_last2first(
4502 const uint
*in
= (const uint
*)_in
;
4503 uint
*out
= (uint
*)_out
;
4506 for (i
= 0; i
< nr
; i
++) {
4507 (out
+i
)[0] = (uint
)in
[i
];
4510 static void translate_lines_uint2uint_last2first(
4515 const uint
*in
= (const uint
*)_in
;
4516 uint
*out
= (uint
*)_out
;
4519 for (i
= 0; i
< nr
; i
+=2) {
4520 (out
+i
)[0] = (uint
)in
[i
+1];
4521 (out
+i
)[1] = (uint
)in
[i
];
4524 static void translate_linestrip_uint2uint_last2first(
4529 const uint
*in
= (const uint
*)_in
;
4530 uint
*out
= (uint
*)_out
;
4533 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
4534 (out
+j
)[0] = (uint
)in
[i
+1];
4535 (out
+j
)[1] = (uint
)in
[i
];
4538 static void translate_lineloop_uint2uint_last2first(
4543 const uint
*in
= (const uint
*)_in
;
4544 uint
*out
= (uint
*)_out
;
4547 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
4548 (out
+j
)[0] = (uint
)in
[i
+1];
4549 (out
+j
)[1] = (uint
)in
[i
];
4551 (out
+j
)[0] = (uint
)in
[0];
4552 (out
+j
)[1] = (uint
)in
[i
];
4554 static void translate_tris_uint2uint_last2first(
4559 const uint
*in
= (const uint
*)_in
;
4560 uint
*out
= (uint
*)_out
;
4563 for (i
= 0; i
< nr
; i
+=3) {
4564 (out
+i
)[0] = (uint
)in
[i
+2];
4565 (out
+i
)[1] = (uint
)in
[i
];
4566 (out
+i
)[2] = (uint
)in
[i
+1];
4569 static void translate_tristrip_uint2uint_last2first(
4574 const uint
*in
= (const uint
*)_in
;
4575 uint
*out
= (uint
*)_out
;
4578 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
4579 (out
+j
)[0] = (uint
)in
[i
+2];
4580 (out
+j
)[1] = (uint
)in
[i
+(i
&1)];
4581 (out
+j
)[2] = (uint
)in
[i
+1-(i
&1)];
4584 static void translate_trifan_uint2uint_last2first(
4589 const uint
*in
= (const uint
*)_in
;
4590 uint
*out
= (uint
*)_out
;
4593 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
4594 (out
+j
)[0] = (uint
)in
[i
+2];
4595 (out
+j
)[1] = (uint
)in
[0];
4596 (out
+j
)[2] = (uint
)in
[i
+1];
4599 static void translate_quads_uint2uint_last2first(
4604 const uint
*in
= (const uint
*)_in
;
4605 uint
*out
= (uint
*)_out
;
4608 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
4609 (out
+j
+0)[0] = (uint
)in
[i
+3];
4610 (out
+j
+0)[1] = (uint
)in
[i
+0];
4611 (out
+j
+0)[2] = (uint
)in
[i
+1];
4612 (out
+j
+3)[0] = (uint
)in
[i
+3];
4613 (out
+j
+3)[1] = (uint
)in
[i
+1];
4614 (out
+j
+3)[2] = (uint
)in
[i
+2];
4617 static void translate_quadstrip_uint2uint_last2first(
4622 const uint
*in
= (const uint
*)_in
;
4623 uint
*out
= (uint
*)_out
;
4626 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
4627 (out
+j
+0)[0] = (uint
)in
[i
+3];
4628 (out
+j
+0)[1] = (uint
)in
[i
+2];
4629 (out
+j
+0)[2] = (uint
)in
[i
+0];
4630 (out
+j
+3)[0] = (uint
)in
[i
+3];
4631 (out
+j
+3)[1] = (uint
)in
[i
+0];
4632 (out
+j
+3)[2] = (uint
)in
[i
+1];
4635 static void translate_polygon_uint2uint_last2first(
4640 const uint
*in
= (const uint
*)_in
;
4641 uint
*out
= (uint
*)_out
;
4644 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
4645 (out
+j
)[0] = (uint
)in
[0];
4646 (out
+j
)[1] = (uint
)in
[i
+1];
4647 (out
+j
)[2] = (uint
)in
[i
+2];
4650 static void translate_points_uint2uint_last2last(
4655 const uint
*in
= (const uint
*)_in
;
4656 uint
*out
= (uint
*)_out
;
4659 for (i
= 0; i
< nr
; i
++) {
4660 (out
+i
)[0] = (uint
)in
[i
];
4663 static void translate_lines_uint2uint_last2last(
4668 const uint
*in
= (const uint
*)_in
;
4669 uint
*out
= (uint
*)_out
;
4672 for (i
= 0; i
< nr
; i
+=2) {
4673 (out
+i
)[0] = (uint
)in
[i
];
4674 (out
+i
)[1] = (uint
)in
[i
+1];
4677 static void translate_linestrip_uint2uint_last2last(
4682 const uint
*in
= (const uint
*)_in
;
4683 uint
*out
= (uint
*)_out
;
4686 for (j
= i
= 0; j
< nr
; j
+=2, i
++) {
4687 (out
+j
)[0] = (uint
)in
[i
];
4688 (out
+j
)[1] = (uint
)in
[i
+1];
4691 static void translate_lineloop_uint2uint_last2last(
4696 const uint
*in
= (const uint
*)_in
;
4697 uint
*out
= (uint
*)_out
;
4700 for (j
= i
= 0; j
< nr
- 2; j
+=2, i
++) {
4701 (out
+j
)[0] = (uint
)in
[i
];
4702 (out
+j
)[1] = (uint
)in
[i
+1];
4704 (out
+j
)[0] = (uint
)in
[i
];
4705 (out
+j
)[1] = (uint
)in
[0];
4707 static void translate_tris_uint2uint_last2last(
4712 const uint
*in
= (const uint
*)_in
;
4713 uint
*out
= (uint
*)_out
;
4716 for (i
= 0; i
< nr
; i
+=3) {
4717 (out
+i
)[0] = (uint
)in
[i
];
4718 (out
+i
)[1] = (uint
)in
[i
+1];
4719 (out
+i
)[2] = (uint
)in
[i
+2];
4722 static void translate_tristrip_uint2uint_last2last(
4727 const uint
*in
= (const uint
*)_in
;
4728 uint
*out
= (uint
*)_out
;
4731 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
4732 (out
+j
)[0] = (uint
)in
[i
+(i
&1)];
4733 (out
+j
)[1] = (uint
)in
[i
+1-(i
&1)];
4734 (out
+j
)[2] = (uint
)in
[i
+2];
4737 static void translate_trifan_uint2uint_last2last(
4742 const uint
*in
= (const uint
*)_in
;
4743 uint
*out
= (uint
*)_out
;
4746 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
4747 (out
+j
)[0] = (uint
)in
[0];
4748 (out
+j
)[1] = (uint
)in
[i
+1];
4749 (out
+j
)[2] = (uint
)in
[i
+2];
4752 static void translate_quads_uint2uint_last2last(
4757 const uint
*in
= (const uint
*)_in
;
4758 uint
*out
= (uint
*)_out
;
4761 for (j
= i
= 0; j
< nr
; j
+=6, i
+=4) {
4762 (out
+j
+0)[0] = (uint
)in
[i
+0];
4763 (out
+j
+0)[1] = (uint
)in
[i
+1];
4764 (out
+j
+0)[2] = (uint
)in
[i
+3];
4765 (out
+j
+3)[0] = (uint
)in
[i
+1];
4766 (out
+j
+3)[1] = (uint
)in
[i
+2];
4767 (out
+j
+3)[2] = (uint
)in
[i
+3];
4770 static void translate_quadstrip_uint2uint_last2last(
4775 const uint
*in
= (const uint
*)_in
;
4776 uint
*out
= (uint
*)_out
;
4779 for (j
= i
= 0; j
< nr
; j
+=6, i
+=2) {
4780 (out
+j
+0)[0] = (uint
)in
[i
+2];
4781 (out
+j
+0)[1] = (uint
)in
[i
+0];
4782 (out
+j
+0)[2] = (uint
)in
[i
+3];
4783 (out
+j
+3)[0] = (uint
)in
[i
+0];
4784 (out
+j
+3)[1] = (uint
)in
[i
+1];
4785 (out
+j
+3)[2] = (uint
)in
[i
+3];
4788 static void translate_polygon_uint2uint_last2last(
4793 const uint
*in
= (const uint
*)_in
;
4794 uint
*out
= (uint
*)_out
;
4797 for (j
= i
= 0; j
< nr
; j
+=3, i
++) {
4798 (out
+j
)[0] = (uint
)in
[i
+1];
4799 (out
+j
)[1] = (uint
)in
[i
+2];
4800 (out
+j
)[2] = (uint
)in
[0];
4803 void u_index_init( void )
4805 static int firsttime
= 1;
4806 if (!firsttime
) return;
4808 generate
[OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_POINTS
] = generate_points_ushort_first2first
;
4809 generate
[OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_LINES
] = generate_lines_ushort_first2first
;
4810 generate
[OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_LINE_STRIP
] = generate_linestrip_ushort_first2first
;
4811 generate
[OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_LINE_LOOP
] = generate_lineloop_ushort_first2first
;
4812 generate
[OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_TRIANGLES
] = generate_tris_ushort_first2first
;
4813 generate
[OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_FAN
] = generate_trifan_ushort_first2first
;
4814 generate
[OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_STRIP
] = generate_tristrip_ushort_first2first
;
4815 generate
[OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_QUADS
] = generate_quads_ushort_first2first
;
4816 generate
[OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_QUAD_STRIP
] = generate_quadstrip_ushort_first2first
;
4817 generate
[OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_POLYGON
] = generate_polygon_ushort_first2first
;
4818 generate
[OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_POINTS
] = generate_points_ushort_first2last
;
4819 generate
[OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_LINES
] = generate_lines_ushort_first2last
;
4820 generate
[OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_LINE_STRIP
] = generate_linestrip_ushort_first2last
;
4821 generate
[OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_LINE_LOOP
] = generate_lineloop_ushort_first2last
;
4822 generate
[OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_TRIANGLES
] = generate_tris_ushort_first2last
;
4823 generate
[OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_TRIANGLE_FAN
] = generate_trifan_ushort_first2last
;
4824 generate
[OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_TRIANGLE_STRIP
] = generate_tristrip_ushort_first2last
;
4825 generate
[OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_QUADS
] = generate_quads_ushort_first2last
;
4826 generate
[OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_QUAD_STRIP
] = generate_quadstrip_ushort_first2last
;
4827 generate
[OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_POLYGON
] = generate_polygon_ushort_first2last
;
4828 generate
[OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_POINTS
] = generate_points_ushort_last2first
;
4829 generate
[OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_LINES
] = generate_lines_ushort_last2first
;
4830 generate
[OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_LINE_STRIP
] = generate_linestrip_ushort_last2first
;
4831 generate
[OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_LINE_LOOP
] = generate_lineloop_ushort_last2first
;
4832 generate
[OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_TRIANGLES
] = generate_tris_ushort_last2first
;
4833 generate
[OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_FAN
] = generate_trifan_ushort_last2first
;
4834 generate
[OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_STRIP
] = generate_tristrip_ushort_last2first
;
4835 generate
[OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_QUADS
] = generate_quads_ushort_last2first
;
4836 generate
[OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_QUAD_STRIP
] = generate_quadstrip_ushort_last2first
;
4837 generate
[OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_POLYGON
] = generate_polygon_ushort_last2first
;
4838 generate
[OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_POINTS
] = generate_points_ushort_last2last
;
4839 generate
[OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_LINES
] = generate_lines_ushort_last2last
;
4840 generate
[OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_LINE_STRIP
] = generate_linestrip_ushort_last2last
;
4841 generate
[OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_LINE_LOOP
] = generate_lineloop_ushort_last2last
;
4842 generate
[OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_TRIANGLES
] = generate_tris_ushort_last2last
;
4843 generate
[OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_TRIANGLE_FAN
] = generate_trifan_ushort_last2last
;
4844 generate
[OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_TRIANGLE_STRIP
] = generate_tristrip_ushort_last2last
;
4845 generate
[OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_QUADS
] = generate_quads_ushort_last2last
;
4846 generate
[OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_QUAD_STRIP
] = generate_quadstrip_ushort_last2last
;
4847 generate
[OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_POLYGON
] = generate_polygon_ushort_last2last
;
4848 generate
[OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_POINTS
] = generate_points_uint_first2first
;
4849 generate
[OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_LINES
] = generate_lines_uint_first2first
;
4850 generate
[OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_LINE_STRIP
] = generate_linestrip_uint_first2first
;
4851 generate
[OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_LINE_LOOP
] = generate_lineloop_uint_first2first
;
4852 generate
[OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_TRIANGLES
] = generate_tris_uint_first2first
;
4853 generate
[OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_FAN
] = generate_trifan_uint_first2first
;
4854 generate
[OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_STRIP
] = generate_tristrip_uint_first2first
;
4855 generate
[OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_QUADS
] = generate_quads_uint_first2first
;
4856 generate
[OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_QUAD_STRIP
] = generate_quadstrip_uint_first2first
;
4857 generate
[OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_POLYGON
] = generate_polygon_uint_first2first
;
4858 generate
[OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_POINTS
] = generate_points_uint_first2last
;
4859 generate
[OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_LINES
] = generate_lines_uint_first2last
;
4860 generate
[OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_LINE_STRIP
] = generate_linestrip_uint_first2last
;
4861 generate
[OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_LINE_LOOP
] = generate_lineloop_uint_first2last
;
4862 generate
[OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_TRIANGLES
] = generate_tris_uint_first2last
;
4863 generate
[OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_TRIANGLE_FAN
] = generate_trifan_uint_first2last
;
4864 generate
[OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_TRIANGLE_STRIP
] = generate_tristrip_uint_first2last
;
4865 generate
[OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_QUADS
] = generate_quads_uint_first2last
;
4866 generate
[OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_QUAD_STRIP
] = generate_quadstrip_uint_first2last
;
4867 generate
[OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_POLYGON
] = generate_polygon_uint_first2last
;
4868 generate
[OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_POINTS
] = generate_points_uint_last2first
;
4869 generate
[OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_LINES
] = generate_lines_uint_last2first
;
4870 generate
[OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_LINE_STRIP
] = generate_linestrip_uint_last2first
;
4871 generate
[OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_LINE_LOOP
] = generate_lineloop_uint_last2first
;
4872 generate
[OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_TRIANGLES
] = generate_tris_uint_last2first
;
4873 generate
[OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_FAN
] = generate_trifan_uint_last2first
;
4874 generate
[OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_STRIP
] = generate_tristrip_uint_last2first
;
4875 generate
[OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_QUADS
] = generate_quads_uint_last2first
;
4876 generate
[OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_QUAD_STRIP
] = generate_quadstrip_uint_last2first
;
4877 generate
[OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_POLYGON
] = generate_polygon_uint_last2first
;
4878 generate
[OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_POINTS
] = generate_points_uint_last2last
;
4879 generate
[OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_LINES
] = generate_lines_uint_last2last
;
4880 generate
[OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_LINE_STRIP
] = generate_linestrip_uint_last2last
;
4881 generate
[OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_LINE_LOOP
] = generate_lineloop_uint_last2last
;
4882 generate
[OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_TRIANGLES
] = generate_tris_uint_last2last
;
4883 generate
[OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_TRIANGLE_FAN
] = generate_trifan_uint_last2last
;
4884 generate
[OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_TRIANGLE_STRIP
] = generate_tristrip_uint_last2last
;
4885 generate
[OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_QUADS
] = generate_quads_uint_last2last
;
4886 generate
[OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_QUAD_STRIP
] = generate_quadstrip_uint_last2last
;
4887 generate
[OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_POLYGON
] = generate_polygon_uint_last2last
;
4888 translate
[IN_UBYTE
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_POINTS
] = translate_points_ubyte2ushort_first2first
;
4889 translate
[IN_UBYTE
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_LINES
] = translate_lines_ubyte2ushort_first2first
;
4890 translate
[IN_UBYTE
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_LINE_STRIP
] = translate_linestrip_ubyte2ushort_first2first
;
4891 translate
[IN_UBYTE
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_LINE_LOOP
] = translate_lineloop_ubyte2ushort_first2first
;
4892 translate
[IN_UBYTE
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_TRIANGLES
] = translate_tris_ubyte2ushort_first2first
;
4893 translate
[IN_UBYTE
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_FAN
] = translate_trifan_ubyte2ushort_first2first
;
4894 translate
[IN_UBYTE
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_STRIP
] = translate_tristrip_ubyte2ushort_first2first
;
4895 translate
[IN_UBYTE
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_QUADS
] = translate_quads_ubyte2ushort_first2first
;
4896 translate
[IN_UBYTE
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_QUAD_STRIP
] = translate_quadstrip_ubyte2ushort_first2first
;
4897 translate
[IN_UBYTE
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_POLYGON
] = translate_polygon_ubyte2ushort_first2first
;
4898 translate
[IN_UBYTE
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_POINTS
] = translate_points_ubyte2ushort_first2last
;
4899 translate
[IN_UBYTE
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_LINES
] = translate_lines_ubyte2ushort_first2last
;
4900 translate
[IN_UBYTE
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_LINE_STRIP
] = translate_linestrip_ubyte2ushort_first2last
;
4901 translate
[IN_UBYTE
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_LINE_LOOP
] = translate_lineloop_ubyte2ushort_first2last
;
4902 translate
[IN_UBYTE
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_TRIANGLES
] = translate_tris_ubyte2ushort_first2last
;
4903 translate
[IN_UBYTE
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_TRIANGLE_FAN
] = translate_trifan_ubyte2ushort_first2last
;
4904 translate
[IN_UBYTE
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_TRIANGLE_STRIP
] = translate_tristrip_ubyte2ushort_first2last
;
4905 translate
[IN_UBYTE
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_QUADS
] = translate_quads_ubyte2ushort_first2last
;
4906 translate
[IN_UBYTE
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_QUAD_STRIP
] = translate_quadstrip_ubyte2ushort_first2last
;
4907 translate
[IN_UBYTE
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_POLYGON
] = translate_polygon_ubyte2ushort_first2last
;
4908 translate
[IN_UBYTE
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_POINTS
] = translate_points_ubyte2ushort_last2first
;
4909 translate
[IN_UBYTE
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_LINES
] = translate_lines_ubyte2ushort_last2first
;
4910 translate
[IN_UBYTE
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_LINE_STRIP
] = translate_linestrip_ubyte2ushort_last2first
;
4911 translate
[IN_UBYTE
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_LINE_LOOP
] = translate_lineloop_ubyte2ushort_last2first
;
4912 translate
[IN_UBYTE
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_TRIANGLES
] = translate_tris_ubyte2ushort_last2first
;
4913 translate
[IN_UBYTE
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_FAN
] = translate_trifan_ubyte2ushort_last2first
;
4914 translate
[IN_UBYTE
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_STRIP
] = translate_tristrip_ubyte2ushort_last2first
;
4915 translate
[IN_UBYTE
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_QUADS
] = translate_quads_ubyte2ushort_last2first
;
4916 translate
[IN_UBYTE
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_QUAD_STRIP
] = translate_quadstrip_ubyte2ushort_last2first
;
4917 translate
[IN_UBYTE
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_POLYGON
] = translate_polygon_ubyte2ushort_last2first
;
4918 translate
[IN_UBYTE
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_POINTS
] = translate_points_ubyte2ushort_last2last
;
4919 translate
[IN_UBYTE
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_LINES
] = translate_lines_ubyte2ushort_last2last
;
4920 translate
[IN_UBYTE
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_LINE_STRIP
] = translate_linestrip_ubyte2ushort_last2last
;
4921 translate
[IN_UBYTE
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_LINE_LOOP
] = translate_lineloop_ubyte2ushort_last2last
;
4922 translate
[IN_UBYTE
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_TRIANGLES
] = translate_tris_ubyte2ushort_last2last
;
4923 translate
[IN_UBYTE
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_TRIANGLE_FAN
] = translate_trifan_ubyte2ushort_last2last
;
4924 translate
[IN_UBYTE
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_TRIANGLE_STRIP
] = translate_tristrip_ubyte2ushort_last2last
;
4925 translate
[IN_UBYTE
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_QUADS
] = translate_quads_ubyte2ushort_last2last
;
4926 translate
[IN_UBYTE
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_QUAD_STRIP
] = translate_quadstrip_ubyte2ushort_last2last
;
4927 translate
[IN_UBYTE
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_POLYGON
] = translate_polygon_ubyte2ushort_last2last
;
4928 translate
[IN_UBYTE
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_POINTS
] = translate_points_ubyte2uint_first2first
;
4929 translate
[IN_UBYTE
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_LINES
] = translate_lines_ubyte2uint_first2first
;
4930 translate
[IN_UBYTE
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_LINE_STRIP
] = translate_linestrip_ubyte2uint_first2first
;
4931 translate
[IN_UBYTE
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_LINE_LOOP
] = translate_lineloop_ubyte2uint_first2first
;
4932 translate
[IN_UBYTE
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_TRIANGLES
] = translate_tris_ubyte2uint_first2first
;
4933 translate
[IN_UBYTE
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_FAN
] = translate_trifan_ubyte2uint_first2first
;
4934 translate
[IN_UBYTE
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_STRIP
] = translate_tristrip_ubyte2uint_first2first
;
4935 translate
[IN_UBYTE
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_QUADS
] = translate_quads_ubyte2uint_first2first
;
4936 translate
[IN_UBYTE
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_QUAD_STRIP
] = translate_quadstrip_ubyte2uint_first2first
;
4937 translate
[IN_UBYTE
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_POLYGON
] = translate_polygon_ubyte2uint_first2first
;
4938 translate
[IN_UBYTE
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_POINTS
] = translate_points_ubyte2uint_first2last
;
4939 translate
[IN_UBYTE
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_LINES
] = translate_lines_ubyte2uint_first2last
;
4940 translate
[IN_UBYTE
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_LINE_STRIP
] = translate_linestrip_ubyte2uint_first2last
;
4941 translate
[IN_UBYTE
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_LINE_LOOP
] = translate_lineloop_ubyte2uint_first2last
;
4942 translate
[IN_UBYTE
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_TRIANGLES
] = translate_tris_ubyte2uint_first2last
;
4943 translate
[IN_UBYTE
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_TRIANGLE_FAN
] = translate_trifan_ubyte2uint_first2last
;
4944 translate
[IN_UBYTE
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_TRIANGLE_STRIP
] = translate_tristrip_ubyte2uint_first2last
;
4945 translate
[IN_UBYTE
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_QUADS
] = translate_quads_ubyte2uint_first2last
;
4946 translate
[IN_UBYTE
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_QUAD_STRIP
] = translate_quadstrip_ubyte2uint_first2last
;
4947 translate
[IN_UBYTE
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_POLYGON
] = translate_polygon_ubyte2uint_first2last
;
4948 translate
[IN_UBYTE
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_POINTS
] = translate_points_ubyte2uint_last2first
;
4949 translate
[IN_UBYTE
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_LINES
] = translate_lines_ubyte2uint_last2first
;
4950 translate
[IN_UBYTE
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_LINE_STRIP
] = translate_linestrip_ubyte2uint_last2first
;
4951 translate
[IN_UBYTE
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_LINE_LOOP
] = translate_lineloop_ubyte2uint_last2first
;
4952 translate
[IN_UBYTE
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_TRIANGLES
] = translate_tris_ubyte2uint_last2first
;
4953 translate
[IN_UBYTE
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_FAN
] = translate_trifan_ubyte2uint_last2first
;
4954 translate
[IN_UBYTE
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_STRIP
] = translate_tristrip_ubyte2uint_last2first
;
4955 translate
[IN_UBYTE
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_QUADS
] = translate_quads_ubyte2uint_last2first
;
4956 translate
[IN_UBYTE
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_QUAD_STRIP
] = translate_quadstrip_ubyte2uint_last2first
;
4957 translate
[IN_UBYTE
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_POLYGON
] = translate_polygon_ubyte2uint_last2first
;
4958 translate
[IN_UBYTE
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_POINTS
] = translate_points_ubyte2uint_last2last
;
4959 translate
[IN_UBYTE
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_LINES
] = translate_lines_ubyte2uint_last2last
;
4960 translate
[IN_UBYTE
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_LINE_STRIP
] = translate_linestrip_ubyte2uint_last2last
;
4961 translate
[IN_UBYTE
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_LINE_LOOP
] = translate_lineloop_ubyte2uint_last2last
;
4962 translate
[IN_UBYTE
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_TRIANGLES
] = translate_tris_ubyte2uint_last2last
;
4963 translate
[IN_UBYTE
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_TRIANGLE_FAN
] = translate_trifan_ubyte2uint_last2last
;
4964 translate
[IN_UBYTE
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_TRIANGLE_STRIP
] = translate_tristrip_ubyte2uint_last2last
;
4965 translate
[IN_UBYTE
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_QUADS
] = translate_quads_ubyte2uint_last2last
;
4966 translate
[IN_UBYTE
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_QUAD_STRIP
] = translate_quadstrip_ubyte2uint_last2last
;
4967 translate
[IN_UBYTE
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_POLYGON
] = translate_polygon_ubyte2uint_last2last
;
4968 translate
[IN_USHORT
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_POINTS
] = translate_points_ushort2ushort_first2first
;
4969 translate
[IN_USHORT
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_LINES
] = translate_lines_ushort2ushort_first2first
;
4970 translate
[IN_USHORT
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_LINE_STRIP
] = translate_linestrip_ushort2ushort_first2first
;
4971 translate
[IN_USHORT
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_LINE_LOOP
] = translate_lineloop_ushort2ushort_first2first
;
4972 translate
[IN_USHORT
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_TRIANGLES
] = translate_tris_ushort2ushort_first2first
;
4973 translate
[IN_USHORT
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_FAN
] = translate_trifan_ushort2ushort_first2first
;
4974 translate
[IN_USHORT
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_STRIP
] = translate_tristrip_ushort2ushort_first2first
;
4975 translate
[IN_USHORT
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_QUADS
] = translate_quads_ushort2ushort_first2first
;
4976 translate
[IN_USHORT
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_QUAD_STRIP
] = translate_quadstrip_ushort2ushort_first2first
;
4977 translate
[IN_USHORT
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_POLYGON
] = translate_polygon_ushort2ushort_first2first
;
4978 translate
[IN_USHORT
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_POINTS
] = translate_points_ushort2ushort_first2last
;
4979 translate
[IN_USHORT
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_LINES
] = translate_lines_ushort2ushort_first2last
;
4980 translate
[IN_USHORT
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_LINE_STRIP
] = translate_linestrip_ushort2ushort_first2last
;
4981 translate
[IN_USHORT
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_LINE_LOOP
] = translate_lineloop_ushort2ushort_first2last
;
4982 translate
[IN_USHORT
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_TRIANGLES
] = translate_tris_ushort2ushort_first2last
;
4983 translate
[IN_USHORT
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_TRIANGLE_FAN
] = translate_trifan_ushort2ushort_first2last
;
4984 translate
[IN_USHORT
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_TRIANGLE_STRIP
] = translate_tristrip_ushort2ushort_first2last
;
4985 translate
[IN_USHORT
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_QUADS
] = translate_quads_ushort2ushort_first2last
;
4986 translate
[IN_USHORT
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_QUAD_STRIP
] = translate_quadstrip_ushort2ushort_first2last
;
4987 translate
[IN_USHORT
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_POLYGON
] = translate_polygon_ushort2ushort_first2last
;
4988 translate
[IN_USHORT
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_POINTS
] = translate_points_ushort2ushort_last2first
;
4989 translate
[IN_USHORT
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_LINES
] = translate_lines_ushort2ushort_last2first
;
4990 translate
[IN_USHORT
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_LINE_STRIP
] = translate_linestrip_ushort2ushort_last2first
;
4991 translate
[IN_USHORT
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_LINE_LOOP
] = translate_lineloop_ushort2ushort_last2first
;
4992 translate
[IN_USHORT
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_TRIANGLES
] = translate_tris_ushort2ushort_last2first
;
4993 translate
[IN_USHORT
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_FAN
] = translate_trifan_ushort2ushort_last2first
;
4994 translate
[IN_USHORT
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_STRIP
] = translate_tristrip_ushort2ushort_last2first
;
4995 translate
[IN_USHORT
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_QUADS
] = translate_quads_ushort2ushort_last2first
;
4996 translate
[IN_USHORT
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_QUAD_STRIP
] = translate_quadstrip_ushort2ushort_last2first
;
4997 translate
[IN_USHORT
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_POLYGON
] = translate_polygon_ushort2ushort_last2first
;
4998 translate
[IN_USHORT
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_POINTS
] = translate_points_ushort2ushort_last2last
;
4999 translate
[IN_USHORT
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_LINES
] = translate_lines_ushort2ushort_last2last
;
5000 translate
[IN_USHORT
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_LINE_STRIP
] = translate_linestrip_ushort2ushort_last2last
;
5001 translate
[IN_USHORT
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_LINE_LOOP
] = translate_lineloop_ushort2ushort_last2last
;
5002 translate
[IN_USHORT
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_TRIANGLES
] = translate_tris_ushort2ushort_last2last
;
5003 translate
[IN_USHORT
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_TRIANGLE_FAN
] = translate_trifan_ushort2ushort_last2last
;
5004 translate
[IN_USHORT
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_TRIANGLE_STRIP
] = translate_tristrip_ushort2ushort_last2last
;
5005 translate
[IN_USHORT
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_QUADS
] = translate_quads_ushort2ushort_last2last
;
5006 translate
[IN_USHORT
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_QUAD_STRIP
] = translate_quadstrip_ushort2ushort_last2last
;
5007 translate
[IN_USHORT
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_POLYGON
] = translate_polygon_ushort2ushort_last2last
;
5008 translate
[IN_USHORT
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_POINTS
] = translate_points_ushort2uint_first2first
;
5009 translate
[IN_USHORT
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_LINES
] = translate_lines_ushort2uint_first2first
;
5010 translate
[IN_USHORT
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_LINE_STRIP
] = translate_linestrip_ushort2uint_first2first
;
5011 translate
[IN_USHORT
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_LINE_LOOP
] = translate_lineloop_ushort2uint_first2first
;
5012 translate
[IN_USHORT
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_TRIANGLES
] = translate_tris_ushort2uint_first2first
;
5013 translate
[IN_USHORT
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_FAN
] = translate_trifan_ushort2uint_first2first
;
5014 translate
[IN_USHORT
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_STRIP
] = translate_tristrip_ushort2uint_first2first
;
5015 translate
[IN_USHORT
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_QUADS
] = translate_quads_ushort2uint_first2first
;
5016 translate
[IN_USHORT
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_QUAD_STRIP
] = translate_quadstrip_ushort2uint_first2first
;
5017 translate
[IN_USHORT
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_POLYGON
] = translate_polygon_ushort2uint_first2first
;
5018 translate
[IN_USHORT
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_POINTS
] = translate_points_ushort2uint_first2last
;
5019 translate
[IN_USHORT
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_LINES
] = translate_lines_ushort2uint_first2last
;
5020 translate
[IN_USHORT
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_LINE_STRIP
] = translate_linestrip_ushort2uint_first2last
;
5021 translate
[IN_USHORT
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_LINE_LOOP
] = translate_lineloop_ushort2uint_first2last
;
5022 translate
[IN_USHORT
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_TRIANGLES
] = translate_tris_ushort2uint_first2last
;
5023 translate
[IN_USHORT
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_TRIANGLE_FAN
] = translate_trifan_ushort2uint_first2last
;
5024 translate
[IN_USHORT
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_TRIANGLE_STRIP
] = translate_tristrip_ushort2uint_first2last
;
5025 translate
[IN_USHORT
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_QUADS
] = translate_quads_ushort2uint_first2last
;
5026 translate
[IN_USHORT
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_QUAD_STRIP
] = translate_quadstrip_ushort2uint_first2last
;
5027 translate
[IN_USHORT
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_POLYGON
] = translate_polygon_ushort2uint_first2last
;
5028 translate
[IN_USHORT
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_POINTS
] = translate_points_ushort2uint_last2first
;
5029 translate
[IN_USHORT
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_LINES
] = translate_lines_ushort2uint_last2first
;
5030 translate
[IN_USHORT
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_LINE_STRIP
] = translate_linestrip_ushort2uint_last2first
;
5031 translate
[IN_USHORT
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_LINE_LOOP
] = translate_lineloop_ushort2uint_last2first
;
5032 translate
[IN_USHORT
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_TRIANGLES
] = translate_tris_ushort2uint_last2first
;
5033 translate
[IN_USHORT
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_FAN
] = translate_trifan_ushort2uint_last2first
;
5034 translate
[IN_USHORT
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_STRIP
] = translate_tristrip_ushort2uint_last2first
;
5035 translate
[IN_USHORT
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_QUADS
] = translate_quads_ushort2uint_last2first
;
5036 translate
[IN_USHORT
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_QUAD_STRIP
] = translate_quadstrip_ushort2uint_last2first
;
5037 translate
[IN_USHORT
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_POLYGON
] = translate_polygon_ushort2uint_last2first
;
5038 translate
[IN_USHORT
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_POINTS
] = translate_points_ushort2uint_last2last
;
5039 translate
[IN_USHORT
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_LINES
] = translate_lines_ushort2uint_last2last
;
5040 translate
[IN_USHORT
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_LINE_STRIP
] = translate_linestrip_ushort2uint_last2last
;
5041 translate
[IN_USHORT
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_LINE_LOOP
] = translate_lineloop_ushort2uint_last2last
;
5042 translate
[IN_USHORT
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_TRIANGLES
] = translate_tris_ushort2uint_last2last
;
5043 translate
[IN_USHORT
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_TRIANGLE_FAN
] = translate_trifan_ushort2uint_last2last
;
5044 translate
[IN_USHORT
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_TRIANGLE_STRIP
] = translate_tristrip_ushort2uint_last2last
;
5045 translate
[IN_USHORT
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_QUADS
] = translate_quads_ushort2uint_last2last
;
5046 translate
[IN_USHORT
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_QUAD_STRIP
] = translate_quadstrip_ushort2uint_last2last
;
5047 translate
[IN_USHORT
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_POLYGON
] = translate_polygon_ushort2uint_last2last
;
5048 translate
[IN_UINT
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_POINTS
] = translate_points_uint2ushort_first2first
;
5049 translate
[IN_UINT
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_LINES
] = translate_lines_uint2ushort_first2first
;
5050 translate
[IN_UINT
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_LINE_STRIP
] = translate_linestrip_uint2ushort_first2first
;
5051 translate
[IN_UINT
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_LINE_LOOP
] = translate_lineloop_uint2ushort_first2first
;
5052 translate
[IN_UINT
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_TRIANGLES
] = translate_tris_uint2ushort_first2first
;
5053 translate
[IN_UINT
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_FAN
] = translate_trifan_uint2ushort_first2first
;
5054 translate
[IN_UINT
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_STRIP
] = translate_tristrip_uint2ushort_first2first
;
5055 translate
[IN_UINT
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_QUADS
] = translate_quads_uint2ushort_first2first
;
5056 translate
[IN_UINT
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_QUAD_STRIP
] = translate_quadstrip_uint2ushort_first2first
;
5057 translate
[IN_UINT
][OUT_USHORT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_POLYGON
] = translate_polygon_uint2ushort_first2first
;
5058 translate
[IN_UINT
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_POINTS
] = translate_points_uint2ushort_first2last
;
5059 translate
[IN_UINT
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_LINES
] = translate_lines_uint2ushort_first2last
;
5060 translate
[IN_UINT
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_LINE_STRIP
] = translate_linestrip_uint2ushort_first2last
;
5061 translate
[IN_UINT
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_LINE_LOOP
] = translate_lineloop_uint2ushort_first2last
;
5062 translate
[IN_UINT
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_TRIANGLES
] = translate_tris_uint2ushort_first2last
;
5063 translate
[IN_UINT
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_TRIANGLE_FAN
] = translate_trifan_uint2ushort_first2last
;
5064 translate
[IN_UINT
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_TRIANGLE_STRIP
] = translate_tristrip_uint2ushort_first2last
;
5065 translate
[IN_UINT
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_QUADS
] = translate_quads_uint2ushort_first2last
;
5066 translate
[IN_UINT
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_QUAD_STRIP
] = translate_quadstrip_uint2ushort_first2last
;
5067 translate
[IN_UINT
][OUT_USHORT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_POLYGON
] = translate_polygon_uint2ushort_first2last
;
5068 translate
[IN_UINT
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_POINTS
] = translate_points_uint2ushort_last2first
;
5069 translate
[IN_UINT
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_LINES
] = translate_lines_uint2ushort_last2first
;
5070 translate
[IN_UINT
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_LINE_STRIP
] = translate_linestrip_uint2ushort_last2first
;
5071 translate
[IN_UINT
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_LINE_LOOP
] = translate_lineloop_uint2ushort_last2first
;
5072 translate
[IN_UINT
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_TRIANGLES
] = translate_tris_uint2ushort_last2first
;
5073 translate
[IN_UINT
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_FAN
] = translate_trifan_uint2ushort_last2first
;
5074 translate
[IN_UINT
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_STRIP
] = translate_tristrip_uint2ushort_last2first
;
5075 translate
[IN_UINT
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_QUADS
] = translate_quads_uint2ushort_last2first
;
5076 translate
[IN_UINT
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_QUAD_STRIP
] = translate_quadstrip_uint2ushort_last2first
;
5077 translate
[IN_UINT
][OUT_USHORT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_POLYGON
] = translate_polygon_uint2ushort_last2first
;
5078 translate
[IN_UINT
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_POINTS
] = translate_points_uint2ushort_last2last
;
5079 translate
[IN_UINT
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_LINES
] = translate_lines_uint2ushort_last2last
;
5080 translate
[IN_UINT
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_LINE_STRIP
] = translate_linestrip_uint2ushort_last2last
;
5081 translate
[IN_UINT
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_LINE_LOOP
] = translate_lineloop_uint2ushort_last2last
;
5082 translate
[IN_UINT
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_TRIANGLES
] = translate_tris_uint2ushort_last2last
;
5083 translate
[IN_UINT
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_TRIANGLE_FAN
] = translate_trifan_uint2ushort_last2last
;
5084 translate
[IN_UINT
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_TRIANGLE_STRIP
] = translate_tristrip_uint2ushort_last2last
;
5085 translate
[IN_UINT
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_QUADS
] = translate_quads_uint2ushort_last2last
;
5086 translate
[IN_UINT
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_QUAD_STRIP
] = translate_quadstrip_uint2ushort_last2last
;
5087 translate
[IN_UINT
][OUT_USHORT
][PV_LAST
][PV_LAST
][PIPE_PRIM_POLYGON
] = translate_polygon_uint2ushort_last2last
;
5088 translate
[IN_UINT
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_POINTS
] = translate_points_uint2uint_first2first
;
5089 translate
[IN_UINT
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_LINES
] = translate_lines_uint2uint_first2first
;
5090 translate
[IN_UINT
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_LINE_STRIP
] = translate_linestrip_uint2uint_first2first
;
5091 translate
[IN_UINT
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_LINE_LOOP
] = translate_lineloop_uint2uint_first2first
;
5092 translate
[IN_UINT
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_TRIANGLES
] = translate_tris_uint2uint_first2first
;
5093 translate
[IN_UINT
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_FAN
] = translate_trifan_uint2uint_first2first
;
5094 translate
[IN_UINT
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_STRIP
] = translate_tristrip_uint2uint_first2first
;
5095 translate
[IN_UINT
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_QUADS
] = translate_quads_uint2uint_first2first
;
5096 translate
[IN_UINT
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_QUAD_STRIP
] = translate_quadstrip_uint2uint_first2first
;
5097 translate
[IN_UINT
][OUT_UINT
][PV_FIRST
][PV_FIRST
][PIPE_PRIM_POLYGON
] = translate_polygon_uint2uint_first2first
;
5098 translate
[IN_UINT
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_POINTS
] = translate_points_uint2uint_first2last
;
5099 translate
[IN_UINT
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_LINES
] = translate_lines_uint2uint_first2last
;
5100 translate
[IN_UINT
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_LINE_STRIP
] = translate_linestrip_uint2uint_first2last
;
5101 translate
[IN_UINT
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_LINE_LOOP
] = translate_lineloop_uint2uint_first2last
;
5102 translate
[IN_UINT
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_TRIANGLES
] = translate_tris_uint2uint_first2last
;
5103 translate
[IN_UINT
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_TRIANGLE_FAN
] = translate_trifan_uint2uint_first2last
;
5104 translate
[IN_UINT
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_TRIANGLE_STRIP
] = translate_tristrip_uint2uint_first2last
;
5105 translate
[IN_UINT
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_QUADS
] = translate_quads_uint2uint_first2last
;
5106 translate
[IN_UINT
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_QUAD_STRIP
] = translate_quadstrip_uint2uint_first2last
;
5107 translate
[IN_UINT
][OUT_UINT
][PV_FIRST
][PV_LAST
][PIPE_PRIM_POLYGON
] = translate_polygon_uint2uint_first2last
;
5108 translate
[IN_UINT
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_POINTS
] = translate_points_uint2uint_last2first
;
5109 translate
[IN_UINT
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_LINES
] = translate_lines_uint2uint_last2first
;
5110 translate
[IN_UINT
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_LINE_STRIP
] = translate_linestrip_uint2uint_last2first
;
5111 translate
[IN_UINT
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_LINE_LOOP
] = translate_lineloop_uint2uint_last2first
;
5112 translate
[IN_UINT
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_TRIANGLES
] = translate_tris_uint2uint_last2first
;
5113 translate
[IN_UINT
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_FAN
] = translate_trifan_uint2uint_last2first
;
5114 translate
[IN_UINT
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_TRIANGLE_STRIP
] = translate_tristrip_uint2uint_last2first
;
5115 translate
[IN_UINT
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_QUADS
] = translate_quads_uint2uint_last2first
;
5116 translate
[IN_UINT
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_QUAD_STRIP
] = translate_quadstrip_uint2uint_last2first
;
5117 translate
[IN_UINT
][OUT_UINT
][PV_LAST
][PV_FIRST
][PIPE_PRIM_POLYGON
] = translate_polygon_uint2uint_last2first
;
5118 translate
[IN_UINT
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_POINTS
] = translate_points_uint2uint_last2last
;
5119 translate
[IN_UINT
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_LINES
] = translate_lines_uint2uint_last2last
;
5120 translate
[IN_UINT
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_LINE_STRIP
] = translate_linestrip_uint2uint_last2last
;
5121 translate
[IN_UINT
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_LINE_LOOP
] = translate_lineloop_uint2uint_last2last
;
5122 translate
[IN_UINT
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_TRIANGLES
] = translate_tris_uint2uint_last2last
;
5123 translate
[IN_UINT
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_TRIANGLE_FAN
] = translate_trifan_uint2uint_last2last
;
5124 translate
[IN_UINT
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_TRIANGLE_STRIP
] = translate_tristrip_uint2uint_last2last
;
5125 translate
[IN_UINT
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_QUADS
] = translate_quads_uint2uint_last2last
;
5126 translate
[IN_UINT
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_QUAD_STRIP
] = translate_quadstrip_uint2uint_last2last
;
5127 translate
[IN_UINT
][OUT_UINT
][PV_LAST
][PV_LAST
][PIPE_PRIM_POLYGON
] = translate_polygon_uint2uint_last2last
;
5129 #include "indices/u_indices.c"