| Summary: | Blit Alpha surface bug | ||
|---|---|---|---|
| Product: | SDL | Reporter: | Sylvain <sylvain.becker> |
| Component: | video | Assignee: | Sam Lantinga <slouken> |
| Status: | RESOLVED FIXED | QA Contact: | Sam Lantinga <slouken> |
| Severity: | normal | ||
| Priority: | P2 | Keywords: | target-2.0.0 |
| Version: | HG 2.0 | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
| Attachments: | example file | ||
|
Description
Sylvain
2012-11-09 23:32:05 UTC
Created attachment 986 [details]
example file
(Sorry if you get a lot of copies of this email, we're touching dozens of bug reports right now.) Tagging a bunch of bugs as target-2.0.0, Priority 2. This means we're in the final stretch for an official SDL 2.0.0 release! These are the bugs we really want to fix before shipping if humanly possible. That being said, we don't promise to fix them because of this tag, we just want to make sure we don't forget to deal with them before we bless a final 2.0.0 release, and generally be organized about what we're aiming to ship. Hopefully you'll hear more about this bug soon. If you have more information (including "this got fixed at some point, nevermind"), we would love to have you come add more information to the bug report when you have a moment. Thanks! --ryan. Can you try the latest snapshot and see if that gives you the results you expect? http://www.libsdl.org/tmp/SDL-2.0.zip If it doesn't, can you describe the results that you expect and the results you get? Thanks! I believe this is fixed by the alpha blend formula change in this commit: http://hg.libsdl.org/SDL/rev/6ff02ff3cf06 Please reopen the bug if that's not the case. Thanks! Hi, I reopen the issue as it seems not to be fixed with the current latest version of today. in the attached file, I constructed to surface : surf1 and surf2. surf2 is black+alpha, and is blitted several time to surf1. It's done in a *disjoint* way so that surf1 is fully colored by surf2. It appears black diagonals. like if some line pitch was never taken into account. Sylvain Fixed, thanks for the great test case! http://hg.libsdl.org/SDL/rev/5287c82340e3 Also, the reason you needed this: surf2 = SDL_ConvertSurface(surf2, surf2->format, surf2->flags); was because as a side effect it set up the surface for alpha blending. You can add this line instead: SDL_SetSurfaceBlendMode(surf2, SDL_BLENDMODE_BLEND); Cheers! |