Mercurial > sdl-ios-xcode
annotate src/video/SDL_blit.h @ 5082:de59e0218aa2
Fixed bug #1011
Daniel Ellis 2010-06-25 15:20:31 PDT
SDL based applications sometimes display the wrong application name in the
Sound Preferences dialog when using pulseaudio.
I can see from the code that the SDL pulse module is initiating a new pulse
audio context and passing an application name using the function
get_progname().
The get_progname() function returns the name of the current process. However,
the process name is often not a suitable name to use. For example, the OpenShot
video editor is a python application, and so "python" is displayed in the Sound
Preferences window (see Bug #596504), when it should be displaying "OpenShot".
PulseAudio allows applications to specify the application name, either at the
time the context is created (as SDL does currently), or by special environment
variables (see http://www.pulseaudio.org/wiki/ApplicationProperties). If no
name is specified, then pulseaudio will determine the name based on the
process.
If you specify the application name when initiating the pulseaudio context,
then that will override any application name specified using an environment
variable.
As libsdl is a library, I believe the solution is for libsdl to not specify any
application name when initiating a pulseaudio context, which will enable
applications to specify the application name using environment variables. In
the case that the applications do not specify anything, pulseaudio will fall
back to using the process name anyway.
The attached patch removes the get_progname() function and passes NULL as the
application name when creating the pulseaudio context, which fixes the issue.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sun, 23 Jan 2011 21:55:04 -0800 |
parents | 1bceff8f008f |
children | e743b9c3f6d6 |
rev | line source |
---|---|
0 | 1 /* |
2 SDL - Simple DirectMedia Layer | |
3697 | 3 Copyright (C) 1997-2010 Sam Lantinga |
0 | 4 |
5 This library is free software; you can redistribute it and/or | |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1162
diff
changeset
|
6 modify it under the terms of the GNU Lesser General Public |
0 | 7 License as published by the Free Software Foundation; either |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1162
diff
changeset
|
8 version 2.1 of the License, or (at your option) any later version. |
0 | 9 |
10 This library is distributed in the hope that it will be useful, | |
11 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1162
diff
changeset
|
13 Lesser General Public License for more details. |
0 | 14 |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1162
diff
changeset
|
15 You should have received a copy of the GNU Lesser General Public |
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1162
diff
changeset
|
16 License along with this library; if not, write to the Free Software |
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1162
diff
changeset
|
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
0 | 18 |
19 Sam Lantinga | |
252
e8157fcb3114
Updated the source with the correct e-mail address
Sam Lantinga <slouken@libsdl.org>
parents:
163
diff
changeset
|
20 slouken@libsdl.org |
0 | 21 */ |
1402
d910939febfa
Use consistent identifiers for the various platforms we support.
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
22 #include "SDL_config.h" |
0 | 23 |
24 #ifndef _SDL_blit_h | |
25 #define _SDL_blit_h | |
26 | |
4426 | 27 #ifdef __MINGW32__ |
28 #include <_mingw.h> | |
29 #endif | |
30 | |
31 #if defined(__MINGW32__) && defined(__MINGW64_VERSION_MAJOR) | |
32 #include <intrin.h> | |
33 #else | |
2249
5a58b57b6724
Added SSE and MMX optimization for SDL_FillRect()
Sam Lantinga <slouken@libsdl.org>
parents:
2247
diff
changeset
|
34 #ifdef __MMX__ |
5a58b57b6724
Added SSE and MMX optimization for SDL_FillRect()
Sam Lantinga <slouken@libsdl.org>
parents:
2247
diff
changeset
|
35 #include <mmintrin.h> |
5a58b57b6724
Added SSE and MMX optimization for SDL_FillRect()
Sam Lantinga <slouken@libsdl.org>
parents:
2247
diff
changeset
|
36 #endif |
2261
c20476d7d7b3
Enabled 3DNow! intrinsic support
Sam Lantinga <slouken@libsdl.org>
parents:
2260
diff
changeset
|
37 #ifdef __3dNOW__ |
c20476d7d7b3
Enabled 3DNow! intrinsic support
Sam Lantinga <slouken@libsdl.org>
parents:
2260
diff
changeset
|
38 #include <mm3dnow.h> |
c20476d7d7b3
Enabled 3DNow! intrinsic support
Sam Lantinga <slouken@libsdl.org>
parents:
2260
diff
changeset
|
39 #endif |
2249
5a58b57b6724
Added SSE and MMX optimization for SDL_FillRect()
Sam Lantinga <slouken@libsdl.org>
parents:
2247
diff
changeset
|
40 #ifdef __SSE__ |
5a58b57b6724
Added SSE and MMX optimization for SDL_FillRect()
Sam Lantinga <slouken@libsdl.org>
parents:
2247
diff
changeset
|
41 #include <xmmintrin.h> |
5a58b57b6724
Added SSE and MMX optimization for SDL_FillRect()
Sam Lantinga <slouken@libsdl.org>
parents:
2247
diff
changeset
|
42 #endif |
2262
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
43 #ifdef __SSE2__ |
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
44 #include <emmintrin.h> |
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
45 #endif |
4426 | 46 #endif |
2249
5a58b57b6724
Added SSE and MMX optimization for SDL_FillRect()
Sam Lantinga <slouken@libsdl.org>
parents:
2247
diff
changeset
|
47 |
2250
e1d228456537
Fixed a few compiler warnings.
Sam Lantinga <slouken@libsdl.org>
parents:
2249
diff
changeset
|
48 #include "SDL_cpuinfo.h" |
0 | 49 #include "SDL_endian.h" |
2898
e40448bc7727
Share code between fill and line drawing
Sam Lantinga <slouken@libsdl.org>
parents:
2859
diff
changeset
|
50 #include "SDL_video.h" |
0 | 51 |
2262
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
52 /* SDL blit copy flags */ |
2266
e61ad15a205f
More work in progress integrating SDL_Surface and the new SDL_Texture API
Sam Lantinga <slouken@libsdl.org>
parents:
2263
diff
changeset
|
53 #define SDL_COPY_MODULATE_COLOR 0x00000001 |
e61ad15a205f
More work in progress integrating SDL_Surface and the new SDL_Texture API
Sam Lantinga <slouken@libsdl.org>
parents:
2263
diff
changeset
|
54 #define SDL_COPY_MODULATE_ALPHA 0x00000002 |
e61ad15a205f
More work in progress integrating SDL_Surface and the new SDL_Texture API
Sam Lantinga <slouken@libsdl.org>
parents:
2263
diff
changeset
|
55 #define SDL_COPY_MASK 0x00000010 |
e61ad15a205f
More work in progress integrating SDL_Surface and the new SDL_Texture API
Sam Lantinga <slouken@libsdl.org>
parents:
2263
diff
changeset
|
56 #define SDL_COPY_BLEND 0x00000020 |
e61ad15a205f
More work in progress integrating SDL_Surface and the new SDL_Texture API
Sam Lantinga <slouken@libsdl.org>
parents:
2263
diff
changeset
|
57 #define SDL_COPY_ADD 0x00000040 |
e61ad15a205f
More work in progress integrating SDL_Surface and the new SDL_Texture API
Sam Lantinga <slouken@libsdl.org>
parents:
2263
diff
changeset
|
58 #define SDL_COPY_MOD 0x00000080 |
e61ad15a205f
More work in progress integrating SDL_Surface and the new SDL_Texture API
Sam Lantinga <slouken@libsdl.org>
parents:
2263
diff
changeset
|
59 #define SDL_COPY_COLORKEY 0x00000100 |
e61ad15a205f
More work in progress integrating SDL_Surface and the new SDL_Texture API
Sam Lantinga <slouken@libsdl.org>
parents:
2263
diff
changeset
|
60 #define SDL_COPY_NEAREST 0x00000200 |
e61ad15a205f
More work in progress integrating SDL_Surface and the new SDL_Texture API
Sam Lantinga <slouken@libsdl.org>
parents:
2263
diff
changeset
|
61 #define SDL_COPY_RLE_DESIRED 0x00001000 |
e61ad15a205f
More work in progress integrating SDL_Surface and the new SDL_Texture API
Sam Lantinga <slouken@libsdl.org>
parents:
2263
diff
changeset
|
62 #define SDL_COPY_RLE_COLORKEY 0x00002000 |
e61ad15a205f
More work in progress integrating SDL_Surface and the new SDL_Texture API
Sam Lantinga <slouken@libsdl.org>
parents:
2263
diff
changeset
|
63 #define SDL_COPY_RLE_ALPHAKEY 0x00004000 |
2853
6258fa7cd300
Fixed picking blit function when RLE fails
Sam Lantinga <slouken@libsdl.org>
parents:
2824
diff
changeset
|
64 #define SDL_COPY_RLE_MASK (SDL_COPY_RLE_DESIRED|SDL_COPY_RLE_COLORKEY|SDL_COPY_RLE_ALPHAKEY) |
2262
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
65 |
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
66 /* SDL blit CPU flags */ |
2266
e61ad15a205f
More work in progress integrating SDL_Surface and the new SDL_Texture API
Sam Lantinga <slouken@libsdl.org>
parents:
2263
diff
changeset
|
67 #define SDL_CPU_ANY 0x00000000 |
e61ad15a205f
More work in progress integrating SDL_Surface and the new SDL_Texture API
Sam Lantinga <slouken@libsdl.org>
parents:
2263
diff
changeset
|
68 #define SDL_CPU_MMX 0x00000001 |
e61ad15a205f
More work in progress integrating SDL_Surface and the new SDL_Texture API
Sam Lantinga <slouken@libsdl.org>
parents:
2263
diff
changeset
|
69 #define SDL_CPU_3DNOW 0x00000002 |
e61ad15a205f
More work in progress integrating SDL_Surface and the new SDL_Texture API
Sam Lantinga <slouken@libsdl.org>
parents:
2263
diff
changeset
|
70 #define SDL_CPU_SSE 0x00000004 |
e61ad15a205f
More work in progress integrating SDL_Surface and the new SDL_Texture API
Sam Lantinga <slouken@libsdl.org>
parents:
2263
diff
changeset
|
71 #define SDL_CPU_SSE2 0x00000008 |
e61ad15a205f
More work in progress integrating SDL_Surface and the new SDL_Texture API
Sam Lantinga <slouken@libsdl.org>
parents:
2263
diff
changeset
|
72 #define SDL_CPU_ALTIVEC_PREFETCH 0x00000010 |
e61ad15a205f
More work in progress integrating SDL_Surface and the new SDL_Texture API
Sam Lantinga <slouken@libsdl.org>
parents:
2263
diff
changeset
|
73 #define SDL_CPU_ALTIVEC_NOPREFETCH 0x00000020 |
2262
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
74 |
2267
c785543d1843
Okay, still some bugs, but everything builds again...
Sam Lantinga <slouken@libsdl.org>
parents:
2266
diff
changeset
|
75 typedef struct |
c785543d1843
Okay, still some bugs, but everything builds again...
Sam Lantinga <slouken@libsdl.org>
parents:
2266
diff
changeset
|
76 { |
2262
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
77 Uint8 *src; |
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
78 int src_w, src_h; |
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
79 int src_pitch; |
2267
c785543d1843
Okay, still some bugs, but everything builds again...
Sam Lantinga <slouken@libsdl.org>
parents:
2266
diff
changeset
|
80 int src_skip; |
2262
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
81 Uint8 *dst; |
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
82 int dst_w, dst_h; |
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
83 int dst_pitch; |
2267
c785543d1843
Okay, still some bugs, but everything builds again...
Sam Lantinga <slouken@libsdl.org>
parents:
2266
diff
changeset
|
84 int dst_skip; |
2262
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
85 SDL_PixelFormat *src_fmt; |
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
86 SDL_PixelFormat *dst_fmt; |
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
|
87 Uint8 *table; |
2262
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
88 int flags; |
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
89 Uint32 colorkey; |
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
90 Uint8 r, g, b, a; |
0 | 91 } SDL_BlitInfo; |
92 | |
2267
c785543d1843
Okay, still some bugs, but everything builds again...
Sam Lantinga <slouken@libsdl.org>
parents:
2266
diff
changeset
|
93 typedef void (SDLCALL * SDL_BlitFunc) (SDL_BlitInfo * info); |
2262
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
94 |
2267
c785543d1843
Okay, still some bugs, but everything builds again...
Sam Lantinga <slouken@libsdl.org>
parents:
2266
diff
changeset
|
95 typedef struct |
c785543d1843
Okay, still some bugs, but everything builds again...
Sam Lantinga <slouken@libsdl.org>
parents:
2266
diff
changeset
|
96 { |
2262
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
97 Uint32 src_format; |
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
98 Uint32 dst_format; |
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
99 int flags; |
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
100 int cpu; |
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
101 SDL_BlitFunc func; |
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
102 } SDL_BlitFuncEntry; |
0 | 103 |
104 /* Blit mapping definition */ | |
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
|
105 typedef struct SDL_BlitMap |
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
|
106 { |
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
|
107 SDL_Surface *dst; |
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
|
108 int identity; |
2257
340942cfda48
Moved the colorkey and per-surface alpha into the blit info,
Sam Lantinga <slouken@libsdl.org>
parents:
2251
diff
changeset
|
109 SDL_blit blit; |
340942cfda48
Moved the colorkey and per-surface alpha into the blit info,
Sam Lantinga <slouken@libsdl.org>
parents:
2251
diff
changeset
|
110 void *data; |
2262
bee005ace1bf
Work in progress: merging new texture features into SDL blit system
Sam Lantinga <slouken@libsdl.org>
parents:
2261
diff
changeset
|
111 SDL_BlitInfo info; |
0 | 112 |
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
|
113 /* the version count matches the destination; mismatch indicates |
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
|
114 an invalid mapping */ |
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
|
115 unsigned int format_version; |
0 | 116 } SDL_BlitMap; |
117 | |
118 /* Functions found in SDL_blit.c */ | |
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
|
119 extern int SDL_CalculateBlit(SDL_Surface * surface); |
0 | 120 |
2267
c785543d1843
Okay, still some bugs, but everything builds again...
Sam Lantinga <slouken@libsdl.org>
parents:
2266
diff
changeset
|
121 /* Functions found in SDL_blit_*.c */ |
c785543d1843
Okay, still some bugs, but everything builds again...
Sam Lantinga <slouken@libsdl.org>
parents:
2266
diff
changeset
|
122 extern SDL_BlitFunc SDL_CalculateBlit0(SDL_Surface * surface); |
c785543d1843
Okay, still some bugs, but everything builds again...
Sam Lantinga <slouken@libsdl.org>
parents:
2266
diff
changeset
|
123 extern SDL_BlitFunc SDL_CalculateBlit1(SDL_Surface * surface); |
c785543d1843
Okay, still some bugs, but everything builds again...
Sam Lantinga <slouken@libsdl.org>
parents:
2266
diff
changeset
|
124 extern SDL_BlitFunc SDL_CalculateBlitN(SDL_Surface * surface); |
c785543d1843
Okay, still some bugs, but everything builds again...
Sam Lantinga <slouken@libsdl.org>
parents:
2266
diff
changeset
|
125 extern SDL_BlitFunc SDL_CalculateBlitA(SDL_Surface * surface); |
2263
900c35d8e8fd
More work in progress, still doesn't compile...
Sam Lantinga <slouken@libsdl.org>
parents:
2262
diff
changeset
|
126 |
0 | 127 /* |
128 * Useful macros for blitting routines | |
129 */ | |
130 | |
2249
5a58b57b6724
Added SSE and MMX optimization for SDL_FillRect()
Sam Lantinga <slouken@libsdl.org>
parents:
2247
diff
changeset
|
131 #if defined(__GNUC__) |
5a58b57b6724
Added SSE and MMX optimization for SDL_FillRect()
Sam Lantinga <slouken@libsdl.org>
parents:
2247
diff
changeset
|
132 #define DECLARE_ALIGNED(t,v,a) t __attribute__((aligned(a))) v |
5a58b57b6724
Added SSE and MMX optimization for SDL_FillRect()
Sam Lantinga <slouken@libsdl.org>
parents:
2247
diff
changeset
|
133 #elif defined(_MSC_VER) |
2251
292bee385630
SSE and MMX intrinsics work with Visual Studio now...
Sam Lantinga <slouken@libsdl.org>
parents:
2250
diff
changeset
|
134 #define DECLARE_ALIGNED(t,v,a) __declspec(align(a)) t v |
2249
5a58b57b6724
Added SSE and MMX optimization for SDL_FillRect()
Sam Lantinga <slouken@libsdl.org>
parents:
2247
diff
changeset
|
135 #else |
5a58b57b6724
Added SSE and MMX optimization for SDL_FillRect()
Sam Lantinga <slouken@libsdl.org>
parents:
2247
diff
changeset
|
136 #define DECLARE_ALIGNED(t,v,a) t v |
5a58b57b6724
Added SSE and MMX optimization for SDL_FillRect()
Sam Lantinga <slouken@libsdl.org>
parents:
2247
diff
changeset
|
137 #endif |
5a58b57b6724
Added SSE and MMX optimization for SDL_FillRect()
Sam Lantinga <slouken@libsdl.org>
parents:
2247
diff
changeset
|
138 |
0 | 139 #define FORMAT_EQUAL(A, B) \ |
140 ((A)->BitsPerPixel == (B)->BitsPerPixel \ | |
141 && ((A)->Rmask == (B)->Rmask) && ((A)->Amask == (B)->Amask)) | |
142 | |
143 /* Load pixel of the specified format from a buffer and get its R-G-B values */ | |
144 /* FIXME: rescale values to 0..255 here? */ | |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
145 #define RGB_FROM_PIXEL(Pixel, fmt, r, g, b) \ |
0 | 146 { \ |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
147 r = (((Pixel&fmt->Rmask)>>fmt->Rshift)<<fmt->Rloss); \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
148 g = (((Pixel&fmt->Gmask)>>fmt->Gshift)<<fmt->Gloss); \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
149 b = (((Pixel&fmt->Bmask)>>fmt->Bshift)<<fmt->Bloss); \ |
0 | 150 } |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
151 #define RGB_FROM_RGB565(Pixel, r, g, b) \ |
0 | 152 { \ |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
153 r = (((Pixel&0xF800)>>11)<<3); \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
154 g = (((Pixel&0x07E0)>>5)<<2); \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
155 b = ((Pixel&0x001F)<<3); \ |
0 | 156 } |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
157 #define RGB_FROM_RGB555(Pixel, r, g, b) \ |
0 | 158 { \ |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
159 r = (((Pixel&0x7C00)>>10)<<3); \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
160 g = (((Pixel&0x03E0)>>5)<<3); \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
161 b = ((Pixel&0x001F)<<3); \ |
0 | 162 } |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
163 #define RGB_FROM_RGB888(Pixel, r, g, b) \ |
0 | 164 { \ |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
165 r = ((Pixel&0xFF0000)>>16); \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
166 g = ((Pixel&0xFF00)>>8); \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
167 b = (Pixel&0xFF); \ |
0 | 168 } |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
169 #define RETRIEVE_RGB_PIXEL(buf, bpp, Pixel) \ |
0 | 170 do { \ |
171 switch (bpp) { \ | |
172 case 2: \ | |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
173 Pixel = *((Uint16 *)(buf)); \ |
0 | 174 break; \ |
175 \ | |
176 case 3: { \ | |
177 Uint8 *B = (Uint8 *)(buf); \ | |
2824
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
178 if (SDL_BYTEORDER == SDL_LIL_ENDIAN) { \ |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
179 Pixel = B[0] + (B[1] << 8) + (B[2] << 16); \ |
0 | 180 } else { \ |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
181 Pixel = (B[0] << 16) + (B[1] << 8) + B[2]; \ |
0 | 182 } \ |
183 } \ | |
184 break; \ | |
185 \ | |
186 case 4: \ | |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
187 Pixel = *((Uint32 *)(buf)); \ |
0 | 188 break; \ |
189 \ | |
190 default: \ | |
2824
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
191 Pixel; /* stop gcc complaints */ \ |
0 | 192 break; \ |
193 } \ | |
2824
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
194 } while (0) |
0 | 195 |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
196 #define DISEMBLE_RGB(buf, bpp, fmt, Pixel, r, g, b) \ |
0 | 197 do { \ |
198 switch (bpp) { \ | |
199 case 2: \ | |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
200 Pixel = *((Uint16 *)(buf)); \ |
2824
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
201 RGB_FROM_PIXEL(Pixel, fmt, r, g, b); \ |
0 | 202 break; \ |
203 \ | |
2824
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
204 case 3: { \ |
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
205 if (SDL_BYTEORDER == SDL_LIL_ENDIAN) { \ |
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
206 r = *((buf)+fmt->Rshift/8); \ |
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
207 g = *((buf)+fmt->Gshift/8); \ |
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
208 b = *((buf)+fmt->Bshift/8); \ |
0 | 209 } else { \ |
2824
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
210 r = *((buf)+2-fmt->Rshift/8); \ |
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
211 g = *((buf)+2-fmt->Gshift/8); \ |
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
212 b = *((buf)+2-fmt->Bshift/8); \ |
0 | 213 } \ |
214 } \ | |
215 break; \ | |
216 \ | |
217 case 4: \ | |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
218 Pixel = *((Uint32 *)(buf)); \ |
2824
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
219 RGB_FROM_PIXEL(Pixel, fmt, r, g, b); \ |
0 | 220 break; \ |
221 \ | |
2824
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
222 default: \ |
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
223 Pixel; /* stop gcc complaints */ \ |
0 | 224 break; \ |
225 } \ | |
2824
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
226 } while (0) |
0 | 227 |
228 /* Assemble R-G-B values into a specified pixel format and store them */ | |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
229 #define PIXEL_FROM_RGB(Pixel, fmt, r, g, b) \ |
0 | 230 { \ |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
231 Pixel = ((r>>fmt->Rloss)<<fmt->Rshift)| \ |
0 | 232 ((g>>fmt->Gloss)<<fmt->Gshift)| \ |
233 ((b>>fmt->Bloss)<<fmt->Bshift); \ | |
234 } | |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
235 #define RGB565_FROM_RGB(Pixel, r, g, b) \ |
0 | 236 { \ |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
237 Pixel = ((r>>3)<<11)|((g>>2)<<5)|(b>>3); \ |
0 | 238 } |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
239 #define RGB555_FROM_RGB(Pixel, r, g, b) \ |
0 | 240 { \ |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
241 Pixel = ((r>>3)<<10)|((g>>3)<<5)|(b>>3); \ |
0 | 242 } |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
243 #define RGB888_FROM_RGB(Pixel, r, g, b) \ |
0 | 244 { \ |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
245 Pixel = (r<<16)|(g<<8)|b; \ |
0 | 246 } |
2899
a0c837a16e4c
Added ARGB optimized case for Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
2898
diff
changeset
|
247 #define ARGB8888_FROM_RGBA(Pixel, r, g, b, a) \ |
a0c837a16e4c
Added ARGB optimized case for Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
2898
diff
changeset
|
248 { \ |
a0c837a16e4c
Added ARGB optimized case for Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
2898
diff
changeset
|
249 Pixel = (a<<24)|(r<<16)|(g<<8)|b; \ |
a0c837a16e4c
Added ARGB optimized case for Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
2898
diff
changeset
|
250 } |
3054
8d93bfecb9dc
Fixed alpha blending textures with the GDI renderer
Sam Lantinga <slouken@libsdl.org>
parents:
3035
diff
changeset
|
251 #define RGBA8888_FROM_RGBA(Pixel, r, g, b, a) \ |
8d93bfecb9dc
Fixed alpha blending textures with the GDI renderer
Sam Lantinga <slouken@libsdl.org>
parents:
3035
diff
changeset
|
252 { \ |
8d93bfecb9dc
Fixed alpha blending textures with the GDI renderer
Sam Lantinga <slouken@libsdl.org>
parents:
3035
diff
changeset
|
253 Pixel = (r<<24)|(g<<16)|(b<<8)|a; \ |
8d93bfecb9dc
Fixed alpha blending textures with the GDI renderer
Sam Lantinga <slouken@libsdl.org>
parents:
3035
diff
changeset
|
254 } |
8d93bfecb9dc
Fixed alpha blending textures with the GDI renderer
Sam Lantinga <slouken@libsdl.org>
parents:
3035
diff
changeset
|
255 #define ABGR8888_FROM_RGBA(Pixel, r, g, b, a) \ |
8d93bfecb9dc
Fixed alpha blending textures with the GDI renderer
Sam Lantinga <slouken@libsdl.org>
parents:
3035
diff
changeset
|
256 { \ |
8d93bfecb9dc
Fixed alpha blending textures with the GDI renderer
Sam Lantinga <slouken@libsdl.org>
parents:
3035
diff
changeset
|
257 Pixel = (a<<24)|(b<<16)|(g<<8)|r; \ |
8d93bfecb9dc
Fixed alpha blending textures with the GDI renderer
Sam Lantinga <slouken@libsdl.org>
parents:
3035
diff
changeset
|
258 } |
8d93bfecb9dc
Fixed alpha blending textures with the GDI renderer
Sam Lantinga <slouken@libsdl.org>
parents:
3035
diff
changeset
|
259 #define BGRA8888_FROM_RGBA(Pixel, r, g, b, a) \ |
8d93bfecb9dc
Fixed alpha blending textures with the GDI renderer
Sam Lantinga <slouken@libsdl.org>
parents:
3035
diff
changeset
|
260 { \ |
8d93bfecb9dc
Fixed alpha blending textures with the GDI renderer
Sam Lantinga <slouken@libsdl.org>
parents:
3035
diff
changeset
|
261 Pixel = (b<<24)|(g<<16)|(r<<8)|a; \ |
8d93bfecb9dc
Fixed alpha blending textures with the GDI renderer
Sam Lantinga <slouken@libsdl.org>
parents:
3035
diff
changeset
|
262 } |
0 | 263 #define ASSEMBLE_RGB(buf, bpp, fmt, r, g, b) \ |
264 { \ | |
265 switch (bpp) { \ | |
266 case 2: { \ | |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
267 Uint16 Pixel; \ |
0 | 268 \ |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
269 PIXEL_FROM_RGB(Pixel, fmt, r, g, b); \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
270 *((Uint16 *)(buf)) = Pixel; \ |
0 | 271 } \ |
272 break; \ | |
273 \ | |
274 case 3: { \ | |
2824
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
275 if (SDL_BYTEORDER == SDL_LIL_ENDIAN) { \ |
0 | 276 *((buf)+fmt->Rshift/8) = r; \ |
277 *((buf)+fmt->Gshift/8) = g; \ | |
278 *((buf)+fmt->Bshift/8) = b; \ | |
279 } else { \ | |
280 *((buf)+2-fmt->Rshift/8) = r; \ | |
281 *((buf)+2-fmt->Gshift/8) = g; \ | |
282 *((buf)+2-fmt->Bshift/8) = b; \ | |
283 } \ | |
284 } \ | |
285 break; \ | |
286 \ | |
287 case 4: { \ | |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
288 Uint32 Pixel; \ |
0 | 289 \ |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
290 PIXEL_FROM_RGB(Pixel, fmt, r, g, b); \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
291 *((Uint32 *)(buf)) = Pixel; \ |
0 | 292 } \ |
293 break; \ | |
294 } \ | |
295 } | |
296 #define ASSEMBLE_RGB_AMASK(buf, bpp, fmt, r, g, b, Amask) \ | |
297 { \ | |
298 switch (bpp) { \ | |
299 case 2: { \ | |
300 Uint16 *bufp; \ | |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
301 Uint16 Pixel; \ |
0 | 302 \ |
303 bufp = (Uint16 *)buf; \ | |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
304 PIXEL_FROM_RGB(Pixel, fmt, r, g, b); \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
305 *bufp = Pixel | (*bufp & Amask); \ |
0 | 306 } \ |
307 break; \ | |
308 \ | |
309 case 3: { \ | |
2824
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
310 if (SDL_BYTEORDER == SDL_LIL_ENDIAN) { \ |
0 | 311 *((buf)+fmt->Rshift/8) = r; \ |
312 *((buf)+fmt->Gshift/8) = g; \ | |
313 *((buf)+fmt->Bshift/8) = b; \ | |
314 } else { \ | |
315 *((buf)+2-fmt->Rshift/8) = r; \ | |
316 *((buf)+2-fmt->Gshift/8) = g; \ | |
317 *((buf)+2-fmt->Bshift/8) = b; \ | |
318 } \ | |
319 } \ | |
320 break; \ | |
321 \ | |
322 case 4: { \ | |
323 Uint32 *bufp; \ | |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
324 Uint32 Pixel; \ |
0 | 325 \ |
326 bufp = (Uint32 *)buf; \ | |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
327 PIXEL_FROM_RGB(Pixel, fmt, r, g, b); \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
328 *bufp = Pixel | (*bufp & Amask); \ |
0 | 329 } \ |
330 break; \ | |
331 } \ | |
332 } | |
333 | |
334 /* FIXME: Should we rescale alpha into 0..255 here? */ | |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
335 #define RGBA_FROM_PIXEL(Pixel, fmt, r, g, b, a) \ |
0 | 336 { \ |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
337 r = ((Pixel&fmt->Rmask)>>fmt->Rshift)<<fmt->Rloss; \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
338 g = ((Pixel&fmt->Gmask)>>fmt->Gshift)<<fmt->Gloss; \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
339 b = ((Pixel&fmt->Bmask)>>fmt->Bshift)<<fmt->Bloss; \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
340 a = ((Pixel&fmt->Amask)>>fmt->Ashift)<<fmt->Aloss; \ |
0 | 341 } |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
342 #define RGBA_FROM_8888(Pixel, fmt, r, g, b, a) \ |
0 | 343 { \ |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
344 r = (Pixel&fmt->Rmask)>>fmt->Rshift; \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
345 g = (Pixel&fmt->Gmask)>>fmt->Gshift; \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
346 b = (Pixel&fmt->Bmask)>>fmt->Bshift; \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
347 a = (Pixel&fmt->Amask)>>fmt->Ashift; \ |
0 | 348 } |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
349 #define RGBA_FROM_RGBA8888(Pixel, r, g, b, a) \ |
0 | 350 { \ |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
351 r = (Pixel>>24); \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
352 g = ((Pixel>>16)&0xFF); \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
353 b = ((Pixel>>8)&0xFF); \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
354 a = (Pixel&0xFF); \ |
0 | 355 } |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
356 #define RGBA_FROM_ARGB8888(Pixel, r, g, b, a) \ |
0 | 357 { \ |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
358 r = ((Pixel>>16)&0xFF); \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
359 g = ((Pixel>>8)&0xFF); \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
360 b = (Pixel&0xFF); \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
361 a = (Pixel>>24); \ |
0 | 362 } |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
363 #define RGBA_FROM_ABGR8888(Pixel, r, g, b, a) \ |
0 | 364 { \ |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
365 r = (Pixel&0xFF); \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
366 g = ((Pixel>>8)&0xFF); \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
367 b = ((Pixel>>16)&0xFF); \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
368 a = (Pixel>>24); \ |
0 | 369 } |
3054
8d93bfecb9dc
Fixed alpha blending textures with the GDI renderer
Sam Lantinga <slouken@libsdl.org>
parents:
3035
diff
changeset
|
370 #define RGBA_FROM_BGRA8888(Pixel, r, g, b, a) \ |
8d93bfecb9dc
Fixed alpha blending textures with the GDI renderer
Sam Lantinga <slouken@libsdl.org>
parents:
3035
diff
changeset
|
371 { \ |
8d93bfecb9dc
Fixed alpha blending textures with the GDI renderer
Sam Lantinga <slouken@libsdl.org>
parents:
3035
diff
changeset
|
372 r = ((Pixel>>8)&0xFF); \ |
8d93bfecb9dc
Fixed alpha blending textures with the GDI renderer
Sam Lantinga <slouken@libsdl.org>
parents:
3035
diff
changeset
|
373 g = ((Pixel>>16)&0xFF); \ |
8d93bfecb9dc
Fixed alpha blending textures with the GDI renderer
Sam Lantinga <slouken@libsdl.org>
parents:
3035
diff
changeset
|
374 b = (Pixel>>24); \ |
8d93bfecb9dc
Fixed alpha blending textures with the GDI renderer
Sam Lantinga <slouken@libsdl.org>
parents:
3035
diff
changeset
|
375 a = (Pixel&0xFF); \ |
8d93bfecb9dc
Fixed alpha blending textures with the GDI renderer
Sam Lantinga <slouken@libsdl.org>
parents:
3035
diff
changeset
|
376 } |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
377 #define DISEMBLE_RGBA(buf, bpp, fmt, Pixel, r, g, b, a) \ |
0 | 378 do { \ |
379 switch (bpp) { \ | |
380 case 2: \ | |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
381 Pixel = *((Uint16 *)(buf)); \ |
2824
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
382 RGBA_FROM_PIXEL(Pixel, fmt, r, g, b, a); \ |
0 | 383 break; \ |
384 \ | |
2824
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
385 case 3: { \ |
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
386 if (SDL_BYTEORDER == SDL_LIL_ENDIAN) { \ |
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
387 r = *((buf)+fmt->Rshift/8); \ |
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
388 g = *((buf)+fmt->Gshift/8); \ |
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
389 b = *((buf)+fmt->Bshift/8); \ |
0 | 390 } else { \ |
2824
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
391 r = *((buf)+2-fmt->Rshift/8); \ |
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
392 g = *((buf)+2-fmt->Gshift/8); \ |
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
393 b = *((buf)+2-fmt->Bshift/8); \ |
0 | 394 } \ |
2824
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
395 a = 0xFF; \ |
0 | 396 } \ |
397 break; \ | |
398 \ | |
399 case 4: \ | |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
400 Pixel = *((Uint32 *)(buf)); \ |
2824
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
401 RGBA_FROM_PIXEL(Pixel, fmt, r, g, b, a); \ |
0 | 402 break; \ |
403 \ | |
404 default: \ | |
2824
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
405 Pixel; /* stop gcc complaints */ \ |
0 | 406 break; \ |
407 } \ | |
2824
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
408 } while (0) |
0 | 409 |
410 /* FIXME: this isn't correct, especially for Alpha (maximum != 255) */ | |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
411 #define PIXEL_FROM_RGBA(Pixel, fmt, r, g, b, a) \ |
0 | 412 { \ |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
413 Pixel = ((r>>fmt->Rloss)<<fmt->Rshift)| \ |
0 | 414 ((g>>fmt->Gloss)<<fmt->Gshift)| \ |
415 ((b>>fmt->Bloss)<<fmt->Bshift)| \ | |
535
917cc5c56176
Fixed alpha blending bug (thanks Glenn!)
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
416 ((a>>fmt->Aloss)<<fmt->Ashift); \ |
0 | 417 } |
418 #define ASSEMBLE_RGBA(buf, bpp, fmt, r, g, b, a) \ | |
419 { \ | |
420 switch (bpp) { \ | |
421 case 2: { \ | |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
422 Uint16 Pixel; \ |
0 | 423 \ |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
424 PIXEL_FROM_RGBA(Pixel, fmt, r, g, b, a); \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
425 *((Uint16 *)(buf)) = Pixel; \ |
0 | 426 } \ |
427 break; \ | |
428 \ | |
2824
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
429 case 3: { \ |
4dba7aa7ea77
Added slow but complete blit fallback
Sam Lantinga <slouken@libsdl.org>
parents:
2267
diff
changeset
|
430 if (SDL_BYTEORDER == SDL_LIL_ENDIAN) { \ |
0 | 431 *((buf)+fmt->Rshift/8) = r; \ |
432 *((buf)+fmt->Gshift/8) = g; \ | |
433 *((buf)+fmt->Bshift/8) = b; \ | |
434 } else { \ | |
435 *((buf)+2-fmt->Rshift/8) = r; \ | |
436 *((buf)+2-fmt->Gshift/8) = g; \ | |
437 *((buf)+2-fmt->Bshift/8) = b; \ | |
438 } \ | |
439 } \ | |
440 break; \ | |
441 \ | |
442 case 4: { \ | |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
443 Uint32 Pixel; \ |
0 | 444 \ |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
445 PIXEL_FROM_RGBA(Pixel, fmt, r, g, b, a); \ |
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
446 *((Uint32 *)(buf)) = Pixel; \ |
0 | 447 } \ |
448 break; \ | |
449 } \ | |
450 } | |
451 | |
1162
2651158f59b8
Enable altivec blitters on PowerPC Linux, and some fixes for recent
Ryan C. Gordon <icculus@icculus.org>
parents:
1047
diff
changeset
|
452 /* Blend the RGB values of two Pixels based on a source alpha value */ |
0 | 453 #define ALPHA_BLEND(sR, sG, sB, A, dR, dG, dB) \ |
454 do { \ | |
3631
76667e288846
Revert r5463: Alpha blend "correctness" patch.
Ryan C. Gordon <icculus@icculus.org>
parents:
3625
diff
changeset
|
455 dR = ((((int)(sR-dR)*(int)A)/255)+dR); \ |
76667e288846
Revert r5463: Alpha blend "correctness" patch.
Ryan C. Gordon <icculus@icculus.org>
parents:
3625
diff
changeset
|
456 dG = ((((int)(sG-dG)*(int)A)/255)+dG); \ |
76667e288846
Revert r5463: Alpha blend "correctness" patch.
Ryan C. Gordon <icculus@icculus.org>
parents:
3625
diff
changeset
|
457 dB = ((((int)(sB-dB)*(int)A)/255)+dB); \ |
1047
ffaaf7ecf685
Altivec-optimized blitters!
Ryan C. Gordon <icculus@icculus.org>
parents:
769
diff
changeset
|
458 } while(0) |
ffaaf7ecf685
Altivec-optimized blitters!
Ryan C. Gordon <icculus@icculus.org>
parents:
769
diff
changeset
|
459 |
ffaaf7ecf685
Altivec-optimized blitters!
Ryan C. Gordon <icculus@icculus.org>
parents:
769
diff
changeset
|
460 |
0 | 461 /* This is a very useful loop for optimizing blitters */ |
553
417f8709e648
There's a bug in the VC7 optimizer relating to the duff loop optimization
Sam Lantinga <slouken@libsdl.org>
parents:
535
diff
changeset
|
462 #if defined(_MSC_VER) && (_MSC_VER == 1300) |
417f8709e648
There's a bug in the VC7 optimizer relating to the duff loop optimization
Sam Lantinga <slouken@libsdl.org>
parents:
535
diff
changeset
|
463 /* There's a bug in the Visual C++ 7 optimizer when compiling this code */ |
417f8709e648
There's a bug in the VC7 optimizer relating to the duff loop optimization
Sam Lantinga <slouken@libsdl.org>
parents:
535
diff
changeset
|
464 #else |
0 | 465 #define USE_DUFFS_LOOP |
553
417f8709e648
There's a bug in the VC7 optimizer relating to the duff loop optimization
Sam Lantinga <slouken@libsdl.org>
parents:
535
diff
changeset
|
466 #endif |
0 | 467 #ifdef USE_DUFFS_LOOP |
468 | |
469 /* 8-times unrolled loop */ | |
470 #define DUFFS_LOOP8(pixel_copy_increment, width) \ | |
471 { int n = (width+7)/8; \ | |
91
e85e03f195b4
From: "Markus F.X.J. Oberhumer"
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
472 switch (width & 7) { \ |
0 | 473 case 0: do { pixel_copy_increment; \ |
474 case 7: pixel_copy_increment; \ | |
475 case 6: pixel_copy_increment; \ | |
476 case 5: pixel_copy_increment; \ | |
477 case 4: pixel_copy_increment; \ | |
478 case 3: pixel_copy_increment; \ | |
479 case 2: pixel_copy_increment; \ | |
480 case 1: pixel_copy_increment; \ | |
481 } while ( --n > 0 ); \ | |
482 } \ | |
483 } | |
484 | |
485 /* 4-times unrolled loop */ | |
486 #define DUFFS_LOOP4(pixel_copy_increment, width) \ | |
487 { int n = (width+3)/4; \ | |
91
e85e03f195b4
From: "Markus F.X.J. Oberhumer"
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
488 switch (width & 3) { \ |
0 | 489 case 0: do { pixel_copy_increment; \ |
490 case 3: pixel_copy_increment; \ | |
491 case 2: pixel_copy_increment; \ | |
492 case 1: pixel_copy_increment; \ | |
3035
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
493 } while (--n > 0); \ |
689
5bb080d35049
Date: Tue, 19 Aug 2003 17:57:00 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
553
diff
changeset
|
494 } \ |
5bb080d35049
Date: Tue, 19 Aug 2003 17:57:00 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
553
diff
changeset
|
495 } |
5bb080d35049
Date: Tue, 19 Aug 2003 17:57:00 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
553
diff
changeset
|
496 |
0 | 497 /* Use the 8-times version of the loop by default */ |
498 #define DUFFS_LOOP(pixel_copy_increment, width) \ | |
499 DUFFS_LOOP8(pixel_copy_increment, width) | |
500 | |
3035
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
501 /* Special version of Duff's device for even more optimization */ |
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
502 #define DUFFS_LOOP_124(pixel_copy_increment1, \ |
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
503 pixel_copy_increment2, \ |
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
504 pixel_copy_increment4, width) \ |
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
505 { int n = width; \ |
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
506 if (n & 1) { \ |
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
507 pixel_copy_increment1; n -= 1; \ |
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
508 } \ |
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
509 if (n & 2) { \ |
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
510 pixel_copy_increment2; n -= 2; \ |
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
511 } \ |
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
512 if (n) { \ |
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
513 n = (n+7)/ 8; \ |
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
514 switch (n & 4) { \ |
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
515 case 0: do { pixel_copy_increment4; \ |
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
516 case 4: pixel_copy_increment4; \ |
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
517 } while (--n > 0); \ |
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
518 } \ |
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
519 } \ |
689
5bb080d35049
Date: Tue, 19 Aug 2003 17:57:00 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
553
diff
changeset
|
520 } |
5bb080d35049
Date: Tue, 19 Aug 2003 17:57:00 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
553
diff
changeset
|
521 |
3035
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
522 #else |
689
5bb080d35049
Date: Tue, 19 Aug 2003 17:57:00 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
553
diff
changeset
|
523 |
5bb080d35049
Date: Tue, 19 Aug 2003 17:57:00 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
553
diff
changeset
|
524 /* Don't use Duff's device to unroll loops */ |
0 | 525 #define DUFFS_LOOP(pixel_copy_increment, width) \ |
526 { int n; \ | |
527 for ( n=width; n > 0; --n ) { \ | |
528 pixel_copy_increment; \ | |
529 } \ | |
530 } | |
531 #define DUFFS_LOOP8(pixel_copy_increment, width) \ | |
532 DUFFS_LOOP(pixel_copy_increment, width) | |
533 #define DUFFS_LOOP4(pixel_copy_increment, width) \ | |
534 DUFFS_LOOP(pixel_copy_increment, width) | |
3035
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
535 #define DUFFS_LOOP_124(pixel_copy_increment1, \ |
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
536 pixel_copy_increment2, \ |
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
537 pixel_copy_increment4, width) \ |
ff602fdfdedc
Removed Rafal Bursig's MMX RLE code, at his request.
Sam Lantinga <slouken@libsdl.org>
parents:
2899
diff
changeset
|
538 DUFFS_LOOP(pixel_copy_increment1, width) |
0 | 539 |
540 #endif /* USE_DUFFS_LOOP */ | |
541 | |
542 /* Prevent Visual C++ 6.0 from printing out stupid warnings */ | |
543 #if defined(_MSC_VER) && (_MSC_VER >= 600) | |
544 #pragma warning(disable: 4550) | |
545 #endif | |
546 | |
547 #endif /* _SDL_blit_h */ | |
2898
e40448bc7727
Share code between fill and line drawing
Sam Lantinga <slouken@libsdl.org>
parents:
2859
diff
changeset
|
548 |
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
|
549 /* vi: set ts=4 sw=4 expandtab: */ |