add OMAP layer handling
[sdl_omap.git] / src / hermes / HeadX86.h
CommitLineData
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
20extern "C" {
21#endif
22
23
24void STACKCALL ConvertX86(HermesConverterInterface *);
25void STACKCALL ClearX86_32(HermesClearInterface *);
26void STACKCALL ClearX86_24(HermesClearInterface *);
27void STACKCALL ClearX86_16(HermesClearInterface *);
28void STACKCALL ClearX86_8(HermesClearInterface *);
29
30int STACKCALL Hermes_X86_CPU();
31
32void ConvertX86p32_32BGR888();
33void ConvertX86p32_32RGBA888();
34void ConvertX86p32_32BGRA888();
35void ConvertX86p32_24RGB888();
36void ConvertX86p32_24BGR888();
37void ConvertX86p32_16RGB565();
38void ConvertX86p32_16BGR565();
39void ConvertX86p32_16RGB555();
40void ConvertX86p32_16BGR555();
41void ConvertX86p32_8RGB332();
42
43void ConvertX86p16_32RGB888();
44void ConvertX86p16_32BGR888();
45void ConvertX86p16_32RGBA888();
46void ConvertX86p16_32BGRA888();
47void ConvertX86p16_24RGB888();
48void ConvertX86p16_24BGR888();
49void ConvertX86p16_16BGR565();
50void ConvertX86p16_16RGB555();
51void ConvertX86p16_16BGR555();
52void ConvertX86p16_8RGB332();
53
54void CopyX86p_4byte();
55void CopyX86p_3byte();
56void CopyX86p_2byte();
57void CopyX86p_1byte();
58
59void ConvertX86pI8_32();
60void ConvertX86pI8_24();
61void ConvertX86pI8_16();
62
63extern int ConvertX86p16_32RGB888_LUT_X86[512];
64extern int ConvertX86p16_32BGR888_LUT_X86[512];
65extern int ConvertX86p16_32RGBA888_LUT_X86[512];
66extern 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