mirror of https://github.com/encounter/SDL.git
Fixed bug 3159 - SDL_blit_slow with BLENDING does not work
Fritzor Source Suface is ABGR and Destination Surface is ABGR. We use software blending. In the Switch-Case statement for SDL_COPY_BLEND (Line 126) the alpha-channel is not calculated like in every SDL_blit_auto - function. So if the destination Surface has alpha - channel of zero the resulting surface has zero as well. Add: ?dstA = srcA + ((255 - srcA) * dstA) / 255;? to code and everything is okay.
This commit is contained in:
parent
13dd2ccda8
commit
473051f6bb
|
@ -129,6 +129,7 @@ SDL_Blit_Slow(SDL_BlitInfo * info)
|
||||||
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
dstR = srcR + ((255 - srcA) * dstR) / 255;
|
||||||
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
dstG = srcG + ((255 - srcA) * dstG) / 255;
|
||||||
dstB = srcB + ((255 - srcA) * dstB) / 255;
|
dstB = srcB + ((255 - srcA) * dstB) / 255;
|
||||||
|
dstA = srcA + ((255 - srcA) * dstA) / 255;
|
||||||
break;
|
break;
|
||||||
case SDL_COPY_ADD:
|
case SDL_COPY_ADD:
|
||||||
dstR = srcR + dstR;
|
dstR = srcR + dstR;
|
||||||
|
|
Loading…
Reference in New Issue