update mappings to reflect recent changes
[AROS.git] / workbench / hidds / hidd.nouveau / hack_patchrgbconv.c
blob214a037d4df69c1d2da6d6150fa3363cf78c871e
1 #include <proto/oop.h>
2 #include <hidd/graphics.h>
3 #include <aros/debug.h>
5 BOOL noisy = FALSE;
7 /* It's a hack anyway... */
8 #include "../../../test/patchrgbconv_macros.h"
9 #include "../../../test/patchrgbconv_rgbswap.h"
10 #include "../../../test/patchrgbconv_argb32.h"
11 #include "../../../test/patchrgbconv_bgra32.h"
12 #include "../../../test/patchrgbconv_rgba32.h"
13 #include "../../../test/patchrgbconv_abgr32.h"
14 #include "../../../test/patchrgbconv_rgb24.h"
15 #include "../../../test/patchrgbconv_bgr24.h"
16 #include "../../../test/patchrgbconv_rgb15.h"
17 #include "../../../test/patchrgbconv_bgr15.h"
18 #include "../../../test/patchrgbconv_rgb16.h"
19 #include "../../../test/patchrgbconv_bgr16.h"
20 #include "../../../test/patchrgbconv_rgb16oe.h"
21 #include "../../../test/patchrgbconv_bgr16oe.h"
22 #include "../../../test/patchrgbconv_rgb15oe.h"
23 #include "../../../test/patchrgbconv_bgr15oe.h"
24 #include "../../../test/patchrgbconv_xrgb32.h"
25 #include "../../../test/patchrgbconv_bgrx32.h"
26 #include "../../../test/patchrgbconv_rgbx32.h"
27 #include "../../../test/patchrgbconv_xbgr32.h"
29 typedef void (*DOFUNC)(ULONG srcfmt, ULONG dstfmt, HIDDT_RGBConversionFunction f, OOP_Object *bm);
31 static void installfunc(ULONG srcfmt, ULONG dstfmt, HIDDT_RGBConversionFunction f, OOP_Object *bm)
33 struct pHidd_BitMap_SetRGBConversionFunction __m =
35 OOP_GetMethodID((STRPTR)CLID_Hidd_BitMap, moHidd_BitMap_SetRGBConversionFunction),
36 srcfmt, dstfmt, f
37 }, *m = &__m;
38 OOP_DoMethod(bm, (OOP_Msg)m);
41 #define PATCHFUNC(a,b) \
42 (*func)(FMT_ ## a, FMT_ ## b, convert_ ## a ## _ ## b, bitmap);
44 void HACK_PATCHRGBCONV(OOP_Object * bitmap)
46 DOFUNC func = installfunc;
48 #define P(a,b) PATCHFUNC(a,b)
50 /* ARGB32 to #? */
51 P(ARGB32,RGB16) P(ARGB32,BGR16) P(ARGB32,RGB15) P(ARGB32,BGR15)
52 P(ARGB32,BGRA32) P(ARGB32,RGBA32) P(ARGB32,ABGR32) P(ARGB32,RGB24)
53 P(ARGB32,BGR24) P(ARGB32,RGB16OE) P(ARGB32,BGR16OE) P(ARGB32,RGB15OE)
54 P(ARGB32,BGR15OE) P(ARGB32,XRGB32) P(ARGB32,BGRX32) P(ARGB32,RGBX32)
55 P(ARGB32,XBGR32)
57 /* BGRA32 to #? */
58 P(BGRA32,RGB16) P(BGRA32,BGR16) P(BGRA32,RGB15) P(BGRA32,BGR15)
59 P(BGRA32,ARGB32) P(BGRA32,RGBA32) P(BGRA32,ABGR32) P(BGRA32,RGB24)
60 P(BGRA32,BGR24) P(BGRA32,RGB16OE) P(BGRA32,BGR16OE) P(BGRA32,RGB15OE)
61 P(BGRA32,BGR15OE) P(BGRA32,XRGB32) P(BGRA32,BGRX32) P(BGRA32,RGBX32)
62 P(BGRA32,XBGR32)
64 /* RGBA32 to #? */
65 P(RGBA32,RGB16) P(RGBA32,BGR16) P(RGBA32,RGB15) P(RGBA32,BGR15)
66 P(RGBA32,BGRA32) P(RGBA32,ARGB32) P(RGBA32,ABGR32) P(RGBA32,RGB24)
67 P(RGBA32,BGR24) P(RGBA32,RGB16OE) P(RGBA32,BGR16OE) P(RGBA32,RGB15OE)
68 P(RGBA32,BGR15OE) P(RGBA32,XRGB32) P(RGBA32,BGRX32) P(RGBA32,RGBX32)
69 P(RGBA32,XBGR32)
71 /* ABGR32 to #? */
72 P(ABGR32,RGB16) P(ABGR32,BGR16) P(ABGR32,RGB15) P(ABGR32,BGR15)
73 P(ABGR32,BGRA32) P(ABGR32,ARGB32) P(ABGR32,RGBA32) P(ABGR32,RGB24)
74 P(ABGR32,BGR24) P(ABGR32,RGB16OE) P(ABGR32,BGR16OE) P(ABGR32,RGB15OE)
75 P(ABGR32,BGR15OE) P(ABGR32,XRGB32) P(ABGR32,BGRX32) P(ABGR32,RGBX32)
76 P(ABGR32,XBGR32)
78 /* RGB24 to #? */
79 P(RGB24,RGB16) P(RGB24,BGR16) P(RGB24,RGB15) P(RGB24,BGR15)
80 P(RGB24,ARGB32) P(RGB24,BGRA32) P(RGB24,RGBA32) P(RGB24,ABGR32)
81 P(RGB24,BGR24) P(RGB24,RGB16OE) P(RGB24,BGR16OE) P(RGB24,RGB15OE)
82 P(RGB24,BGR15OE) P(RGB24,XRGB32) P(RGB24,BGRX32) P(RGB24,RGBX32)
83 P(RGB24,XBGR32)
85 /* BGR24 to #? */
86 P(BGR24,RGB16) P(BGR24,BGR16) P(BGR24,RGB15) P(BGR24,BGR15)
87 P(BGR24,ARGB32) P(BGR24,BGRA32) P(BGR24,RGBA32) P(BGR24,ABGR32)
88 P(BGR24,RGB24) P(BGR24,RGB16OE) P(BGR24,BGR16OE) P(BGR24,RGB15OE)
89 P(BGR24,BGR15OE) P(BGR24,XRGB32) P(BGR24,BGRX32) P(BGR24,RGBX32)
90 P(BGR24,XBGR32)
92 /* RGB15 to #? */
93 P(RGB15,RGB16) P(RGB15,BGR16) P(RGB15,BGR15) P(RGB15,ARGB32)
94 P(RGB15,BGRA32) P(RGB15,RGBA32) P(RGB15,ABGR32) P(RGB15,RGB24)
95 P(RGB15,BGR24) P(RGB15,RGB16OE) P(RGB15,RGB15OE) P(RGB15,BGR16OE)
96 P(RGB15,BGR15OE) P(RGB15,XRGB32) P(RGB15,BGRX32) P(RGB15,RGBX32)
97 P(RGB15,XBGR32)
99 /* BGR15 to #? */
100 P(BGR15,RGB16) P(BGR15,BGR16) P(BGR15,RGB15) P(BGR15,ARGB32)
101 P(BGR15,BGRA32) P(BGR15,RGBA32) P(BGR15,ABGR32) P(BGR15,RGB24)
102 P(BGR15,BGR24) P(BGR15,RGB16OE) P(BGR15,RGB15OE) P(BGR15,BGR16OE)
103 P(BGR15,BGR15OE) P(BGR15,XRGB32) P(BGR15,BGRX32) P(BGR15,RGBX32)
104 P(BGR15,XBGR32)
106 /* RGB16 to #? */
107 P(RGB16,RGB15) P(RGB16,BGR16) P(RGB16,BGR15) P(RGB16,ARGB32)
108 P(RGB16,BGRA32) P(RGB16,RGBA32) P(RGB16,ABGR32) P(RGB16,RGB24)
109 P(RGB16,BGR24) P(RGB16,RGB16OE) P(RGB16,RGB15OE) P(RGB16,BGR16OE)
110 P(RGB16,BGR15OE) P(RGB16,XRGB32) P(RGB16,BGRX32) P(RGB16,RGBX32)
111 P(RGB16,XBGR32)
113 /* BGR16 to #? */
114 P(BGR16,RGB15) P(BGR16,RGB16) P(BGR16,BGR15) P(BGR16,ARGB32)
115 P(BGR16,BGRA32) P(BGR16,RGBA32) P(BGR16,ABGR32) P(BGR16,RGB24)
116 P(BGR16,BGR24) P(BGR16,RGB16OE) P(BGR16,RGB15OE) P(BGR16,BGR16OE)
117 P(BGR16,BGR15OE) P(BGR16,XRGB32) P(BGR16,BGRX32) P(BGR16,RGBX32)
118 P(BGR16,XBGR32)
120 /* RGB16OE to #? */
121 P(RGB16OE,RGB16) P(RGB16OE,RGB15) P(RGB16OE,BGR16) P(RGB16OE,BGR15)
122 P(RGB16OE,ARGB32) P(RGB16OE,BGRA32) P(RGB16OE,RGBA32) P(RGB16OE,ABGR32)
123 P(RGB16OE,RGB24) P(RGB16OE,BGR24) P(RGB16OE,RGB15OE) P(RGB16OE,BGR16OE)
124 P(RGB16OE,BGR15OE) P(RGB16OE,XRGB32) P(RGB16OE,BGRX32) P(RGB16OE,RGBX32)
125 P(RGB16OE,XBGR32)
127 /* BGR16OE to #? */
128 P(BGR16OE,RGB16) P(BGR16OE,RGB15) P(BGR16OE,BGR16) P(BGR16OE,BGR15)
129 P(BGR16OE,ARGB32) P(BGR16OE,BGRA32) P(BGR16OE,RGBA32) P(BGR16OE,ABGR32)
130 P(BGR16OE,RGB24) P(BGR16OE,BGR24) P(BGR16OE,RGB15OE) P(BGR16OE,RGB16OE)
131 P(BGR16OE,BGR15OE) P(BGR16OE,XRGB32) P(BGR16OE,BGRX32) P(BGR16OE,RGBX32)
132 P(BGR16OE,XBGR32)
134 /* RGB15OE to #? */
135 P(RGB15OE,RGB16) P(RGB15OE,RGB15) P(RGB15OE,BGR16) P(RGB15OE,BGR15)
136 P(RGB15OE,ARGB32) P(RGB15OE,BGRA32) P(RGB15OE,RGBA32) P(RGB15OE,ABGR32)
137 P(RGB15OE,RGB24) P(RGB15OE,BGR24) P(RGB15OE,RGB16OE) P(RGB15OE,BGR16OE)
138 P(RGB15OE,BGR15OE) P(RGB15OE,XRGB32) P(RGB15OE,BGRX32) P(RGB15OE,RGBX32)
139 P(RGB15OE,XBGR32)
141 /* BGR15OE to #? */
142 P(BGR15OE,RGB16) P(BGR15OE,RGB15) P(BGR15OE,BGR16) P(BGR15OE,BGR15)
143 P(BGR15OE,ARGB32) P(BGR15OE,BGRA32) P(BGR15OE,RGBA32) P(BGR15OE,ABGR32)
144 P(BGR15OE,RGB24) P(BGR15OE,BGR24) P(BGR15OE,RGB16OE) P(BGR15OE,BGR16OE)
145 P(BGR15OE,RGB15OE) P(BGR15OE,XRGB32) P(BGR15OE,BGRX32) P(BGR15OE,RGBX32)
146 P(BGR15OE,XBGR32)
148 /* XRGB32 to #? */
149 P(XRGB32,RGB16) P(XRGB32,BGR16) P(XRGB32,RGB15) P(XRGB32,BGR15)
150 P(XRGB32,ARGB32) P(XRGB32,BGRA32) P(XRGB32,RGBA32) P(XRGB32,ABGR32)
151 P(XRGB32,RGB24) P(XRGB32,BGR24) P(XRGB32,RGB16OE) P(XRGB32,BGR16OE)
152 P(XRGB32,RGB15OE) P(XRGB32,BGR15OE) P(XRGB32,BGRX32) P(XRGB32,RGBX32)
153 P(XRGB32,XBGR32)
155 /* BGRX32 to #? */
156 P(BGRX32,RGB16) P(BGRX32,BGR16) P(BGRX32,RGB15) P(BGRX32,BGR15)
157 P(BGRX32,ARGB32) P(BGRX32,BGRA32) P(BGRX32,RGBA32) P(BGRX32,ABGR32)
158 P(BGRX32,RGB24) P(BGRX32,BGR24) P(BGRX32,RGB16OE) P(BGRX32,BGR16OE)
159 P(BGRX32,RGB15OE) P(BGRX32,BGR15OE) P(BGRX32,XRGB32) P(BGRX32,RGBX32)
160 P(BGRX32,XBGR32)
162 /* RGBX32 to #? */
163 P(RGBX32,RGB16) P(RGBX32,BGR16) P(RGBX32,RGB15) P(RGBX32,BGR15)
164 P(RGBX32,BGRA32) P(RGBX32,ARGB32) P(RGBX32,ABGR32) P(RGBX32,RGBA32)
165 P(RGBX32,RGB24) P(RGBX32,BGR24) P(RGBX32,RGB16OE) P(RGBX32,BGR16OE)
166 P(RGBX32,RGB15OE) P(RGBX32,BGR15OE) P(RGBX32,XRGB32) P(RGBX32,BGRX32)
167 P(RGBX32,XBGR32)
169 /* XBGR32 to #? */
170 P(XBGR32,RGB16) P(XBGR32,BGR16) P(XBGR32,RGB15) P(XBGR32,BGR15)
171 P(XBGR32,BGRA32) P(XBGR32,ARGB32) P(XBGR32,RGBA32) P(XBGR32,ABGR32)
172 P(XBGR32,RGB24) P(XBGR32,BGR24) P(XBGR32,RGB16OE) P(XBGR32,BGR16OE)
173 P(XBGR32,RGB15OE) P(XBGR32,BGR15OE) P(XBGR32,XRGB32) P(XBGR32,BGRX32)
174 P(XBGR32,RGBX32)