Mercurial > sdl-ios-xcode
comparison src/video/SDL_blit.h @ 2249:5a58b57b6724
Added SSE and MMX optimization for SDL_FillRect()
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Thu, 16 Aug 2007 05:56:24 +0000 |
parents | 93994f65c74c |
children | e1d228456537 |
comparison
equal
deleted
inserted
replaced
2248:5cd2a2293cf0 | 2249:5a58b57b6724 |
---|---|
21 */ | 21 */ |
22 #include "SDL_config.h" | 22 #include "SDL_config.h" |
23 | 23 |
24 #ifndef _SDL_blit_h | 24 #ifndef _SDL_blit_h |
25 #define _SDL_blit_h | 25 #define _SDL_blit_h |
26 | |
27 #ifdef __MMX__ | |
28 #include <mmintrin.h> | |
29 #endif | |
30 #ifdef __SSE__ | |
31 #include <xmmintrin.h> | |
32 #endif | |
26 | 33 |
27 #include "SDL_endian.h" | 34 #include "SDL_endian.h" |
28 | 35 |
29 /* The structure passed to the low level blit functions */ | 36 /* The structure passed to the low level blit functions */ |
30 typedef struct | 37 typedef struct |
90 | 97 |
91 /* | 98 /* |
92 * Useful macros for blitting routines | 99 * Useful macros for blitting routines |
93 */ | 100 */ |
94 | 101 |
102 #if defined(__GNUC__) | |
103 #define DECLARE_ALIGNED(t,v,a) t __attribute__((aligned(a))) v | |
104 #elif defined(_MSC_VER) | |
105 #define DECLARE_ALIGNED(t,v,a) t __declspec(align(a)) v | |
106 #else | |
107 #define DECLARE_ALIGNED(t,v,a) t v | |
108 #endif | |
109 | |
95 #define FORMAT_EQUAL(A, B) \ | 110 #define FORMAT_EQUAL(A, B) \ |
96 ((A)->BitsPerPixel == (B)->BitsPerPixel \ | 111 ((A)->BitsPerPixel == (B)->BitsPerPixel \ |
97 && ((A)->Rmask == (B)->Rmask) && ((A)->Amask == (B)->Amask)) | 112 && ((A)->Rmask == (B)->Rmask) && ((A)->Amask == (B)->Amask)) |
98 | 113 |
99 /* Load pixel of the specified format from a buffer and get its R-G-B values */ | 114 /* Load pixel of the specified format from a buffer and get its R-G-B values */ |