]> Shamusworld >> Repos - virtualjaguar/blob - src/include/fbmpop16.h
Adding 1.0.1/2 uncompressed tarballs to tags for historical purposes.
[virtualjaguar] / src / include / fbmpop16.h
1                 if (flags&FLAGS_READMODIFY)\r
2                 {\r
3                         if (flags&FLAGS_HFLIP)\r
4                         {\r
5                                 while (iwidth)\r
6                                 {\r
7                                         if (flags&FLAGS_TRANSPARENT)\r
8                                         {                                       \r
9                                                 uint16 data=jaguar_byte_read(ptr++);\r
10                                                 data<<=8;\r
11                                                 data|=jaguar_byte_read(ptr++);\r
12                                                 if (data)\r
13                                                 {\r
14                                                         *current_line_buffer--=BLEND_Y(*current_line_buffer,(data>>8));\r
15                                                         *current_line_buffer--=BLEND_CC(*current_line_buffer,(data&0xff));\r
16                                                 }\r
17                                                 else\r
18                                                         current_line_buffer-=2;\r
19                                         }\r
20                                         else\r
21                                         {\r
22                                                 *current_line_buffer--=BLEND_Y(*current_line_buffer,jaguar_byte_read(ptr++));\r
23                                                 *current_line_buffer--=BLEND_CC(*current_line_buffer,jaguar_byte_read(ptr++));\r
24                                         }\r
25                                         iwidth--;\r
26                                 }\r
27                         }\r
28                         else\r
29                         {\r
30                                 while (iwidth)\r
31                                 {\r
32                                         if (flags&FLAGS_TRANSPARENT)\r
33                                         {                                       \r
34                                                 uint16 data=jaguar_byte_read(ptr++);\r
35                                                 data<<=8;\r
36                                                 data|=jaguar_byte_read(ptr++);\r
37                                                 if (data)\r
38                                                 {\r
39                                                         *current_line_buffer++=BLEND_Y(*current_line_buffer,(data>>8));\r
40                                                         *current_line_buffer++=BLEND_CC(*current_line_buffer,(data&0xff));\r
41                                                 }\r
42                                                 else\r
43                                                         current_line_buffer+=2;\r
44                                         }\r
45                                         else\r
46                                         {\r
47                                                 *current_line_buffer++=BLEND_Y(*current_line_buffer,jaguar_byte_read(ptr++));\r
48                                                 *current_line_buffer++=BLEND_CC(*current_line_buffer,jaguar_byte_read(ptr++));\r
49                                         }\r
50                                         iwidth--;\r
51                                 }\r
52                         }\r
53                 }\r
54                 else\r
55                 {\r
56                         if (flags&FLAGS_HFLIP)\r
57                         {\r
58                                 while (iwidth)\r
59                                 {\r
60                                         if (flags&FLAGS_TRANSPARENT)\r
61                                         {                                       \r
62                                                 uint16 data=jaguar_byte_read(ptr++);\r
63                                                 data<<=8;\r
64                                                 data|=jaguar_byte_read(ptr++);\r
65                                                 if (data)\r
66                                                 {\r
67                                                         *current_line_buffer--=(data>>8);\r
68                                                         *current_line_buffer--=(data&0xff);\r
69                                                 }\r
70                                                 else\r
71                                                         current_line_buffer-=2;\r
72                                         }\r
73                                         else\r
74                                         {\r
75                                                 *current_line_buffer--=jaguar_byte_read(ptr++);\r
76                                                 *current_line_buffer--=jaguar_byte_read(ptr++);\r
77                                         }\r
78                                         iwidth--;\r
79                                 }\r
80                         }\r
81                         else\r
82                         {\r
83                                 int count=0;\r
84 \r
85                                 while (iwidth)\r
86                                 {\r
87                                         if (flags&FLAGS_TRANSPARENT)\r
88                                         {                                       \r
89                                                 uint16 data=jaguar_byte_read(ptr++);\r
90                                                 data<<=8;\r
91                                                 data|=jaguar_byte_read(ptr++);\r
92                                                 if (data)\r
93                                                 {\r
94                                                         *current_line_buffer++=(data>>8);\r
95                                                         *current_line_buffer++=(data&0xff);\r
96                                                 }\r
97                                                 else\r
98                                                         current_line_buffer+=2;\r
99                                         }\r
100                                         else\r
101                                         {\r
102                                                 *current_line_buffer++=jaguar_byte_read(ptr++);\r
103                                                 *current_line_buffer++=jaguar_byte_read(ptr++);\r
104                                         }                               \r
105                                         count+=2;\r
106                                         if (count==8) // 8 bytes = a phrase (64 bits)\r
107                                         {\r
108                                                 ptr+=8*(pitch-1);\r
109                                                 count=0;\r
110                                         }\r
111                                         iwidth--;\r
112                                 }\r
113                         }\r
114                 }\r