Date: Tue, 12 Aug 2003 14:26:19 +0200 (MEST) From: "Mattias Engdeg?rd" Subject: bug in SDL_GetRGB/GetRGBA
Date: Tue, 12 Aug 2003 14:26:19 +0200 (MEST)
From: "Mattias Engdeg?rd"
Subject: bug in SDL_GetRGB/GetRGBA

There's an embarrassing bug in GetRGB/GetRGBA which apparently has been there
for years. It incorrectly converts colours with < 8 bits/channel.
It came to my attention today in #sdl.

What it does now is (for each channel):

  rv = (pixel & fmt->Rmask) >> fmt->Rshift;
  *r = (rv << fmt->Rloss) + (rv >> (8 - fmt->Rloss));

which is wrong; the last line should be

  *r = (rv << fmt->Rloss) + (rv >> (8 - (fmt->Rloss << 1)));


git-svn-id: 75429ccc2030f235ccf16e6b9b7f8e83d5edd22e@1064 c70aab31-4412-0410-b14c-859654838e24

albertz/sdl,albertz/sdl,albertz/sdl,albertz/sdl