Altivec-optimized blitters!
Vast majority of this work is compliments of Bob Ippolito. http://www.devolution.com/pipermail/sdl/2005-February/067466.html and many other posts. --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%401048
This commit is contained in:
parent
20dbe0d931
commit
48c21b291e
4 changed files with 1501 additions and 26 deletions
|
@ -374,6 +374,20 @@ do { \
|
|||
dB = (((sB-dB)*(A))>>8)+dB; \
|
||||
} while(0)
|
||||
|
||||
/* Blend the RGB values of two pixels based on a source alpha value */
|
||||
#define ACCURATE_ALPHA_BLEND(sR, sG, sB, sA, dR, dG, dB) \
|
||||
do { \
|
||||
unsigned tR, tG, tB, tA; \
|
||||
tA = 255 - sA; \
|
||||
tR = 1 + (sR * sA) + (dR * tA); \
|
||||
dR = (tR + (tR >> 8)) >> 8; \
|
||||
tG = 1 + (sG * sA) + (dG * tA); \
|
||||
dG = (tG + (tG >> 8)) >> 8; \
|
||||
tB = 1 + (sB * sA) + (dB * tA); \
|
||||
dB = (tB + (tB >> 8)) >> 8; \
|
||||
} while(0)
|
||||
|
||||
|
||||
/* This is a very useful loop for optimizing blitters */
|
||||
#if defined(_MSC_VER) && (_MSC_VER == 1300)
|
||||
/* There's a bug in the Visual C++ 7 optimizer when compiling this code */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue