Mercurial > sdl-ios-xcode
comparison src/video/SDL_blit_A.c @ 2261:c20476d7d7b3
Enabled 3DNow! intrinsic support
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Fri, 17 Aug 2007 03:22:03 +0000 |
parents | 202ddfd1cfb1 |
children | bee005ace1bf |
comparison
equal
deleted
inserted
replaced
2260:202ddfd1cfb1 | 2261:c20476d7d7b3 |
---|---|
1367 srcp += srcskip; | 1367 srcp += srcskip; |
1368 dstp += dstskip; | 1368 dstp += dstskip; |
1369 } | 1369 } |
1370 } | 1370 } |
1371 | 1371 |
1372 #ifdef __MMX__ | 1372 #ifdef __3dNOW__ |
1373 /* fast (as in MMX with prefetch) ARGB888->(A)RGB888 blending with pixel alpha */ | 1373 /* fast (as in MMX with prefetch) ARGB888->(A)RGB888 blending with pixel alpha */ |
1374 static void | 1374 static void |
1375 BlitRGBtoRGBPixelAlphaMMX3DNOW(SDL_BlitInfo * info) | 1375 BlitRGBtoRGBPixelAlphaMMX3DNOW(SDL_BlitInfo * info) |
1376 { | 1376 { |
1377 int width = info->d_width; | 1377 int width = info->d_width; |
2248 | 2248 |
2249 case 4: | 2249 case 4: |
2250 if (sf->Rmask == df->Rmask | 2250 if (sf->Rmask == df->Rmask |
2251 && sf->Gmask == df->Gmask | 2251 && sf->Gmask == df->Gmask |
2252 && sf->Bmask == df->Bmask && sf->BytesPerPixel == 4) { | 2252 && sf->Bmask == df->Bmask && sf->BytesPerPixel == 4) { |
2253 #ifdef __MMX__ | 2253 #if defined(__MMX__) || defined(__3dNOW__) |
2254 if (sf->Rshift % 8 == 0 | 2254 if (sf->Rshift % 8 == 0 |
2255 && sf->Gshift % 8 == 0 | 2255 && sf->Gshift % 8 == 0 |
2256 && sf->Bshift % 8 == 0 | 2256 && sf->Bshift % 8 == 0 |
2257 && sf->Ashift % 8 == 0 && sf->Aloss == 0) { | 2257 && sf->Ashift % 8 == 0 && sf->Aloss == 0) { |
2258 #ifdef __3dNOW__ | |
2258 if (SDL_Has3DNow()) | 2259 if (SDL_Has3DNow()) |
2259 return BlitRGBtoRGBPixelAlphaMMX3DNOW; | 2260 return BlitRGBtoRGBPixelAlphaMMX3DNOW; |
2261 #endif | |
2262 #ifdef __MMX__ | |
2260 if (SDL_HasMMX()) | 2263 if (SDL_HasMMX()) |
2261 return BlitRGBtoRGBPixelAlphaMMX; | 2264 return BlitRGBtoRGBPixelAlphaMMX; |
2265 #endif | |
2262 } | 2266 } |
2263 #endif | 2267 #endif /* __MMX__ || __3dNOW__ */ |
2264 if (sf->Amask == 0xff000000) { | 2268 if (sf->Amask == 0xff000000) { |
2265 #if SDL_ALTIVEC_BLITTERS | 2269 #if SDL_ALTIVEC_BLITTERS |
2266 if (SDL_HasAltiVec()) | 2270 if (SDL_HasAltiVec()) |
2267 return BlitRGBtoRGBPixelAlphaAltivec; | 2271 return BlitRGBtoRGBPixelAlphaAltivec; |
2268 #endif | 2272 #endif |