X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fdevices%2Frender.c;h=bb71bed5b7194a53a808c4a0abe6ee140cc5b3a9;hb=d3fb559b6b8ca9c122b310cae1a3e8b0805f97ad;hp=1d6e80ec37cd0637abd28ea018030b496180007d;hpb=a6c987152623f74912763bb88b323445ba3bd4f8;p=swftools.git diff --git a/lib/devices/render.c b/lib/devices/render.c index 1d6e80e..bb71bed 100644 --- a/lib/devices/render.c +++ b/lib/devices/render.c @@ -24,11 +24,10 @@ #include #include "../gfxdevice.h" #include "../gfxtools.h" -#include "../png.h" #include "../mem.h" - -typedef unsigned int U32; -typedef unsigned char U8; +#define PNG_INLINE_EXPORTS +#include "../types.h" +#include "../png.c" typedef gfxcolor_t RGBA; @@ -273,13 +272,13 @@ static void fill_line_solid(RGBA*line, U32*z, int y, int x1, int x2, RGBA col) col.r = (col.r*col.a)>>8; col.g = (col.g*col.a)>>8; col.b = (col.b*col.a)>>8; - col.a = 255; do { if(z[bitpos]&bit) { 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].a = 255; + //line[x].a = 255; + line[x].a = ((line[x].a*ainv)>>8)+col.a; } bit <<= 1; if(!bit) { @@ -649,6 +648,8 @@ void render_addfont(struct _gfxdevice*dev, gfxfont_t*font) void render_drawchar(struct _gfxdevice*dev, gfxfont_t*font, int glyphnr, gfxcolor_t*color, gfxmatrix_t*matrix) { internal_t*i = (internal_t*)dev->internal; + if(!font) + return; /* align characters to whole pixels */ matrix->tx = (int)(matrix->tx * i->antialize) / i->antialize;