X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fdevices%2Fswf.c;h=8a2bcb92e15c07baf6f8334fa1bd793197986cae;hb=8424e3c4bfa20dbf395538656a29084d854d4677;hp=67c6ac4e1dd050a1af7fd74c90045a1eb6700760;hpb=924fbaa431473cf0ea29c350620a30a5a3d457d1;p=swftools.git diff --git a/lib/devices/swf.c b/lib/devices/swf.c index 67c6ac4..8a2bcb9 100644 --- a/lib/devices/swf.c +++ b/lib/devices/swf.c @@ -92,6 +92,7 @@ typedef struct _swfoutput_internal char*config_internallinkfunction; char*config_externallinkfunction; char config_animate; + double config_framerate; SWF* swf; @@ -227,6 +228,7 @@ static swfoutput_internal* init_internal_struct() i->config_generate_fake_tags=0; i->config_insertstoptag=0; i->config_flashversion=6; + i->config_framerate=0.25; i->config_splinemaxerror=1; i->config_fontsplinemaxerror=1; i->config_filloverlap=0; @@ -933,7 +935,7 @@ void gfxdevice_swf_init(gfxdevice_t* dev) i->swf = (SWF*)rfx_calloc(sizeof(SWF)); i->swf->fileVersion = i->config_flashversion; - i->swf->frameRate = 0x0040; // 1 frame per 4 seconds + i->swf->frameRate = i->config_framerate*0x100; i->swf->movieSize.xmin = 0; i->swf->movieSize.ymin = 0; i->swf->movieSize.xmax = 0; @@ -1794,6 +1796,11 @@ int swf_setparameter(gfxdevice_t*dev, const char*name, const char*value) if(i->swf) { i->swf->fileVersion = i->config_flashversion; } + } else if(!strcmp(name, "framerate")) { + i->config_framerate = atoi(value); + if(i->swf) { + i->swf->frameRate = i->config_framerate*0x100; + } } else if(!strcmp(name, "minlinewidth")) { i->config_minlinewidth = atof(value); } else if(!strcmp(name, "caplinewidth")) { @@ -1809,7 +1816,7 @@ int swf_setparameter(gfxdevice_t*dev, const char*name, const char*value) } else if(!strcmp(name, "jpegquality")) { int val = atoi(value); if(val<0) val=0; - if(val>100) val=100; + if(val>101) val=101; i->config_jpegquality = val; } else if(!strcmp(name, "splinequality")) { int v = atoi(value); @@ -2482,6 +2489,8 @@ static void swf_switchfont(gfxdevice_t*dev, char*fontid) static void swf_drawchar(gfxdevice_t*dev, gfxfont_t*font, int glyph, gfxcolor_t*color, gfxmatrix_t*matrix) { swfoutput_internal*i = (swfoutput_internal*)dev->internal; + if(!font) + return; if(!i->swffont || !i->swffont->name || strcmp((char*)i->swffont->name,font->id)) // not equal to current font {