src/video/SDL_blit.h
 branch SDL-1.2 changeset 4293 63b54ddd38ea parent 4159 a1b03ba2fcd0 child 4367 2d00ed718720
equal inserted replaced
4292:464126f4c7db 4293:63b54ddd38ea
`   382 }`
`   382 }`
`   383 `
`   383 `
`   384 /* Blend the RGB values of two Pixels based on a source alpha value */`
`   384 /* Blend the RGB values of two Pixels based on a source alpha value */`
`   385 #define ALPHA_BLEND(sR, sG, sB, A, dR, dG, dB)	\`
`   385 #define ALPHA_BLEND(sR, sG, sB, A, dR, dG, dB)	\`
`   386 do {						\`
`   386 do {						\`
`   387 	dR = (((sR-dR)*(A))>>8)+dR;		\`
`   387 	dR = (((sR-dR)*(A)+255)>>8)+dR;		\`
`   388 	dG = (((sG-dG)*(A))>>8)+dG;		\`
`   388 	dG = (((sG-dG)*(A)+255)>>8)+dG;		\`
`   389 	dB = (((sB-dB)*(A))>>8)+dB;		\`
`   389 	dB = (((sB-dB)*(A)+255)>>8)+dB;		\`
`   390 } while(0)`
`       `
`   391 `
`       `
`   392 /* Blend the RGB values of two Pixels based on a source alpha value */`
`       `
`   393 #define ACCURATE_ALPHA_BLEND(sR, sG, sB, sA, dR, dG, dB)	\`
`       `
`   394 do {						\`
`       `
`   395     unsigned tR, tG, tB, tA; \`
`       `
`   396     tA = 255 - sA; \`
`       `
`   397     tR = 1 + (sR * sA) + (dR * tA); \`
`       `
`   398     dR = (tR + (tR >> 8)) >> 8; \`
`       `
`   399     tG = 1 + (sG * sA) + (dG * tA); \`
`       `
`   400     dG = (tG + (tG >> 8)) >> 8; \`
`       `
`   401     tB = 1 + (sB * sA) + (dB * tA); \`
`       `
`   402     dB = (tB + (tB >> 8)) >> 8; \`
`       `
`   403 } while(0)`
`   390 } while(0)`
`   404 `
`   391 `
`   405 `
`   392 `
`   406 /* This is a very useful loop for optimizing blitters */`
`   393 /* This is a very useful loop for optimizing blitters */`
`   407 #if defined(_MSC_VER) && (_MSC_VER == 1300)`
`   394 #if defined(_MSC_VER) && (_MSC_VER == 1300)`