git.asbjorn.biz
/
swftools.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
81b35c4
)
fixed overflow in pixel rendering
author
kramm
<kramm>
Wed, 19 Mar 2008 21:47:38 +0000
(21:47 +0000)
committer
kramm
<kramm>
Wed, 19 Mar 2008 21:47:38 +0000
(21:47 +0000)
lib/modules/swfrender.c
patch
|
blob
|
history
diff --git
a/lib/modules/swfrender.c
b/lib/modules/swfrender.c
index
e451329
..
719559b
100644
(file)
--- a/
lib/modules/swfrender.c
+++ b/
lib/modules/swfrender.c
@@
-566,6
+566,12
@@
static void fill_solid(RGBA*line, int*z, int y, int x1, int x2, RGBA col, U32 de
}
}
}
}
+static int inline clamp(int v)
+{
+ if(v>255) return 255;
+ else return v;
+}
+
static void fill_bitmap(RGBA*line, int*z, int y, int x1, int x2, MATRIX*m, bitmap_t*b, int clipbitmap, U32 depth, double fmultiply)
{
int x = x1;
static void fill_bitmap(RGBA*line, int*z, int y, int x1, int x2, MATRIX*m, bitmap_t*b, int clipbitmap, U32 depth, double fmultiply)
{
int x = x1;
@@
-609,9
+615,9
@@
static void fill_bitmap(RGBA*line, int*z, int y, int x1, int x2, MATRIX*m, bitma
col = b->data[yy*b->width+xx];
ainv = 255-col.a;
col = b->data[yy*b->width+xx];
ainv = 255-col.a;
- line[x].r = ((line[x].r*ainv)>>8)+col.r;
- line[x].g = ((line[x].g*ainv)>>8)+col.g;
- line[x].b = ((line[x].b*ainv)>>8)+col.b;
+ line[x].r = clamp(((line[x].r*ainv)>>8)+col.r);
+ line[x].g = clamp(((line[x].g*ainv)>>8)+col.g);
+ line[x].b = clamp(((line[x].b*ainv)>>8)+col.b);
line[x].a = 255;
z[x] = depth;
line[x].a = 255;
z[x] = depth;