Mercurial > sdl-ios-xcode
annotate src/hermes/HeadMMX.h @ 2185:2032348afed1
This code adds support for DirectColor visuals to SDL 1.3. The support uses part of the Xmu library. To ensure that the library is
available and to keep people form having to install yet another library I have added the essential parts of Xmu in
src/video/extensions/XmuStdCmap and an include file in src/video/extensions. The support makes use of standard X11 mechanisms to
create color maps and make sure that an application uses the same color map for each window/visual combination. This should make it
possible for gamma support to be implemented based on a single color map per application.
Hurm... it looks like "make indent" modified a few extra files. Those are getting committed too.
author | Bob Pendleton <bob@pendleton.com> |
---|---|
date | Thu, 12 Jul 2007 20:00:50 +0000 |
parents | c121d94672cb |
children |
rev | line source |
---|---|
0 | 1 /* |
2 Header definitions for the MMX routines for the HERMES library | |
3 Copyright (c) 1998 Christian Nentwich (c.nentwich@cs.ucl.ac.uk) | |
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 */ | |
1402
d910939febfa
Use consistent identifiers for the various platforms we support.
Sam Lantinga <slouken@libsdl.org>
parents:
1197
diff
changeset
|
9 #include "SDL_config.h" |
0 | 10 |
11 #ifndef __HERMES_HEAD_MMX__ | |
12 #define __HERMES_HEAD_MMX__ | |
13 | |
14 | |
15 /* If you cannot stand ifdefs, then please do not look into this file, it's | |
16 going to end your life :) */ | |
17 | |
18 #ifdef X86_ASSEMBLER | |
19 | |
20 | |
21 #ifdef __cplusplus | |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
22 extern "C" |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
23 { |
0 | 24 #endif |
25 | |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
26 void STACKCALL ConvertMMX(HermesConverterInterface *); |
0 | 27 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
28 void STACKCALL ClearMMX_32(HermesClearInterface *); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
29 void STACKCALL ClearMMX_24(HermesClearInterface *); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
30 void STACKCALL ClearMMX_16(HermesClearInterface *); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
31 void STACKCALL ClearMMX_8(HermesClearInterface *); |
0 | 32 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
33 void ConvertMMXpII32_24RGB888(); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
34 void ConvertMMXpII32_16RGB565(); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
35 void ConvertMMXpII32_16BGR565(); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
36 void ConvertMMXpII32_16RGB555(); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
37 void ConvertMMXpII32_16BGR565(); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
38 void ConvertMMXpII32_16BGR555(); |
0 | 39 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
40 void ConvertMMXp32_16RGB555(); |
0 | 41 |
42 #ifdef __cplusplus | |
43 } | |
44 #endif | |
45 | |
46 | |
47 | |
48 /* Fix the underscore business with ELF compilers */ | |
49 | |
50 #if defined(__ELF__) && defined(__GNUC__) | |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
51 #ifdef __cplusplus |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
52 extern "C" |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
53 { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
54 #endif |
0 | 55 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
56 extern void _ConvertMMX(HermesConverterInterface *); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
57 extern void _ConvertMMXpII32_24RGB888(); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
58 extern void _ConvertMMXpII32_16RGB565(); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
59 extern void _ConvertMMXpII32_16BGR565(); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
60 extern void _ConvertMMXpII32_16RGB555(); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
61 extern void _ConvertMMXpII32_16BGR555(); |
0 | 62 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
63 #define ConvertMMX _ConvertMMX |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
64 #define ConvertMMXpII32_24RGB888 _ConvertMMXpII32_24RGB888 |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
65 #define ConvertMMXpII32_16RGB565 _ConvertMMXpII32_16RGB565 |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
66 #define ConvertMMXpII32_16BGR565 _ConvertMMXpII32_16BGR565 |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
67 #define ConvertMMXpII32_16RGB555 _ConvertMMXpII32_16RGB555 |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
68 #define ConvertMMXpII32_16BGR555 _ConvertMMXpII32_16BGR555 |
0 | 69 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
70 #ifdef __cplusplus |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
71 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
72 #endif |
0 | 73 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
74 #endif /* ELF and GNUC */ |
0 | 75 |
76 | |
77 | |
78 | |
79 /* Make it work with Watcom */ | |
80 #ifdef __WATCOMC__ | |
81 #pragma warning 601 9 | |
82 | |
83 #pragma aux ConvertMMX "_*" modify [EAX EBX ECX EDX ESI EDI] | |
84 | |
85 #pragma aux ClearMMX_32 "_*" modify [EAX EBX ECX EDX ESI EDI] | |
86 #pragma aux ClearMMX_24 "_*" modify [EAX EBX ECX EDX ESI EDI] | |
87 #pragma aux ClearMMX_16 "_*" modify [EAX EBX ECX EDX ESI EDI] | |
88 #pragma aux ClearMMX_8 "_*" modify [EAX EBX ECX EDX ESI EDI] | |
89 | |
90 #pragma aux ConvertMMXpII32_24RGB888 "_*" | |
91 #pragma aux ConvertMMXpII32_16RGB565 "_*" | |
92 #pragma aux ConvertMMXpII32_16BGR565 "_*" | |
93 #pragma aux ConvertMMXpII32_16RGB555 "_*" | |
94 #pragma aux ConvertMMXpII32_16BGR555 "_*" | |
95 #pragma aux ConvertMMXp32_16RGB555 "_*" | |
96 | |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
97 #endif /* WATCOM */ |
0 | 98 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
99 #endif /* X86_ASSEMBLER */ |
0 | 100 |
101 | |
102 #endif | |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
103 /* vi: set ts=4 sw=4 expandtab: */ |