Trying to understand the unsignedness in ALPHA_BLEND_RGBA

After debugging testautomation_surface, I have concluded that SW blending doesn’t work at least for me (big endian AmigaOS platform).

For example, if sR is 0 and dR is 255, we will get -255*sA casted to an unsigned value. Basically results are quite large numbers instead of the expected 0-255 range. Am I missing something here?

Reference: https://hg.libsdl.org/SDL/file/d11daa346140/src/video/SDL_blit.h#l455

I think that was just trying to promote Uint8 to a larger type. Does it
work if you replace (unsigned) with (int)?On Tue, Jan 3, 2017 at 12:44 PM, capehill <juha.niemimaki at gmail.com> wrote:

After debugging testautomation_surface, I have concluded that SW blending
doesn’t work at least for me (big endian AmigaOS platform).

For example, if sR is 0 and dR is 255, we will get -255*sA casted to an
unsigned value. Basically results are quite large numbers instead of the
expected 0-255 range. Am I missing something here?

Reference: https://hg.libsdl.org/SDL/file/d11daa346140/src/video/
SDL_blit.h#l455


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

Yes, replacing unsigned with int makes “testBlit” case work on my platform.

Sam Lantinga wrote:> I think that was just trying to promote Uint8 to a larger type. Does it work if you replace (unsigned) with (int)?

Okay, can you try this?
https://hg.libsdl.org/SDL/rev/6285a56f6729On Wed, Jan 4, 2017 at 11:39 AM, capehill <juha.niemimaki at gmail.com> wrote:

Yes, replacing unsigned with int makes “testBlit” case work on my platform.

Sam Lantinga wrote:

I think that was just trying to promote Uint8 to a larger type. Does it
work if you replace (unsigned) with (int)?


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

Unfortunately it doesn’t work for me. You probably have to cast sA to int, at least that helps here. Perhaps compiler promotes result to unsigned because sA’s type is unsigned? (SDL_blit_A.c)

Sam Lantinga wrote:> Okay, can you try this?https://hg.libsdl.org/SDL/rev/6285a56f6729 (https://hg.libsdl.org/SDL/rev/6285a56f6729)

Can you provide a patch on the bug?On Fri, Jan 6, 2017 at 11:26 AM, capehill <juha.niemimaki at gmail.com> wrote:

Unfortunately it doesn’t work for me. You probably have to cast sA to int,
at least that helps here. Perhaps compiler promotes result to unsigned
because sA’s type is unsigned? (SDL_blit_A.c)

Sam Lantinga wrote:

Okay, can you try this?https://hg.libsdl.org/SDL/rev/6285a56f6729


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

Following patch worked for me: https://sourceforge.net/p/sdl2-amigaos4/code/157/

Sam Lantinga wrote:> Can you provide a patch on the bug?

On Fri, Jan 6, 2017 at 11:26 AM, capehill <@capehill (@capehill)> wrote:

  Unfortunately it doesn't work for me. You probably have to cast sA to int, at least that helps here. Perhaps compiler promotes result to unsigned because sA's type is unsigned? (SDL_blit_A.c)




Sam Lantinga wrote:

Okay, can you try this?https://hg.libsdl.org/SDL/rev/6285a56f6729 (https://hg.libsdl.org/SDL/rev/6285a56f6729)

SDL mailing list
SDL at lists.libsdl.org (SDL at lists.libsdl.org)
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org (http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org)

Okay, I think I got it.

Thanks!On Sat, Jan 7, 2017 at 7:16 AM, capehill <juha.niemimaki at gmail.com> wrote:

Following patch worked for me: https://sourceforge.net/p/
sdl2-amigaos4/code/157/

Sam Lantinga wrote:

Can you provide a patch on the bug?

On Fri, Jan 6, 2017 at 11:26 AM, capehill <> wrote:

Quote:

Unfortunately it doesn’t work for me. You probably have to cast sA to int,
at least that helps here. Perhaps compiler promotes result to unsigned
because sA’s type is unsigned? (SDL_blit_A.c)

Sam Lantinga wrote:

Okay, can you try this?https://hg.libsdl.org/SDL/rev/6285a56f6729


SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org