Subversion Repositories Kolibri OS

Rev

Rev 8210 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
8210 maxcodehac 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
 
9172 turbocat 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];
8210 maxcodehac 67
 
68
#ifdef __cplusplus
69
}
70
#endif
71
 
72
 
73
 
74
 
75
/* Now fix up the ELF underscore problem */
76
 
9172 turbocat 77
#if (defined(__ELF__) && defined(__GNUC__)) || defined(__SUNPRO_C)
8210 maxcodehac 78
  #ifdef __cplusplus
79
  extern "C" {
80
  #endif
81
 
9172 turbocat 82
  extern int _Hermes_X86_CPU();
8210 maxcodehac 83
 
9172 turbocat 84
  extern void _ConvertX86(HermesConverterInterface *);
8210 maxcodehac 85
 
9172 turbocat 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();
8210 maxcodehac 96
 
9172 turbocat 97
  extern void _ConvertX86p16_16BGR565();
98
  extern void _ConvertX86p16_16RGB555();
99
  extern void _ConvertX86p16_16BGR555();
100
  extern void _ConvertX86p16_8RGB332();
8210 maxcodehac 101
 
102
 
9172 turbocat 103
  #define Hermes_X86_CPU _Hermes_X86_CPU
8210 maxcodehac 104
 
9172 turbocat 105
  #define ConvertX86 _ConvertX86
8210 maxcodehac 106
 
9172 turbocat 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
8210 maxcodehac 117
 
9172 turbocat 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
 
8210 maxcodehac 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