]> Shamusworld >> Repos - virtualjaguar/blob - src/include/fbmpop1.h
Visual Jaguar GCC/SDL v1.0.3 UN*X update
[virtualjaguar] / src / include / fbmpop1.h
1
2                 uint32 c;
3                 paletteRam+=(idx<<2);
4                 if (flags&FLAGS_READMODIFY)
5                 {
6                         if (flags&FLAGS_HFLIP)
7                         {
8                                 while (iwidth)
9                                 {
10                                         c=jaguar_byte_read(ptr++);
11                                         
12                                         if (flags&FLAGS_TRANSPARENT)
13                                         {
14                                                 #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; 
15                                                 
16                                                 PUTPIXEL_1_TB_HFLIP(c&0x80)
17                                                 PUTPIXEL_1_TB_HFLIP(c&0x40)
18                                                 PUTPIXEL_1_TB_HFLIP(c&0x20)
19                                                 PUTPIXEL_1_TB_HFLIP(c&0x10)
20                                                 PUTPIXEL_1_TB_HFLIP(c&0x08)
21                                                 PUTPIXEL_1_TB_HFLIP(c&0x04)
22                                                 PUTPIXEL_1_TB_HFLIP(c&0x02)
23                                                 PUTPIXEL_1_TB_HFLIP(c&0x01)
24                                         }
25                                         else
26                                         {
27                                                 #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]); }
28                                                 PUTPIXEL_1_B_HFLIP(c&0x80)
29                                                 PUTPIXEL_1_B_HFLIP(c&0x40)
30                                                 PUTPIXEL_1_B_HFLIP(c&0x20)
31                                                 PUTPIXEL_1_B_HFLIP(c&0x10)
32                                                 PUTPIXEL_1_B_HFLIP(c&0x08)
33                                                 PUTPIXEL_1_B_HFLIP(c&0x04)
34                                                 PUTPIXEL_1_B_HFLIP(c&0x02)
35                                                 PUTPIXEL_1_B_HFLIP(c&0x01)
36                                         }
37                                         iwidth--;
38                                 }
39                         }
40                         else
41                         {
42                                 while (iwidth)
43                                 {
44                                         c=jaguar_byte_read(ptr++);
45                                         
46                                         if (flags&FLAGS_TRANSPARENT)
47                                         {
48                                                 #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; 
49                                                 
50                                                 PUTPIXEL_1_TB(c&0x80)
51                                                 PUTPIXEL_1_TB(c&0x40)
52                                                 PUTPIXEL_1_TB(c&0x20)
53                                                 PUTPIXEL_1_TB(c&0x10)
54                                                 PUTPIXEL_1_TB(c&0x08)
55                                                 PUTPIXEL_1_TB(c&0x04)
56                                                 PUTPIXEL_1_TB(c&0x02)
57                                                 PUTPIXEL_1_TB(c&0x01)
58                                         }
59                                         else
60                                         {
61                                                 #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]); }
62                                                 PUTPIXEL_1_B(c&0x80)
63                                                 PUTPIXEL_1_B(c&0x40)
64                                                 PUTPIXEL_1_B(c&0x20)
65                                                 PUTPIXEL_1_B(c&0x10)
66                                                 PUTPIXEL_1_B(c&0x08)
67                                                 PUTPIXEL_1_B(c&0x04)
68                                                 PUTPIXEL_1_B(c&0x02)
69                                                 PUTPIXEL_1_B(c&0x01)
70                                         }
71                                         iwidth--;
72                                 }
73                         }
74                 }
75                 else
76                 {
77                         if (flags&FLAGS_HFLIP)
78                         {
79                                 while (iwidth)
80                                 {
81                                         c=jaguar_byte_read(ptr++);
82                                         
83                                         if (flags&FLAGS_TRANSPARENT)
84                                         {
85                                                 #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; 
86                                                 
87                                                 PUTPIXEL_1_T_HFLIP(c&0x80)
88                                                 PUTPIXEL_1_T_HFLIP(c&0x40)
89                                                 PUTPIXEL_1_T_HFLIP(c&0x20)
90                                                 PUTPIXEL_1_T_HFLIP(c&0x10)
91                                                 PUTPIXEL_1_T_HFLIP(c&0x08)
92                                                 PUTPIXEL_1_T_HFLIP(c&0x04)
93                                                 PUTPIXEL_1_T_HFLIP(c&0x02)
94                                                 PUTPIXEL_1_T_HFLIP(c&0x01)
95                                         }
96                                         else
97                                         {
98                                                 #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]; }
99                                                 PUTPIXEL_1_HFLIP(c&0x80)
100                                                 PUTPIXEL_1_HFLIP(c&0x40)
101                                                 PUTPIXEL_1_HFLIP(c&0x20)
102                                                 PUTPIXEL_1_HFLIP(c&0x10)
103                                                 PUTPIXEL_1_HFLIP(c&0x08)
104                                                 PUTPIXEL_1_HFLIP(c&0x04)
105                                                 PUTPIXEL_1_HFLIP(c&0x02)
106                                                 PUTPIXEL_1_HFLIP(c&0x01)
107                                         }
108                                         iwidth--;
109                                 }
110                         }
111                         else
112                         {
113                                 while (iwidth)
114                                 {
115                                         c=jaguar_byte_read(ptr++);
116                                         
117                                         if (flags&FLAGS_TRANSPARENT)
118                                         {
119                                                 #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; 
120                                                 
121                                                 PUTPIXEL_1_T(c&0x80)
122                                                 PUTPIXEL_1_T(c&0x40)
123                                                 PUTPIXEL_1_T(c&0x20)
124                                                 PUTPIXEL_1_T(c&0x10)
125                                                 PUTPIXEL_1_T(c&0x08)
126                                                 PUTPIXEL_1_T(c&0x04)
127                                                 PUTPIXEL_1_T(c&0x02)
128                                                 PUTPIXEL_1_T(c&0x01)
129                                         }
130                                         else
131                                         {
132                                                 #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]; }
133                                                 PUTPIXEL_1(c&0x80)
134                                                 PUTPIXEL_1(c&0x40)
135                                                 PUTPIXEL_1(c&0x20)
136                                                 PUTPIXEL_1(c&0x10)
137                                                 PUTPIXEL_1(c&0x08)
138                                                 PUTPIXEL_1(c&0x04)
139                                                 PUTPIXEL_1(c&0x02)
140                                                 PUTPIXEL_1(c&0x01)
141                                         }
142                                         iwidth--;
143                                 }
144                         }
145                 }