]> Shamusworld >> Repos - virtualjaguar/blob - src/include/fbmpop1p.h
Adding 1.0.1/2 uncompressed tarballs to tags for historical purposes.
[virtualjaguar] / src / include / fbmpop1p.h
1 \r
2                 uint32 c;\r
3                 paletteRam+=(idx<<2);\r
4                 int count=0;\r
5                 if (flags&FLAGS_READMODIFY)\r
6                 {\r
7                         if (flags&FLAGS_HFLIP)\r
8                         {\r
9                                 while (iwidth)\r
10                                 {\r
11                                         c=jaguar_byte_read(ptr++);\r
12                                         \r
13                                         if (flags&FLAGS_TRANSPARENT)\r
14                                         {\r
15                                                 #define PUTPIXEL_1_TB_HFLIP(C) if (C) { *current_line_buffer--=BLEND_Y(*current_line_buffer,paletteRam[(1<<1)+0]); *current_line_buffer--=BLEND_CC(*current_line_buffer,paletteRam[(1<<1)+1]); } else current_line_buffer-=2; \r
16                                                 \r
17                                                 PUTPIXEL_1_TB_HFLIP(c&0x80)\r
18                                                 PUTPIXEL_1_TB_HFLIP(c&0x40)\r
19                                                 PUTPIXEL_1_TB_HFLIP(c&0x20)\r
20                                                 PUTPIXEL_1_TB_HFLIP(c&0x10)\r
21                                                 PUTPIXEL_1_TB_HFLIP(c&0x08)\r
22                                                 PUTPIXEL_1_TB_HFLIP(c&0x04)\r
23                                                 PUTPIXEL_1_TB_HFLIP(c&0x02)\r
24                                                 PUTPIXEL_1_TB_HFLIP(c&0x01)\r
25                                         }\r
26                                         else\r
27                                         {\r
28                                                 #define PUTPIXEL_1_B_HFLIP(C) if (C) { *current_line_buffer--=BLEND_Y(*current_line_buffer,paletteRam[(1<<1)+0]); *current_line_buffer--=BLEND_CC(*current_line_buffer,paletteRam[(1<<1)+1]); } else { *current_line_buffer--=BLEND_Y(*current_line_buffer,paletteRam[0]); *current_line_buffer--=BLEND_CC(*current_line_buffer,paletteRam[1]); }\r
29                                                 PUTPIXEL_1_B_HFLIP(c&0x80)\r
30                                                 PUTPIXEL_1_B_HFLIP(c&0x40)\r
31                                                 PUTPIXEL_1_B_HFLIP(c&0x20)\r
32                                                 PUTPIXEL_1_B_HFLIP(c&0x10)\r
33                                                 PUTPIXEL_1_B_HFLIP(c&0x08)\r
34                                                 PUTPIXEL_1_B_HFLIP(c&0x04)\r
35                                                 PUTPIXEL_1_B_HFLIP(c&0x02)\r
36                                                 PUTPIXEL_1_B_HFLIP(c&0x01)\r
37                                         }\r
38                                         count+=1;\r
39                                         if (count==8) // 8 bytes = a phrase (64 bits)\r
40                                         {\r
41                                                 ptr-=8*(pitch-1);\r
42                                                 count=0;\r
43                                         }\r
44                                         iwidth--;\r
45                                 }\r
46                         }\r
47                         else\r
48                         {\r
49                                 while (iwidth)\r
50                                 {\r
51                                         c=jaguar_byte_read(ptr++);\r
52                                         \r
53                                         if (flags&FLAGS_TRANSPARENT)\r
54                                         {\r
55                                                 #define PUTPIXEL_1_TB(C) if (C) { *current_line_buffer++=BLEND_Y(*current_line_buffer,paletteRam[(1<<1)+0]); *current_line_buffer++=BLEND_CC(*current_line_buffer,paletteRam[(1<<1)+1]); } else current_line_buffer+=2; \r
56                                                 \r
57                                                 PUTPIXEL_1_TB(c&0x80)\r
58                                                 PUTPIXEL_1_TB(c&0x40)\r
59                                                 PUTPIXEL_1_TB(c&0x20)\r
60                                                 PUTPIXEL_1_TB(c&0x10)\r
61                                                 PUTPIXEL_1_TB(c&0x08)\r
62                                                 PUTPIXEL_1_TB(c&0x04)\r
63                                                 PUTPIXEL_1_TB(c&0x02)\r
64                                                 PUTPIXEL_1_TB(c&0x01)\r
65                                         }\r
66                                         else\r
67                                         {\r
68                                                 #define PUTPIXEL_1_B(C) if (C) { *current_line_buffer++=BLEND_Y(*current_line_buffer,paletteRam[(1<<1)+0]); *current_line_buffer++=BLEND_CC(*current_line_buffer,paletteRam[(1<<1)+1]); } else { *current_line_buffer++=BLEND_Y(*current_line_buffer,paletteRam[0]); *current_line_buffer++=BLEND_CC(*current_line_buffer,paletteRam[1]); }\r
69                                                 PUTPIXEL_1_B(c&0x80)\r
70                                                 PUTPIXEL_1_B(c&0x40)\r
71                                                 PUTPIXEL_1_B(c&0x20)\r
72                                                 PUTPIXEL_1_B(c&0x10)\r
73                                                 PUTPIXEL_1_B(c&0x08)\r
74                                                 PUTPIXEL_1_B(c&0x04)\r
75                                                 PUTPIXEL_1_B(c&0x02)\r
76                                                 PUTPIXEL_1_B(c&0x01)\r
77                                         }\r
78                                         count+=1;\r
79                                         if (count==8) // 8 bytes = a phrase (64 bits)\r
80                                         {\r
81                                                 ptr+=8*(pitch-1);\r
82                                                 count=0;\r
83                                         }\r
84                                         iwidth--;\r
85                                 }\r
86                         }\r
87                 }\r
88                 else\r
89                 {\r
90                         if (flags&FLAGS_HFLIP)\r
91                         {\r
92                                 while (iwidth)\r
93                                 {\r
94                                         c=jaguar_byte_read(ptr++);\r
95                                         \r
96                                         if (flags&FLAGS_TRANSPARENT)\r
97                                         {\r
98                                                 #define PUTPIXEL_1_T_HFLIP(C) if (C) { *current_line_buffer--=paletteRam[(1<<1)+0]; *current_line_buffer--=paletteRam[(1<<1)+1]; } else current_line_buffer-=2; \r
99                                                 \r
100                                                 PUTPIXEL_1_T_HFLIP(c&0x80)\r
101                                                 PUTPIXEL_1_T_HFLIP(c&0x40)\r
102                                                 PUTPIXEL_1_T_HFLIP(c&0x20)\r
103                                                 PUTPIXEL_1_T_HFLIP(c&0x10)\r
104                                                 PUTPIXEL_1_T_HFLIP(c&0x08)\r
105                                                 PUTPIXEL_1_T_HFLIP(c&0x04)\r
106                                                 PUTPIXEL_1_T_HFLIP(c&0x02)\r
107                                                 PUTPIXEL_1_T_HFLIP(c&0x01)\r
108                                         }\r
109                                         else\r
110                                         {\r
111                                                 #define PUTPIXEL_1_HFLIP(C) if (C) { *current_line_buffer--=paletteRam[(1<<1)+0]; *current_line_buffer--=paletteRam[(1<<1)+1]; } else { *current_line_buffer--=paletteRam[0]; *current_line_buffer--=paletteRam[1]; }\r
112                                                 PUTPIXEL_1_HFLIP(c&0x80)\r
113                                                 PUTPIXEL_1_HFLIP(c&0x40)\r
114                                                 PUTPIXEL_1_HFLIP(c&0x20)\r
115                                                 PUTPIXEL_1_HFLIP(c&0x10)\r
116                                                 PUTPIXEL_1_HFLIP(c&0x08)\r
117                                                 PUTPIXEL_1_HFLIP(c&0x04)\r
118                                                 PUTPIXEL_1_HFLIP(c&0x02)\r
119                                                 PUTPIXEL_1_HFLIP(c&0x01)\r
120                                         }\r
121                                         iwidth--;\r
122                                         count+=1;\r
123                                         if (count==8) // 8 bytes = a phrase (64 bits)\r
124                                         {\r
125                                                 ptr-=8*(pitch-1);\r
126                                                 count=0;\r
127                                         }\r
128                                 }\r
129                         }\r
130                         else\r
131                         {\r
132                                 while (iwidth)\r
133                                 {\r
134                                         c=jaguar_byte_read(ptr++);\r
135                                         \r
136                                         if (flags&FLAGS_TRANSPARENT)\r
137                                         {\r
138                                                 #define PUTPIXEL_1_T(C) if (C) { *current_line_buffer++=paletteRam[(1<<1)+0]; *current_line_buffer++=paletteRam[(1<<1)+1]; } else current_line_buffer+=2; \r
139                                                 \r
140                                                 PUTPIXEL_1_T(c&0x80)\r
141                                                 PUTPIXEL_1_T(c&0x40)\r
142                                                 PUTPIXEL_1_T(c&0x20)\r
143                                                 PUTPIXEL_1_T(c&0x10)\r
144                                                 PUTPIXEL_1_T(c&0x08)\r
145                                                 PUTPIXEL_1_T(c&0x04)\r
146                                                 PUTPIXEL_1_T(c&0x02)\r
147                                                 PUTPIXEL_1_T(c&0x01)\r
148                                         }\r
149                                         else\r
150                                         {\r
151                                                 #define PUTPIXEL_1(C) if (C) { *current_line_buffer++=paletteRam[(1<<1)+0]; *current_line_buffer++=paletteRam[(1<<1)+1]; } else { *current_line_buffer++=paletteRam[0]; *current_line_buffer++=paletteRam[1]; }\r
152                                                 PUTPIXEL_1(c&0x80)\r
153                                                 PUTPIXEL_1(c&0x40)\r
154                                                 PUTPIXEL_1(c&0x20)\r
155                                                 PUTPIXEL_1(c&0x10)\r
156                                                 PUTPIXEL_1(c&0x08)\r
157                                                 PUTPIXEL_1(c&0x04)\r
158                                                 PUTPIXEL_1(c&0x02)\r
159                                                 PUTPIXEL_1(c&0x01)\r
160                                         }\r
161                                         count+=1;\r
162                                         if (count==8) // 8 bytes = a phrase (64 bits)\r
163                                         {\r
164                                                 ptr+=8*(pitch-1);\r
165                                                 count=0;\r
166                                         }\r
167                                         iwidth--;\r
168                                 }\r
169                         }\r
170                 }\r