X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=lib%2Frfxswf.c;h=3e8f0a89b8f803318fd279f8d9fe660aef8a5eec;hp=a3486e6cc81abc396ae48f17d624dbed68d1fd5a;hb=ede90e3f60487332bcaede6d8f62ad0f3e0fb715;hpb=67bfacb50cd8fbbc0b52e9ae890e106845b5a879 diff --git a/lib/rfxswf.c b/lib/rfxswf.c index a3486e6..3e8f0a8 100644 --- a/lib/rfxswf.c +++ b/lib/rfxswf.c @@ -293,6 +293,10 @@ void swf_GetGradient(TAG * tag, GRADIENT * gradient, char alpha) { GRADIENT dummy; int t; + if(!tag) { + memset(gradient, 0, sizeof(GRADIENT)); + return; + } if(!gradient) gradient = &dummy; gradient->num = swf_GetU8(tag); @@ -309,6 +313,24 @@ void swf_GetGradient(TAG * tag, GRADIENT * gradient, char alpha) } } +void swf_SetGradient(TAG * tag, GRADIENT * gradient, char alpha) +{ + int t; + if(!tag) { + memset(gradient, 0, sizeof(GRADIENT)); + return; + } + swf_SetU8(tag, gradient->num); + for(t=0; t<8 && tnum; t++) + { + swf_SetU8(tag, gradient->ratios[t]); + if(!alpha) + swf_SetRGB(tag, &gradient->rgba[t]); + else + swf_SetRGBA(tag, &gradient->rgba[t]); + } +} + int swf_CountUBits(U32 v,int nbits) { int n = 32; U32 m = 0x80000000; @@ -1322,6 +1344,7 @@ void swf_FreeTags(SWF * swf) // Frees all malloc'ed memory for t #include "modules/swfdump.c" #include "modules/swfshape.c" #include "modules/swftext.c" +#include "modules/swffont.c" #include "modules/swfobject.c" #include "modules/swfbutton.c" #include "modules/swftools.c" @@ -1329,3 +1352,4 @@ void swf_FreeTags(SWF * swf) // Frees all malloc'ed memory for t #include "modules/swfbits.c" #include "modules/swfaction.c" #include "modules/swfsound.c" +#include "modules/swfdraw.c"