Fixed bug when zooming stamps in video depth other than 32bpp.
This commit is contained in:
parent
e6e2fcfc38
commit
f34d8301ff
2 changed files with 41 additions and 3 deletions
|
|
@ -9,7 +9,7 @@ http://www.tuxpaint.org/
|
||||||
$Id$
|
$Id$
|
||||||
|
|
||||||
|
|
||||||
2008.March.1 (0.9.20)
|
2008.March.4 (0.9.20)
|
||||||
* Localization Updates:
|
* Localization Updates:
|
||||||
---------------------
|
---------------------
|
||||||
* German translation
|
* German translation
|
||||||
|
|
@ -51,6 +51,9 @@ $Id$
|
||||||
from bottom-to-top using the line tool. Fixed.
|
from bottom-to-top using the line tool. Fixed.
|
||||||
Pere Pujal i Carabantes <pere@fornol.no-ip.org>
|
Pere Pujal i Carabantes <pere@fornol.no-ip.org>
|
||||||
|
|
||||||
|
* Fixed bug when zooming stamps in video depth other than 32bpp.
|
||||||
|
|
||||||
|
|
||||||
2008.February.25 (0.9.19)
|
2008.February.25 (0.9.19)
|
||||||
* New Localizations:
|
* New Localizations:
|
||||||
------------------
|
------------------
|
||||||
|
|
|
||||||
|
|
@ -32,9 +32,9 @@
|
||||||
|
|
||||||
/* Color depth for Tux Paint to run in, and store canvases in: */
|
/* Color depth for Tux Paint to run in, and store canvases in: */
|
||||||
|
|
||||||
#if defined(NOKIA_770)
|
//#if defined(NOKIA_770)
|
||||||
# define VIDEO_BPP 15
|
# define VIDEO_BPP 15
|
||||||
#endif
|
//#endif
|
||||||
|
|
||||||
#if defined(OLPC_XO)
|
#if defined(OLPC_XO)
|
||||||
# define VIDEO_BPP 15
|
# define VIDEO_BPP 15
|
||||||
|
|
@ -9314,6 +9314,7 @@ static SDL_Surface *zoom(SDL_Surface * src, int new_w, int new_h)
|
||||||
one_minus_x = 1.0 - fraction_x;
|
one_minus_x = 1.0 - fraction_x;
|
||||||
one_minus_y = 1.0 - fraction_y;
|
one_minus_y = 1.0 - fraction_y;
|
||||||
|
|
||||||
|
#if VIDEO_BPP==32
|
||||||
SDL_GetRGBA(getpixel(src, floor_x, floor_y), src->format,
|
SDL_GetRGBA(getpixel(src, floor_x, floor_y), src->format,
|
||||||
&r1, &g1, &b1, &a1);
|
&r1, &g1, &b1, &a1);
|
||||||
SDL_GetRGBA(getpixel(src, ceil_x, floor_y), src->format,
|
SDL_GetRGBA(getpixel(src, ceil_x, floor_y), src->format,
|
||||||
|
|
@ -9322,6 +9323,40 @@ static SDL_Surface *zoom(SDL_Surface * src, int new_w, int new_h)
|
||||||
&r3, &g3, &b3, &a3);
|
&r3, &g3, &b3, &a3);
|
||||||
SDL_GetRGBA(getpixel(src, ceil_x, ceil_y), src->format,
|
SDL_GetRGBA(getpixel(src, ceil_x, ceil_y), src->format,
|
||||||
&r4, &g4, &b4, &a4);
|
&r4, &g4, &b4, &a4);
|
||||||
|
#else
|
||||||
|
{
|
||||||
|
Uint8 r, g, b, a;
|
||||||
|
r = g = b = a = 0; // Unused, bah!
|
||||||
|
|
||||||
|
SDL_GetRGBA(getpixel(src, floor_x, floor_y), src->format,
|
||||||
|
&r, &g, &b, &a);
|
||||||
|
r1 = (float) r;
|
||||||
|
g1 = (float) g;
|
||||||
|
b1 = (float) b;
|
||||||
|
a1 = (float) a;
|
||||||
|
|
||||||
|
SDL_GetRGBA(getpixel(src, ceil_x, floor_y), src->format,
|
||||||
|
&r, &g, &b, &a);
|
||||||
|
r2 = (float) r;
|
||||||
|
g2 = (float) g;
|
||||||
|
b2 = (float) b;
|
||||||
|
a2 = (float) a;
|
||||||
|
|
||||||
|
SDL_GetRGBA(getpixel(src, floor_x, ceil_y), src->format,
|
||||||
|
&r, &g, &b, &a);
|
||||||
|
r3 = (float) r;
|
||||||
|
g3 = (float) g;
|
||||||
|
b3 = (float) b;
|
||||||
|
a3 = (float) a;
|
||||||
|
|
||||||
|
SDL_GetRGBA(getpixel(src, ceil_x, ceil_y), src->format,
|
||||||
|
&r, &g, &b, &a);
|
||||||
|
r4 = (float) r;
|
||||||
|
g4 = (float) g;
|
||||||
|
b4 = (float) b;
|
||||||
|
a4 = (float) a;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
n1 = (one_minus_x * r1 + fraction_x * r2);
|
n1 = (one_minus_x * r1 + fraction_x * r2);
|
||||||
n2 = (one_minus_x * r3 + fraction_x * r4);
|
n2 = (one_minus_x * r3 + fraction_x * r4);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue