e14743d1 |
1 | /* |
2 | Header definitions for the x86 routines for the HERMES library |
3 | Copyright (c) 1998 Christian Nentwich (brn@eleet.mcb.at) |
4 | This source code is licensed under the GNU LGPL |
5 | |
6 | Please refer to the file COPYING.LIB contained in the distribution for |
7 | licensing conditions |
8 | */ |
9 | |
10 | #ifndef __HERMES_HEAD_X86__ |
11 | #define __HERMES_HEAD_X86__ |
12 | |
13 | |
14 | #ifdef X86_ASSEMBLER |
15 | |
16 | /* If you can't stand IFDEFS, then close your eyes now, please :) */ |
17 | |
18 | /* Ok, we start with normal function definitions */ |
19 | #ifdef __cplusplus |
20 | extern "C" { |
21 | #endif |
22 | |
23 | |
24 | void STACKCALL ConvertX86(HermesConverterInterface *); |
25 | void STACKCALL ClearX86_32(HermesClearInterface *); |
26 | void STACKCALL ClearX86_24(HermesClearInterface *); |
27 | void STACKCALL ClearX86_16(HermesClearInterface *); |
28 | void STACKCALL ClearX86_8(HermesClearInterface *); |
29 | |
30 | int STACKCALL Hermes_X86_CPU(); |
31 | |
32 | void ConvertX86p32_32BGR888(); |
33 | void ConvertX86p32_32RGBA888(); |
34 | void ConvertX86p32_32BGRA888(); |
35 | void ConvertX86p32_24RGB888(); |
36 | void ConvertX86p32_24BGR888(); |
37 | void ConvertX86p32_16RGB565(); |
38 | void ConvertX86p32_16BGR565(); |
39 | void ConvertX86p32_16RGB555(); |
40 | void ConvertX86p32_16BGR555(); |
41 | void ConvertX86p32_8RGB332(); |
42 | |
43 | void ConvertX86p16_32RGB888(); |
44 | void ConvertX86p16_32BGR888(); |
45 | void ConvertX86p16_32RGBA888(); |
46 | void ConvertX86p16_32BGRA888(); |
47 | void ConvertX86p16_24RGB888(); |
48 | void ConvertX86p16_24BGR888(); |
49 | void ConvertX86p16_16BGR565(); |
50 | void ConvertX86p16_16RGB555(); |
51 | void ConvertX86p16_16BGR555(); |
52 | void ConvertX86p16_8RGB332(); |
53 | |
54 | void CopyX86p_4byte(); |
55 | void CopyX86p_3byte(); |
56 | void CopyX86p_2byte(); |
57 | void CopyX86p_1byte(); |
58 | |
59 | void ConvertX86pI8_32(); |
60 | void ConvertX86pI8_24(); |
61 | void ConvertX86pI8_16(); |
62 | |
63 | extern int ConvertX86p16_32RGB888_LUT_X86[512]; |
64 | extern int ConvertX86p16_32BGR888_LUT_X86[512]; |
65 | extern int ConvertX86p16_32RGBA888_LUT_X86[512]; |
66 | extern int ConvertX86p16_32BGRA888_LUT_X86[512]; |
67 | |
68 | #ifdef __cplusplus |
69 | } |
70 | #endif |
71 | |
72 | |
73 | |
74 | |
75 | /* Now fix up the ELF underscore problem */ |
76 | |
77 | #if (defined(__ELF__) && defined(__GNUC__)) || defined(__SUNPRO_C) |
78 | #ifdef __cplusplus |
79 | extern "C" { |
80 | #endif |
81 | |
82 | extern int _Hermes_X86_CPU(); |
83 | |
84 | extern void _ConvertX86(HermesConverterInterface *); |
85 | |
86 | extern void _ConvertX86p32_32BGR888(); |
87 | extern void _ConvertX86p32_32RGBA888(); |
88 | extern void _ConvertX86p32_32BGRA888(); |
89 | extern void _ConvertX86p32_24RGB888(); |
90 | extern void _ConvertX86p32_24BGR888(); |
91 | extern void _ConvertX86p32_16RGB565(); |
92 | extern void _ConvertX86p32_16BGR565(); |
93 | extern void _ConvertX86p32_16RGB555(); |
94 | extern void _ConvertX86p32_16BGR555(); |
95 | extern void _ConvertX86p32_8RGB332(); |
96 | |
97 | extern void _ConvertX86p16_16BGR565(); |
98 | extern void _ConvertX86p16_16RGB555(); |
99 | extern void _ConvertX86p16_16BGR555(); |
100 | extern void _ConvertX86p16_8RGB332(); |
101 | |
102 | |
103 | #define Hermes_X86_CPU _Hermes_X86_CPU |
104 | |
105 | #define ConvertX86 _ConvertX86 |
106 | |
107 | #define ConvertX86p32_32BGR888 _ConvertX86p32_32BGR888 |
108 | #define ConvertX86p32_32RGBA888 _ConvertX86p32_32RGBA888 |
109 | #define ConvertX86p32_32BGRA888 _ConvertX86p32_32BGRA888 |
110 | #define ConvertX86p32_24RGB888 _ConvertX86p32_24RGB888 |
111 | #define ConvertX86p32_24BGR888 _ConvertX86p32_24BGR888 |
112 | #define ConvertX86p32_16RGB565 _ConvertX86p32_16RGB565 |
113 | #define ConvertX86p32_16BGR565 _ConvertX86p32_16BGR565 |
114 | #define ConvertX86p32_16RGB555 _ConvertX86p32_16RGB555 |
115 | #define ConvertX86p32_16BGR555 _ConvertX86p32_16BGR555 |
116 | #define ConvertX86p32_8RGB332 _ConvertX86p32_8RGB332 |
117 | |
118 | #define ConvertX86p16_16BGR565 _ConvertX86p16_16BGR565 |
119 | #define ConvertX86p16_16RGB555 _ConvertX86p16_16RGB555 |
120 | #define ConvertX86p16_16BGR555 _ConvertX86p16_16BGR555 |
121 | #define ConvertX86p16_8RGB332 _ConvertX86p16_8RGB332 |
122 | |
123 | |
124 | #ifdef __cplusplus |
125 | } |
126 | #endif |
127 | |
128 | #endif /* ELF & GNU */ |
129 | |
130 | |
131 | |
132 | /* Make it run with WATCOM C */ |
133 | #ifdef __WATCOMC__ |
134 | #pragma warning 601 9 |
135 | |
136 | #pragma aux Hermes_X86_CPU "_*" |
137 | |
138 | #pragma aux ConvertX86 "_*" modify [EAX EBX ECX EDX ESI EDI] |
139 | #pragma aux ClearX86_32 "_*" modify [EAX EBX ECX EDX ESI EDI] |
140 | #pragma aux ClearX86_24 "_*" modify [EAX EBX ECX EDX ESI EDI] |
141 | #pragma aux ClearX86_16 "_*" modify [EAX EBX ECX EDX ESI EDI] |
142 | #pragma aux ClearX86_8 "_*" modify [EAX EBX ECX EDX ESI EDI] |
143 | |
144 | #pragma aux ConvertX86p32_32BGR888 "_*" |
145 | #pragma aux ConvertX86p32_32RGBA888 "_*" |
146 | #pragma aux ConvertX86p32_32BGRA888 "_*" |
147 | #pragma aux ConvertX86p32_24RGB888 "_*" |
148 | #pragma aux ConvertX86p32_24BGR888 "_*" |
149 | #pragma aux ConvertX86p32_16RGB565 "_*" |
150 | #pragma aux ConvertX86p32_16BGR565 "_*" |
151 | #pragma aux ConvertX86p32_16RGB555 "_*" |
152 | #pragma aux ConvertX86p32_16BGR555 "_*" |
153 | #pragma aux ConvertX86p32_8RGB332 "_*" |
154 | |
155 | #pragma aux ConvertX86p16_32RGB888 "_*" |
156 | #pragma aux ConvertX86p16_32BGR888 "_*" |
157 | #pragma aux ConvertX86p16_32RGBA888 "_*" |
158 | #pragma aux ConvertX86p16_32BGRA888 "_*" |
159 | #pragma aux ConvertX86p16_24RGB888 "_*" |
160 | #pragma aux ConvertX86p16_24BGR888 "_*" |
161 | #pragma aux ConvertX86p16_16BGR565 "_*" |
162 | #pragma aux ConvertX86p16_16RGB555 "_*" |
163 | #pragma aux ConvertX86p16_16BGR555 "_*" |
164 | #pragma aux ConvertX86p16_8RGB332 "_*" |
165 | |
166 | #pragma aux CopyX86p_4byte "_*" |
167 | #pragma aux CopyX86p_3byte "_*" |
168 | #pragma aux CopyX86p_2byte "_*" |
169 | #pragma aux CopyX86p_1byte "_*" |
170 | |
171 | #pragma aux ConvertX86pI8_32 "_*" |
172 | #pragma aux ConvertX86pI8_24 "_*" |
173 | #pragma aux ConvertX86pI8_16 "_*" |
174 | |
175 | #pragma aux ConvertX86p16_32RGB888_LUT_X86 "_*" |
176 | #pragma aux ConvertX86p16_32BGR888_LUT_X86 "_*" |
177 | #pragma aux ConvertX86p16_32RGBA888_LUT_X86 "_*" |
178 | #pragma aux ConvertX86p16_32BGRA888_LUT_X86 "_*" |
179 | |
180 | #endif /* __WATCOMC__ */ |
181 | |
182 | |
183 | #endif /* X86_ASSEMBLER */ |
184 | |
185 | |
186 | #endif |