Rice GLES2 (from mupen64plus-ae) plugin. Compile but doesn't works well on the OpenPa...
[mupen64plus-pandora.git] / source / gles2rice / src / TextureFilters_lq2x.h
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2  *   Mupen64plus - TextureFilters_lq2x.h                                   *
3  *   Mupen64Plus homepage: http://code.google.com/p/mupen64plus/           *
4  *   Copyright (C) 2003 MaxSt ( maxst@hiend3d.com )                        *
5  *                                                                         *
6  *   This program is free software; you can redistribute it and/or modify  *
7  *   it under the terms of the GNU General Public License as published by  *
8  *   the Free Software Foundation; either version 2 of the License, or     *
9  *   (at your option) any later version.                                   *
10  *                                                                         *
11  *   This program is distributed in the hope that it will be useful,       *
12  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
13  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
14  *   GNU General Public License for more details.                          *
15  *                                                                         *
16  *   You should have received a copy of the GNU General Public License     *
17  *   along with this program; if not, write to the                         *
18  *   Free Software Foundation, Inc.,                                       *
19  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.          *
20  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
21
22 case 0 : 
23 case 2 : 
24 case 4 : 
25 case 6 : 
26 case 8 : 
27 case 12 : 
28 case 16 : 
29 case 20 : 
30 case 24 : 
31 case 28 : 
32 case 32 : 
33 case 34 : 
34 case 36 : 
35 case 38 : 
36 case 40 : 
37 case 44 : 
38 case 48 : 
39 case 52 : 
40 case 56 : 
41 case 60 : 
42 case 64 : 
43 case 66 : 
44 case 68 : 
45 case 70 : 
46 case 96 : 
47 case 98 : 
48 case 100 : 
49 case 102 : 
50 case 128 : 
51 case 130 : 
52 case 132 : 
53 case 134 : 
54 case 136 : 
55 case 140 : 
56 case 144 : 
57 case 148 : 
58 case 152 : 
59 case 156 : 
60 case 160 : 
61 case 162 : 
62 case 164 : 
63 case 166 : 
64 case 168 : 
65 case 172 : 
66 case 176 : 
67 case 180 : 
68 case 184 : 
69 case 188 : 
70 case 192 : 
71 case 194 : 
72 case 196 : 
73 case 198 : 
74 case 224 : 
75 case 226 : 
76 case 228 : 
77 case 230 : 
78 {
79   P0 = IC(0);
80   P1 = IC(0);
81   P2 = IC(0);
82   P3 = IC(0);
83 } break;
84 case 1 : 
85 case 5 : 
86 case 9 : 
87 case 13 : 
88 case 17 : 
89 case 21 : 
90 case 25 : 
91 case 29 : 
92 case 33 : 
93 case 37 : 
94 case 41 : 
95 case 45 : 
96 case 49 : 
97 case 53 : 
98 case 57 : 
99 case 61 : 
100 case 65 : 
101 case 69 : 
102 case 97 : 
103 case 101 : 
104 case 129 : 
105 case 133 : 
106 case 137 : 
107 case 141 : 
108 case 145 : 
109 case 149 : 
110 case 153 : 
111 case 157 : 
112 case 161 : 
113 case 165 : 
114 case 169 : 
115 case 173 : 
116 case 177 : 
117 case 181 : 
118 case 185 : 
119 case 189 : 
120 case 193 : 
121 case 197 : 
122 case 225 : 
123 case 229 : 
124 {
125   P0 = IC(1);
126   P1 = IC(1);
127   P2 = IC(1);
128   P3 = IC(1);
129 } break;
130 case 3 : 
131 case 35 : 
132 case 67 : 
133 case 99 : 
134 case 131 : 
135 case 163 : 
136 case 195 : 
137 case 227 : 
138 {
139   P0 = IC(2);
140   P1 = IC(2);
141   P2 = IC(2);
142   P3 = IC(2);
143 } break;
144 case 7 : 
145 case 39 : 
146 case 71 : 
147 case 103 : 
148 case 135 : 
149 case 167 : 
150 case 199 : 
151 case 231 : 
152 {
153   P0 = IC(3);
154   P1 = IC(3);
155   P2 = IC(3);
156   P3 = IC(3);
157 } break;
158 case 10 : 
159 case 138 : 
160 {
161   P1 = IC(0);
162   P2 = IC(0);
163   P3 = IC(0);
164   if (HQ2X_MUL) {
165     P0 = IC(0);
166   } else {
167     P0 = I211(0, 1, 3);
168   }
169 } break;
170 case 11 : 
171 case 27 : 
172 case 75 : 
173 case 139 : 
174 case 155 : 
175 case 203 : 
176 {
177   P1 = IC(2);
178   P2 = IC(2);
179   P3 = IC(2);
180   if (HQ2X_MUL) {
181     P0 = IC(2);
182   } else {
183     P0 = I211(2, 1, 3);
184   }
185 } break;
186 case 14 : 
187 case 142 : 
188 {
189   P2 = IC(0);
190   P3 = IC(0);
191   if (HQ2X_MUL) {
192     P0 = IC(0);
193     P1 = IC(0);
194   } else {
195     P0 = I332(1, 3, 0);
196     P1 = I31(0, 1);
197   }
198 } break;
199 case 15 : 
200 case 143 : 
201 case 207 : 
202 {
203   P2 = IC(4);
204   P3 = IC(4);
205   if (HQ2X_MUL) {
206     P0 = IC(4);
207     P1 = IC(4);
208   } else {
209     P0 = I332(1, 3, 4);
210     P1 = I31(4, 1);
211   }
212 } break;
213 case 18 : 
214 case 22 : 
215 case 30 : 
216 case 50 : 
217 case 54 : 
218 case 62 : 
219 case 86 : 
220 case 118 : 
221 {
222   P0 = IC(0);
223   P2 = IC(0);
224   P3 = IC(0);
225   if (HQ2X_MUR) {
226     P1 = IC(0);
227   } else {
228     P1 = I211(0, 1, 5);
229   }
230 } break;
231 case 19 : 
232 case 51 : 
233 {
234   P2 = IC(2);
235   P3 = IC(2);
236   if (HQ2X_MUR) {
237     P0 = IC(2);
238     P1 = IC(2);
239   } else {
240     P0 = I31(2, 1);
241     P1 = I332(1, 5, 2);
242   }
243 } break;
244 case 23 : 
245 case 55 : 
246 case 119 : 
247 {
248   P2 = IC(3);
249   P3 = IC(3);
250   if (HQ2X_MUR) {
251     P0 = IC(3);
252     P1 = IC(3);
253   } else {
254     P0 = I31(3, 1);
255     P1 = I332(1, 5, 3);
256   }
257 } break;
258 case 26 : 
259 {
260   P2 = IC(0);
261   P3 = IC(0);
262   if (HQ2X_MUL) {
263     P0 = IC(0);
264   } else {
265     P0 = I211(0, 1, 3);
266   }
267   if (HQ2X_MUR) {
268     P1 = IC(0);
269   } else {
270     P1 = I211(0, 1, 5);
271   }
272 } break;
273 case 31 : 
274 case 95 : 
275 {
276   P2 = IC(4);
277   P3 = IC(4);
278   if (HQ2X_MUL) {
279     P0 = IC(4);
280   } else {
281     P0 = I211(4, 1, 3);
282   }
283   if (HQ2X_MUR) {
284     P1 = IC(4);
285   } else {
286     P1 = I211(4, 1, 5);
287   }
288 } break;
289 case 42 : 
290 case 170 : 
291 {
292   P1 = IC(0);
293   P3 = IC(0);
294   if (HQ2X_MUL) {
295     P0 = IC(0);
296     P2 = IC(0);
297   } else {
298     P0 = I332(1, 3, 0);
299     P2 = I31(0, 3);
300   }
301 } break;
302 case 43 : 
303 case 171 : 
304 case 187 : 
305 {
306   P1 = IC(2);
307   P3 = IC(2);
308   if (HQ2X_MUL) {
309     P0 = IC(2);
310     P2 = IC(2);
311   } else {
312     P0 = I332(1, 3, 2);
313     P2 = I31(2, 3);
314   }
315 } break;
316 case 46 : 
317 case 174 : 
318 {
319   P1 = IC(0);
320   P2 = IC(0);
321   P3 = IC(0);
322   if (HQ2X_MUL) {
323     P0 = IC(0);
324   } else {
325     P0 = I611(0, 1, 3);
326   }
327 } break;
328 case 47 : 
329 case 175 : 
330 {
331   P1 = IC(4);
332   P2 = IC(4);
333   P3 = IC(4);
334   if (HQ2X_MUL) {
335     P0 = IC(4);
336   } else {
337     P0 = I1411(4, 1, 3);
338   }
339 } break;
340 case 58 : 
341 case 154 : 
342 case 186 : 
343 {
344   P2 = IC(0);
345   P3 = IC(0);
346   if (HQ2X_MUL) {
347     P0 = IC(0);
348   } else {
349     P0 = I611(0, 1, 3);
350   }
351   if (HQ2X_MUR) {
352     P1 = IC(0);
353   } else {
354     P1 = I611(0, 1, 5);
355   }
356 } break;
357 case 59 : 
358 {
359   P2 = IC(2);
360   P3 = IC(2);
361   if (HQ2X_MUL) {
362     P0 = IC(2);
363   } else {
364     P0 = I211(2, 1, 3);
365   }
366   if (HQ2X_MUR) {
367     P1 = IC(2);
368   } else {
369     P1 = I611(2, 1, 5);
370   }
371 } break;
372 case 63 : 
373 {
374   P2 = IC(4);
375   P3 = IC(4);
376   if (HQ2X_MUL) {
377     P0 = IC(4);
378   } else {
379     P0 = I1411(4, 1, 3);
380   }
381   if (HQ2X_MUR) {
382     P1 = IC(4);
383   } else {
384     P1 = I211(4, 1, 5);
385   }
386 } break;
387 case 72 : 
388 case 76 : 
389 case 104 : 
390 case 106 : 
391 case 108 : 
392 case 110 : 
393 case 120 : 
394 case 124 : 
395 {
396   P0 = IC(0);
397   P1 = IC(0);
398   P3 = IC(0);
399   if (HQ2X_MDL) {
400     P2 = IC(0);
401   } else {
402     P2 = I211(0, 3, 7);
403   }
404 } break;
405 case 73 : 
406 case 77 : 
407 case 105 : 
408 case 109 : 
409 case 125 : 
410 {
411   P1 = IC(1);
412   P3 = IC(1);
413   if (HQ2X_MDL) {
414     P0 = IC(1);
415     P2 = IC(1);
416   } else {
417     P0 = I31(1, 3);
418     P2 = I332(3, 7, 1);
419   }
420 } break;
421 case 74 : 
422 {
423   P1 = IC(0);
424   P3 = IC(0);
425   if (HQ2X_MDL) {
426     P2 = IC(0);
427   } else {
428     P2 = I211(0, 3, 7);
429   }
430   if (HQ2X_MUL) {
431     P0 = IC(0);
432   } else {
433     P0 = I211(0, 1, 3);
434   }
435 } break;
436 case 78 : 
437 case 202 : 
438 case 206 : 
439 {
440   P1 = IC(0);
441   P3 = IC(0);
442   if (HQ2X_MDL) {
443     P2 = IC(0);
444   } else {
445     P2 = I611(0, 3, 7);
446   }
447   if (HQ2X_MUL) {
448     P0 = IC(0);
449   } else {
450     P0 = I611(0, 1, 3);
451   }
452 } break;
453 case 79 : 
454 {
455   P1 = IC(4);
456   P3 = IC(4);
457   if (HQ2X_MDL) {
458     P2 = IC(4);
459   } else {
460     P2 = I611(4, 3, 7);
461   }
462   if (HQ2X_MUL) {
463     P0 = IC(4);
464   } else {
465     P0 = I211(4, 1, 3);
466   }
467 } break;
468 case 80 : 
469 case 208 : 
470 case 210 : 
471 case 216 : 
472 {
473   P0 = IC(0);
474   P1 = IC(0);
475   P2 = IC(0);
476   if (HQ2X_MDR) {
477     P3 = IC(0);
478   } else {
479     P3 = I211(0, 5, 7);
480   }
481 } break;
482 case 81 : 
483 case 209 : 
484 case 217 : 
485 {
486   P0 = IC(1);
487   P1 = IC(1);
488   P2 = IC(1);
489   if (HQ2X_MDR) {
490     P3 = IC(1);
491   } else {
492     P3 = I211(1, 5, 7);
493   }
494 } break;
495 case 82 : 
496 case 214 : 
497 case 222 : 
498 {
499   P0 = IC(0);
500   P2 = IC(0);
501   if (HQ2X_MDR) {
502     P3 = IC(0);
503   } else {
504     P3 = I211(0, 5, 7);
505   }
506   if (HQ2X_MUR) {
507     P1 = IC(0);
508   } else {
509     P1 = I211(0, 1, 5);
510   }
511 } break;
512 case 83 : 
513 case 115 : 
514 {
515   P0 = IC(2);
516   P2 = IC(2);
517   if (HQ2X_MDR) {
518     P3 = IC(2);
519   } else {
520     P3 = I611(2, 5, 7);
521   }
522   if (HQ2X_MUR) {
523     P1 = IC(2);
524   } else {
525     P1 = I611(2, 1, 5);
526   }
527 } break;
528 case 84 : 
529 case 212 : 
530 {
531   P0 = IC(0);
532   P2 = IC(0);
533   if (HQ2X_MDR) {
534     P1 = IC(0);
535     P3 = IC(0);
536   } else {
537     P1 = I31(0, 5);
538     P3 = I332(5, 7, 0);
539   }
540 } break;
541 case 85 : 
542 case 213 : 
543 case 221 : 
544 {
545   P0 = IC(1);
546   P2 = IC(1);
547   if (HQ2X_MDR) {
548     P1 = IC(1);
549     P3 = IC(1);
550   } else {
551     P1 = I31(1, 5);
552     P3 = I332(5, 7, 1);
553   }
554 } break;
555 case 87 : 
556 {
557   P0 = IC(3);
558   P2 = IC(3);
559   if (HQ2X_MDR) {
560     P3 = IC(3);
561   } else {
562     P3 = I611(3, 5, 7);
563   }
564   if (HQ2X_MUR) {
565     P1 = IC(3);
566   } else {
567     P1 = I211(3, 1, 5);
568   }
569 } break;
570 case 88 : 
571 case 248 : 
572 case 250 : 
573 {
574   P0 = IC(0);
575   P1 = IC(0);
576   if (HQ2X_MDL) {
577     P2 = IC(0);
578   } else {
579     P2 = I211(0, 3, 7);
580   }
581   if (HQ2X_MDR) {
582     P3 = IC(0);
583   } else {
584     P3 = I211(0, 5, 7);
585   }
586 } break;
587 case 89 : 
588 case 93 : 
589 {
590   P0 = IC(1);
591   P1 = IC(1);
592   if (HQ2X_MDL) {
593     P2 = IC(1);
594   } else {
595     P2 = I611(1, 3, 7);
596   }
597   if (HQ2X_MDR) {
598     P3 = IC(1);
599   } else {
600     P3 = I611(1, 5, 7);
601   }
602 } break;
603 case 90 : 
604 {
605   if (HQ2X_MDL) {
606     P2 = IC(0);
607   } else {
608     P2 = I611(0, 3, 7);
609   }
610   if (HQ2X_MDR) {
611     P3 = IC(0);
612   } else {
613     P3 = I611(0, 5, 7);
614   }
615   if (HQ2X_MUL) {
616     P0 = IC(0);
617   } else {
618     P0 = I611(0, 1, 3);
619   }
620   if (HQ2X_MUR) {
621     P1 = IC(0);
622   } else {
623     P1 = I611(0, 1, 5);
624   }
625 } break;
626 case 91 : 
627 {
628   if (HQ2X_MDL) {
629     P2 = IC(2);
630   } else {
631     P2 = I611(2, 3, 7);
632   }
633   if (HQ2X_MDR) {
634     P3 = IC(2);
635   } else {
636     P3 = I611(2, 5, 7);
637   }
638   if (HQ2X_MUL) {
639     P0 = IC(2);
640   } else {
641     P0 = I211(2, 1, 3);
642   }
643   if (HQ2X_MUR) {
644     P1 = IC(2);
645   } else {
646     P1 = I611(2, 1, 5);
647   }
648 } break;
649 case 92 : 
650 {
651   P0 = IC(0);
652   P1 = IC(0);
653   if (HQ2X_MDL) {
654     P2 = IC(0);
655   } else {
656     P2 = I611(0, 3, 7);
657   }
658   if (HQ2X_MDR) {
659     P3 = IC(0);
660   } else {
661     P3 = I611(0, 5, 7);
662   }
663 } break;
664 case 94 : 
665 {
666   if (HQ2X_MDL) {
667     P2 = IC(0);
668   } else {
669     P2 = I611(0, 3, 7);
670   }
671   if (HQ2X_MDR) {
672     P3 = IC(0);
673   } else {
674     P3 = I611(0, 5, 7);
675   }
676   if (HQ2X_MUL) {
677     P0 = IC(0);
678   } else {
679     P0 = I611(0, 1, 3);
680   }
681   if (HQ2X_MUR) {
682     P1 = IC(0);
683   } else {
684     P1 = I211(0, 1, 5);
685   }
686 } break;
687 case 107 : 
688 case 123 : 
689 {
690   P1 = IC(2);
691   P3 = IC(2);
692   if (HQ2X_MDL) {
693     P2 = IC(2);
694   } else {
695     P2 = I211(2, 3, 7);
696   }
697   if (HQ2X_MUL) {
698     P0 = IC(2);
699   } else {
700     P0 = I211(2, 1, 3);
701   }
702 } break;
703 case 111 : 
704 {
705   P1 = IC(4);
706   P3 = IC(4);
707   if (HQ2X_MDL) {
708     P2 = IC(4);
709   } else {
710     P2 = I211(4, 3, 7);
711   }
712   if (HQ2X_MUL) {
713     P0 = IC(4);
714   } else {
715     P0 = I1411(4, 1, 3);
716   }
717 } break;
718 case 112 : 
719 case 240 : 
720 {
721   P0 = IC(0);
722   P1 = IC(0);
723   if (HQ2X_MDR) {
724     P2 = IC(0);
725     P3 = IC(0);
726   } else {
727     P2 = I31(0, 7);
728     P3 = I332(5, 7, 0);
729   }
730 } break;
731 case 113 : 
732 case 241 : 
733 {
734   P0 = IC(1);
735   P1 = IC(1);
736   if (HQ2X_MDR) {
737     P2 = IC(1);
738     P3 = IC(1);
739   } else {
740     P2 = I31(1, 7);
741     P3 = I332(5, 7, 1);
742   }
743 } break;
744 case 114 : 
745 {
746   P0 = IC(0);
747   P2 = IC(0);
748   if (HQ2X_MDR) {
749     P3 = IC(0);
750   } else {
751     P3 = I611(0, 5, 7);
752   }
753   if (HQ2X_MUR) {
754     P1 = IC(0);
755   } else {
756     P1 = I611(0, 1, 5);
757   }
758 } break;
759 case 116 : 
760 {
761   P0 = IC(0);
762   P1 = IC(0);
763   P2 = IC(0);
764   if (HQ2X_MDR) {
765     P3 = IC(0);
766   } else {
767     P3 = I611(0, 5, 7);
768   }
769 } break;
770 case 117 : 
771 {
772   P0 = IC(1);
773   P1 = IC(1);
774   P2 = IC(1);
775   if (HQ2X_MDR) {
776     P3 = IC(1);
777   } else {
778     P3 = I611(1, 5, 7);
779   }
780 } break;
781 case 121 : 
782 {
783   P0 = IC(1);
784   P1 = IC(1);
785   if (HQ2X_MDL) {
786     P2 = IC(1);
787   } else {
788     P2 = I211(1, 3, 7);
789   }
790   if (HQ2X_MDR) {
791     P3 = IC(1);
792   } else {
793     P3 = I611(1, 5, 7);
794   }
795 } break;
796 case 122 : 
797 {
798   if (HQ2X_MDL) {
799     P2 = IC(0);
800   } else {
801     P2 = I211(0, 3, 7);
802   }
803   if (HQ2X_MDR) {
804     P3 = IC(0);
805   } else {
806     P3 = I611(0, 5, 7);
807   }
808   if (HQ2X_MUL) {
809     P0 = IC(0);
810   } else {
811     P0 = I611(0, 1, 3);
812   }
813   if (HQ2X_MUR) {
814     P1 = IC(0);
815   } else {
816     P1 = I611(0, 1, 5);
817   }
818 } break;
819 case 126 : 
820 {
821   P0 = IC(0);
822   P3 = IC(0);
823   if (HQ2X_MDL) {
824     P2 = IC(0);
825   } else {
826     P2 = I211(0, 3, 7);
827   }
828   if (HQ2X_MUR) {
829     P1 = IC(0);
830   } else {
831     P1 = I211(0, 1, 5);
832   }
833 } break;
834 case 127 : 
835 {
836   P3 = IC(4);
837   if (HQ2X_MDL) {
838     P2 = IC(4);
839   } else {
840     P2 = I211(4, 3, 7);
841   }
842   if (HQ2X_MUL) {
843     P0 = IC(4);
844   } else {
845     P0 = I1411(4, 1, 3);
846   }
847   if (HQ2X_MUR) {
848     P1 = IC(4);
849   } else {
850     P1 = I211(4, 1, 5);
851   }
852 } break;
853 case 146 : 
854 case 150 : 
855 case 178 : 
856 case 182 : 
857 case 190 : 
858 {
859   P0 = IC(0);
860   P2 = IC(0);
861   if (HQ2X_MUR) {
862     P1 = IC(0);
863     P3 = IC(0);
864   } else {
865     P1 = I332(1, 5, 0);
866     P3 = I31(0, 5);
867   }
868 } break;
869 case 147 : 
870 case 179 : 
871 {
872   P0 = IC(2);
873   P2 = IC(2);
874   P3 = IC(2);
875   if (HQ2X_MUR) {
876     P1 = IC(2);
877   } else {
878     P1 = I611(2, 1, 5);
879   }
880 } break;
881 case 151 : 
882 case 183 : 
883 {
884   P0 = IC(3);
885   P2 = IC(3);
886   P3 = IC(3);
887   if (HQ2X_MUR) {
888     P1 = IC(3);
889   } else {
890     P1 = I1411(3, 1, 5);
891   }
892 } break;
893 case 158 : 
894 {
895   P2 = IC(0);
896   P3 = IC(0);
897   if (HQ2X_MUL) {
898     P0 = IC(0);
899   } else {
900     P0 = I611(0, 1, 3);
901   }
902   if (HQ2X_MUR) {
903     P1 = IC(0);
904   } else {
905     P1 = I211(0, 1, 5);
906   }
907 } break;
908 case 159 : 
909 {
910   P2 = IC(4);
911   P3 = IC(4);
912   if (HQ2X_MUL) {
913     P0 = IC(4);
914   } else {
915     P0 = I211(4, 1, 3);
916   }
917   if (HQ2X_MUR) {
918     P1 = IC(4);
919   } else {
920     P1 = I1411(4, 1, 5);
921   }
922 } break;
923 case 191 : 
924 {
925   P2 = IC(4);
926   P3 = IC(4);
927   if (HQ2X_MUL) {
928     P0 = IC(4);
929   } else {
930     P0 = I1411(4, 1, 3);
931   }
932   if (HQ2X_MUR) {
933     P1 = IC(4);
934   } else {
935     P1 = I1411(4, 1, 5);
936   }
937 } break;
938 case 200 : 
939 case 204 : 
940 case 232 : 
941 case 236 : 
942 case 238 : 
943 {
944   P0 = IC(0);
945   P1 = IC(0);
946   if (HQ2X_MDL) {
947     P2 = IC(0);
948     P3 = IC(0);
949   } else {
950     P2 = I332(3, 7, 0);
951     P3 = I31(0, 7);
952   }
953 } break;
954 case 201 : 
955 case 205 : 
956 {
957   P0 = IC(1);
958   P1 = IC(1);
959   P3 = IC(1);
960   if (HQ2X_MDL) {
961     P2 = IC(1);
962   } else {
963     P2 = I611(1, 3, 7);
964   }
965 } break;
966 case 211 : 
967 {
968   P0 = IC(2);
969   P1 = IC(2);
970   P2 = IC(2);
971   if (HQ2X_MDR) {
972     P3 = IC(2);
973   } else {
974     P3 = I211(2, 5, 7);
975   }
976 } break;
977 case 215 : 
978 {
979   P0 = IC(3);
980   P2 = IC(3);
981   if (HQ2X_MDR) {
982     P3 = IC(3);
983   } else {
984     P3 = I211(3, 5, 7);
985   }
986   if (HQ2X_MUR) {
987     P1 = IC(3);
988   } else {
989     P1 = I1411(3, 1, 5);
990   }
991 } break;
992 case 218 : 
993 {
994   if (HQ2X_MDL) {
995     P2 = IC(0);
996   } else {
997     P2 = I611(0, 3, 7);
998   }
999   if (HQ2X_MDR) {
1000     P3 = IC(0);
1001   } else {
1002     P3 = I211(0, 5, 7);
1003   }
1004   if (HQ2X_MUL) {
1005     P0 = IC(0);
1006   } else {
1007     P0 = I611(0, 1, 3);
1008   }
1009   if (HQ2X_MUR) {
1010     P1 = IC(0);
1011   } else {
1012     P1 = I611(0, 1, 5);
1013   }
1014 } break;
1015 case 219 : 
1016 {
1017   P1 = IC(2);
1018   P2 = IC(2);
1019   if (HQ2X_MDR) {
1020     P3 = IC(2);
1021   } else {
1022     P3 = I211(2, 5, 7);
1023   }
1024   if (HQ2X_MUL) {
1025     P0 = IC(2);
1026   } else {
1027     P0 = I211(2, 1, 3);
1028   }
1029 } break;
1030 case 220 : 
1031 {
1032   P0 = IC(0);
1033   P1 = IC(0);
1034   if (HQ2X_MDL) {
1035     P2 = IC(0);
1036   } else {
1037     P2 = I611(0, 3, 7);
1038   }
1039   if (HQ2X_MDR) {
1040     P3 = IC(0);
1041   } else {
1042     P3 = I211(0, 5, 7);
1043   }
1044 } break;
1045 case 223 : 
1046 {
1047   P2 = IC(4);
1048   if (HQ2X_MDR) {
1049     P3 = IC(4);
1050   } else {
1051     P3 = I211(4, 5, 7);
1052   }
1053   if (HQ2X_MUL) {
1054     P0 = IC(4);
1055   } else {
1056     P0 = I211(4, 1, 3);
1057   }
1058   if (HQ2X_MUR) {
1059     P1 = IC(4);
1060   } else {
1061     P1 = I1411(4, 1, 5);
1062   }
1063 } break;
1064 case 233 : 
1065 case 237 : 
1066 {
1067   P0 = IC(1);
1068   P1 = IC(1);
1069   P3 = IC(1);
1070   if (HQ2X_MDL) {
1071     P2 = IC(1);
1072   } else {
1073     P2 = I1411(1, 3, 7);
1074   }
1075 } break;
1076 case 234 : 
1077 {
1078   P1 = IC(0);
1079   P3 = IC(0);
1080   if (HQ2X_MDL) {
1081     P2 = IC(0);
1082   } else {
1083     P2 = I211(0, 3, 7);
1084   }
1085   if (HQ2X_MUL) {
1086     P0 = IC(0);
1087   } else {
1088     P0 = I611(0, 1, 3);
1089   }
1090 } break;
1091 case 235 : 
1092 {
1093   P1 = IC(2);
1094   P3 = IC(2);
1095   if (HQ2X_MDL) {
1096     P2 = IC(2);
1097   } else {
1098     P2 = I1411(2, 3, 7);
1099   }
1100   if (HQ2X_MUL) {
1101     P0 = IC(2);
1102   } else {
1103     P0 = I211(2, 1, 3);
1104   }
1105 } break;
1106 case 239 : 
1107 {
1108   P1 = IC(4);
1109   P3 = IC(4);
1110   if (HQ2X_MDL) {
1111     P2 = IC(4);
1112   } else {
1113     P2 = I1411(4, 3, 7);
1114   }
1115   if (HQ2X_MUL) {
1116     P0 = IC(4);
1117   } else {
1118     P0 = I1411(4, 1, 3);
1119   }
1120 } break;
1121 case 242 : 
1122 {
1123   P0 = IC(0);
1124   P2 = IC(0);
1125   if (HQ2X_MDR) {
1126     P3 = IC(0);
1127   } else {
1128     P3 = I211(0, 5, 7);
1129   }
1130   if (HQ2X_MUR) {
1131     P1 = IC(0);
1132   } else {
1133     P1 = I611(0, 1, 5);
1134   }
1135 } break;
1136 case 243 : 
1137 {
1138   P0 = IC(2);
1139   P1 = IC(2);
1140   if (HQ2X_MDR) {
1141     P2 = IC(2);
1142     P3 = IC(2);
1143   } else {
1144     P2 = I31(2, 7);
1145     P3 = I332(5, 7, 2);
1146   }
1147 } break;
1148 case 244 : 
1149 {
1150   P0 = IC(0);
1151   P1 = IC(0);
1152   P2 = IC(0);
1153   if (HQ2X_MDR) {
1154     P3 = IC(0);
1155   } else {
1156     P3 = I1411(0, 5, 7);
1157   }
1158 } break;
1159 case 245 : 
1160 {
1161   P0 = IC(1);
1162   P1 = IC(1);
1163   P2 = IC(1);
1164   if (HQ2X_MDR) {
1165     P3 = IC(1);
1166   } else {
1167     P3 = I1411(1, 5, 7);
1168   }
1169 } break;
1170 case 246 : 
1171 {
1172   P0 = IC(0);
1173   P2 = IC(0);
1174   if (HQ2X_MDR) {
1175     P3 = IC(0);
1176   } else {
1177     P3 = I1411(0, 5, 7);
1178   }
1179   if (HQ2X_MUR) {
1180     P1 = IC(0);
1181   } else {
1182     P1 = I211(0, 1, 5);
1183   }
1184 } break;
1185 case 247 : 
1186 {
1187   P0 = IC(3);
1188   P2 = IC(3);
1189   if (HQ2X_MDR) {
1190     P3 = IC(3);
1191   } else {
1192     P3 = I1411(3, 5, 7);
1193   }
1194   if (HQ2X_MUR) {
1195     P1 = IC(3);
1196   } else {
1197     P1 = I1411(3, 1, 5);
1198   }
1199 } break;
1200 case 249 : 
1201 {
1202   P0 = IC(1);
1203   P1 = IC(1);
1204   if (HQ2X_MDL) {
1205     P2 = IC(1);
1206   } else {
1207     P2 = I1411(1, 3, 7);
1208   }
1209   if (HQ2X_MDR) {
1210     P3 = IC(1);
1211   } else {
1212     P3 = I211(1, 5, 7);
1213   }
1214 } break;
1215 case 251 : 
1216 {
1217   P1 = IC(2);
1218   if (HQ2X_MDL) {
1219     P2 = IC(2);
1220   } else {
1221     P2 = I1411(2, 3, 7);
1222   }
1223   if (HQ2X_MDR) {
1224     P3 = IC(2);
1225   } else {
1226     P3 = I211(2, 5, 7);
1227   }
1228   if (HQ2X_MUL) {
1229     P0 = IC(2);
1230   } else {
1231     P0 = I211(2, 1, 3);
1232   }
1233 } break;
1234 case 252 : 
1235 {
1236   P0 = IC(0);
1237   P1 = IC(0);
1238   if (HQ2X_MDL) {
1239     P2 = IC(0);
1240   } else {
1241     P2 = I211(0, 3, 7);
1242   }
1243   if (HQ2X_MDR) {
1244     P3 = IC(0);
1245   } else {
1246     P3 = I1411(0, 5, 7);
1247   }
1248 } break;
1249 case 253 : 
1250 {
1251   P0 = IC(1);
1252   P1 = IC(1);
1253   if (HQ2X_MDL) {
1254     P2 = IC(1);
1255   } else {
1256     P2 = I1411(1, 3, 7);
1257   }
1258   if (HQ2X_MDR) {
1259     P3 = IC(1);
1260   } else {
1261     P3 = I1411(1, 5, 7);
1262   }
1263 } break;
1264 case 254 : 
1265 {
1266   P0 = IC(0);
1267   if (HQ2X_MDL) {
1268     P2 = IC(0);
1269   } else {
1270     P2 = I211(0, 3, 7);
1271   }
1272   if (HQ2X_MDR) {
1273     P3 = IC(0);
1274   } else {
1275     P3 = I1411(0, 5, 7);
1276   }
1277   if (HQ2X_MUR) {
1278     P1 = IC(0);
1279   } else {
1280     P1 = I211(0, 1, 5);
1281   }
1282 } break;
1283 case 255 : 
1284 {
1285   if (HQ2X_MDL) {
1286     P2 = IC(4);
1287   } else {
1288     P2 = I1411(4, 3, 7);
1289   }
1290   if (HQ2X_MDR) {
1291     P3 = IC(4);
1292   } else {
1293     P3 = I1411(4, 5, 7);
1294   }
1295   if (HQ2X_MUL) {
1296     P0 = IC(4);
1297   } else {
1298     P0 = I1411(4, 1, 3);
1299   }
1300   if (HQ2X_MUR) {
1301     P1 = IC(4);
1302   } else {
1303     P1 = I1411(4, 1, 5);
1304   }
1305 } break;
1306