]> Shamusworld >> Repos - virtualjaguar/blob - src/include/fbmpop2.h
Adding 1.0.1/2 uncompressed tarballs to tags for historical purposes.
[virtualjaguar] / src / include / fbmpop2.h
1                 uint32 c;\r
2                 paletteRam+=idx*2;\r
3                 if (flags&FLAGS_READMODIFY)\r
4                 {\r
5                         if (flags&FLAGS_HFLIP)\r
6                         {\r
7                                 if (flags&FLAGS_TRANSPARENT)\r
8                                 {\r
9                                         while (iwidth)\r
10                                         {\r
11                                                 c=jaguar_byte_read(ptr++);\r
12                                                 uint32 c0=(c>>6)&0x03;\r
13                                                 uint32 c1=(c>>4)&0x03;\r
14                                                 uint32 c2=(c>>2)&0x03;\r
15                                                 uint32 c3=(c>>0)&0x03;\r
16 \r
17                                                 if (c0)\r
18                                                 {\r
19                                                         *current_line_buffer--=BLEND_Y(*current_line_buffer,paletteRam[(c0<<1)+0]);\r
20                                                         *current_line_buffer--=BLEND_CC(*current_line_buffer,paletteRam[(c0<<1)+1]);\r
21                                                 }\r
22                                                 else\r
23                                                         current_line_buffer-=2;\r
24                                                 if (c1)\r
25                                                 {\r
26                                                         *current_line_buffer--=BLEND_Y(*current_line_buffer,paletteRam[(c1<<1)+0]);\r
27                                                         *current_line_buffer--=BLEND_CC(*current_line_buffer,paletteRam[(c1<<1)+1]);\r
28                                                 }\r
29                                                 else\r
30                                                         current_line_buffer-=2;\r
31                                                 if (c2)\r
32                                                 {\r
33                                                         *current_line_buffer--=BLEND_Y(*current_line_buffer,paletteRam[(c2<<1)+0]);\r
34                                                         *current_line_buffer--=BLEND_CC(*current_line_buffer,paletteRam[(c2<<1)+1]);\r
35                                                 }\r
36                                                 else\r
37                                                         current_line_buffer-=2;\r
38                                                 if (c3)\r
39                                                 {\r
40                                                         *current_line_buffer--=BLEND_Y(*current_line_buffer,paletteRam[(c3<<1)+0]);\r
41                                                         *current_line_buffer--=BLEND_CC(*current_line_buffer,paletteRam[(c3<<1)+1]);\r
42                                                 }\r
43                                                 else\r
44                                                         current_line_buffer-=2;\r
45                                                 iwidth--;\r
46                                         }\r
47                                 }\r
48                                 else\r
49                                 {\r
50                                         while (iwidth)\r
51                                         {\r
52                                                 c=jaguar_byte_read(ptr++);\r
53                                                 uint32 c0=(c>>6)&0x03;\r
54                                                 uint32 c1=(c>>4)&0x03;\r
55                                                 uint32 c2=(c>>2)&0x03;\r
56                                                 uint32 c3=(c>>0)&0x03;\r
57 \r
58                                                 *current_line_buffer--=BLEND_Y(*current_line_buffer,paletteRam[(c0<<1)+0]);\r
59                                                 *current_line_buffer--=BLEND_CC(*current_line_buffer,paletteRam[(c0<<1)+1]);\r
60                                                 *current_line_buffer--=BLEND_Y(*current_line_buffer,paletteRam[(c1<<1)+0]);\r
61                                                 *current_line_buffer--=BLEND_CC(*current_line_buffer,paletteRam[(c1<<1)+1]);\r
62                                                 *current_line_buffer--=BLEND_Y(*current_line_buffer,paletteRam[(c2<<1)+0]);\r
63                                                 *current_line_buffer--=BLEND_CC(*current_line_buffer,paletteRam[(c2<<1)+1]);\r
64                                                 *current_line_buffer--=BLEND_Y(*current_line_buffer,paletteRam[(c3<<1)+0]);\r
65                                                 *current_line_buffer--=BLEND_CC(*current_line_buffer,paletteRam[(c3<<1)+1]);\r
66                                                 iwidth--;\r
67                                         }\r
68                                 }\r
69                         }\r
70                         else\r
71                         {\r
72                                 if (flags&FLAGS_TRANSPARENT)\r
73                                 {\r
74                                         while (iwidth)\r
75                                         {\r
76                                                 c=jaguar_byte_read(ptr++);\r
77                                                 uint32 c0=(c>>6)&0x03;\r
78                                                 uint32 c1=(c>>4)&0x03;\r
79                                                 uint32 c2=(c>>2)&0x03;\r
80                                                 uint32 c3=(c>>0)&0x03;\r
81 \r
82                                                 if (c0)\r
83                                                 {\r
84                                                         *current_line_buffer++=BLEND_Y(*current_line_buffer,paletteRam[(c0<<1)+0]);\r
85                                                         *current_line_buffer++=BLEND_CC(*current_line_buffer,paletteRam[(c0<<1)+1]);\r
86                                                 }\r
87                                                 else\r
88                                                         current_line_buffer+=2;\r
89                                                 if (c1)\r
90                                                 {\r
91                                                         *current_line_buffer++=BLEND_Y(*current_line_buffer,paletteRam[(c1<<1)+0]);\r
92                                                         *current_line_buffer++=BLEND_CC(*current_line_buffer,paletteRam[(c1<<1)+1]);\r
93                                                 }\r
94                                                 else\r
95                                                         current_line_buffer+=2;\r
96                                                 if (c2)\r
97                                                 {\r
98                                                         *current_line_buffer++=BLEND_Y(*current_line_buffer,paletteRam[(c2<<1)+0]);\r
99                                                         *current_line_buffer++=BLEND_CC(*current_line_buffer,paletteRam[(c2<<1)+1]);\r
100                                                 }\r
101                                                 else\r
102                                                         current_line_buffer+=2;\r
103                                                 if (c3)\r
104                                                 {\r
105                                                         *current_line_buffer++=BLEND_Y(*current_line_buffer,paletteRam[(c3<<1)+0]);\r
106                                                         *current_line_buffer++=BLEND_CC(*current_line_buffer,paletteRam[(c3<<1)+1]);\r
107                                                 }\r
108                                                 else\r
109                                                         current_line_buffer+=2;\r
110                                                 iwidth--;\r
111                                         }\r
112                                 }\r
113                                 else\r
114                                 {\r
115                                         while (iwidth)\r
116                                         {\r
117                                                 c=jaguar_byte_read(ptr++);\r
118                                                 uint32 c0=(c>>6)&0x03;\r
119                                                 uint32 c1=(c>>4)&0x03;\r
120                                                 uint32 c2=(c>>2)&0x03;\r
121                                                 uint32 c3=(c>>0)&0x03;\r
122 \r
123                                                 *current_line_buffer++=BLEND_Y(*current_line_buffer,paletteRam[(c0<<1)+0]);\r
124                                                 *current_line_buffer++=BLEND_CC(*current_line_buffer,paletteRam[(c0<<1)+1]);\r
125                                                 *current_line_buffer++=BLEND_Y(*current_line_buffer,paletteRam[(c1<<1)+0]);\r
126                                                 *current_line_buffer++=BLEND_CC(*current_line_buffer,paletteRam[(c1<<1)+1]);\r
127                                                 *current_line_buffer++=BLEND_Y(*current_line_buffer,paletteRam[(c2<<1)+0]);\r
128                                                 *current_line_buffer++=BLEND_CC(*current_line_buffer,paletteRam[(c2<<1)+1]);\r
129                                                 *current_line_buffer++=BLEND_Y(*current_line_buffer,paletteRam[(c3<<1)+0]);\r
130                                                 *current_line_buffer++=BLEND_CC(*current_line_buffer,paletteRam[(c3<<1)+1]);\r
131                                                 iwidth--;\r
132                                         }\r
133                                 }\r
134                         }\r
135                 }\r
136                 else\r
137                 {\r
138                         if (flags&FLAGS_HFLIP)\r
139                         {\r
140                                 if (flags&FLAGS_TRANSPARENT)\r
141                                 {\r
142                                         while (iwidth)\r
143                                         {\r
144                                                 c=jaguar_byte_read(ptr++);\r
145                                                 uint32 c0=(c>>6)&0x03;\r
146                                                 uint32 c1=(c>>4)&0x03;\r
147                                                 uint32 c2=(c>>2)&0x03;\r
148                                                 uint32 c3=(c>>0)&0x03;\r
149 \r
150                                                 if (c0)\r
151                                                 {\r
152                                                         *current_line_buffer--=paletteRam[(c0<<1)+0];\r
153                                                         *current_line_buffer--=paletteRam[(c0<<1)+1];\r
154                                                 }\r
155                                                 else\r
156                                                         current_line_buffer-=2;\r
157                                                 if (c1)\r
158                                                 {\r
159                                                         *current_line_buffer--=paletteRam[(c1<<1)+0];\r
160                                                         *current_line_buffer--=paletteRam[(c1<<1)+1];\r
161                                                 }\r
162                                                 else\r
163                                                         current_line_buffer-=2;\r
164                                                 if (c2)\r
165                                                 {\r
166                                                         *current_line_buffer--=paletteRam[(c2<<1)+0];\r
167                                                         *current_line_buffer--=paletteRam[(c2<<1)+1];\r
168                                                 }\r
169                                                 else\r
170                                                         current_line_buffer-=2;\r
171                                                 if (c3)\r
172                                                 {\r
173                                                         *current_line_buffer--=paletteRam[(c3<<1)+0];\r
174                                                         *current_line_buffer--=paletteRam[(c3<<1)+1];\r
175                                                 }\r
176                                                 else\r
177                                                         current_line_buffer-=2;\r
178                                                 iwidth--;\r
179                                         }\r
180                                 }\r
181                                 else\r
182                                 {\r
183                                         while (iwidth)\r
184                                         {\r
185                                                 c=jaguar_byte_read(ptr++);\r
186                                                 uint32 c0=(c>>6)&0x03;\r
187                                                 uint32 c1=(c>>4)&0x03;\r
188                                                 uint32 c2=(c>>2)&0x03;\r
189                                                 uint32 c3=(c>>0)&0x03;\r
190 \r
191                                                 *current_line_buffer--=paletteRam[(c0<<1)+0];\r
192                                                 *current_line_buffer--=paletteRam[(c0<<1)+1];\r
193                                                 *current_line_buffer--=paletteRam[(c1<<1)+0];\r
194                                                 *current_line_buffer--=paletteRam[(c1<<1)+1];\r
195                                                 *current_line_buffer--=paletteRam[(c2<<1)+0];\r
196                                                 *current_line_buffer--=paletteRam[(c2<<1)+1];\r
197                                                 *current_line_buffer--=paletteRam[(c3<<1)+0];\r
198                                                 *current_line_buffer--=paletteRam[(c3<<1)+1];\r
199                                                 iwidth--;\r
200                                         }\r
201                                 }\r
202                         }\r
203                         else\r
204                         {\r
205                                 if (flags&FLAGS_TRANSPARENT)\r
206                                 {\r
207                                         while (iwidth)\r
208                                         {\r
209                                                 c=jaguar_byte_read(ptr++);\r
210                                                 uint32 c0=(c>>6)&0x03;\r
211                                                 uint32 c1=(c>>4)&0x03;\r
212                                                 uint32 c2=(c>>2)&0x03;\r
213                                                 uint32 c3=(c>>0)&0x03;\r
214 \r
215                                                 if (c0)\r
216                                                 {\r
217                                                         *current_line_buffer++=paletteRam[(c0<<1)+0];\r
218                                                         *current_line_buffer++=paletteRam[(c0<<1)+1];\r
219                                                 }\r
220                                                 else\r
221                                                         current_line_buffer+=2;\r
222                                                 if (c1)\r
223                                                 {\r
224                                                         *current_line_buffer++=paletteRam[(c1<<1)+0];\r
225                                                         *current_line_buffer++=paletteRam[(c1<<1)+1];\r
226                                                 }\r
227                                                 else\r
228                                                         current_line_buffer+=2;\r
229                                                 if (c2)\r
230                                                 {\r
231                                                         *current_line_buffer++=paletteRam[(c2<<1)+0];\r
232                                                         *current_line_buffer++=paletteRam[(c2<<1)+1];\r
233                                                 }\r
234                                                 else\r
235                                                         current_line_buffer+=2;\r
236                                                 if (c3)\r
237                                                 {\r
238                                                         *current_line_buffer++=paletteRam[(c3<<1)+0];\r
239                                                         *current_line_buffer++=paletteRam[(c3<<1)+1];\r
240                                                 }\r
241                                                 else\r
242                                                         current_line_buffer+=2;\r
243                                                 iwidth--;\r
244                                         }\r
245                                 }\r
246                                 else\r
247                                 {\r
248                                         while (iwidth)\r
249                                         {\r
250                                                 c=jaguar_byte_read(ptr++);\r
251                                                 uint32 c0=(c>>6)&0x03;\r
252                                                 uint32 c1=(c>>4)&0x03;\r
253                                                 uint32 c2=(c>>2)&0x03;\r
254                                                 uint32 c3=(c>>0)&0x03;\r
255 \r
256                                                 *current_line_buffer++=paletteRam[(c0<<1)+0];\r
257                                                 *current_line_buffer++=paletteRam[(c0<<1)+1];\r
258                                                 *current_line_buffer++=paletteRam[(c1<<1)+0];\r
259                                                 *current_line_buffer++=paletteRam[(c1<<1)+1];\r
260                                                 *current_line_buffer++=paletteRam[(c2<<1)+0];\r
261                                                 *current_line_buffer++=paletteRam[(c2<<1)+1];\r
262                                                 *current_line_buffer++=paletteRam[(c3<<1)+0];\r
263                                                 *current_line_buffer++=paletteRam[(c3<<1)+1];\r
264                                                 iwidth--;\r
265                                         }\r
266                                 }\r
267                         }\r
268                 }\r