You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Reported in version: 1.2.15 Reported for operating system, platform: Mac OS X 10.5 (PPC), PowerPC
Comments on the original bug report:
On 2012-02-19 09:38:21 +0000, wrote:
Created attachment 823
SDL_blit_N.patch
There is only one Altivec accelerated blit function (ConvertAltivec32to32_prefetch() or ConvertAltivec32to32_noprefetch(), depending on the CPU used) that is supposed to handle all alpha combinations. This works as follows for every pixel line:
Blit single pixels until an aligned address is reached
Accelerated blit as far as possible
Blit single remaining pixels
Part 2. is set up correctly to handle different combinations of the alpha channels of the participating surfaces. Parts 1. and 3. only do a simple copy of all the pixel's components from souce to destination. But when the source surface has no alpha channel (Amask is 0, e.g. the video surface) the surface's alpha value must be used instead. Otherwise crap (uninitialized data) is being copied to the destiniation's alpha channel.
The attached patch is a quick'n'dirty solution to the problem. A more sophisticated solution might require separate functions for different combinations of the alpha channels of the participating surfaces.
The problem seems not to come up when the width of the destination surface enforces all pixel lines to start at an aligned address. This can easily be accomplished by using a suitable pitch value for all surfaces, but SDL_CreateRGBSurface doesn't make use of this right now.
This bug report was migrated from our old Bugzilla tracker.
These attachments are available in the static archive:
Reported in version: 1.2.15
Reported for operating system, platform: Mac OS X 10.5 (PPC), PowerPC
Comments on the original bug report:
On 2012-02-19 09:38:21 +0000, wrote:
On 2012-02-20 17:57:25 +0000, Sam Lantinga wrote:
The text was updated successfully, but these errors were encountered: