win32 compile fixes
[swftools.git] / lib / devices / swf.c
index d0ac1c4..205163f 100644 (file)
 #include <string.h>
 #include "../../config.h"
 #include <fcntl.h>
+#ifdef HAVE_UNISTD_H
 #include <unistd.h>
+#endif
+#ifdef HAVE_IO_H
+#include <io.h>
+#endif
 #ifdef HAVE_ASSERT_H
 #include <assert.h>
 #else
 #define assert(a)
 #endif
 #include <math.h>
+#include "../mem.h"
 #include "../log.h"
 #include "../rfxswf.h"
 #include "../gfxdevice.h"
 #include "../gfxtools.h"
 #include "../art/libart.h"
-#include "artsutils.c"
+#include "swf.h"
+#include "artsutils.h"
 
 #define CHARDATAMAX 8192
 #define CHARMIDX 0
@@ -853,7 +860,7 @@ void swf_endframe(gfxdevice_t*dev)
     if(!i->pagefinished)
         endpage(dev);
 
-    if(i->config_insertstoptag) {
+    if( (i->swf->fileVersion <= 8) && (i->config_insertstoptag) ) {
        ActionTAG*atag=0;
        atag = action_Stop(atag);
        atag = action_End(atag);
@@ -929,7 +936,6 @@ void gfxdevice_swf_init(gfxdevice_t* dev)
     swfoutput_internal*i = (swfoutput_internal*)dev->internal;
     i->dev = dev;
 
-    SRECT r;
     RGBA rgb;
 
     msg("<verbose> initializing swf output\n", i->max_x,i->max_y);
@@ -1174,7 +1180,6 @@ void wipeSWF(SWF*swf)
     }
 }
 
-
 void swfoutput_finalize(gfxdevice_t*dev)
 {
     swfoutput_internal*i = (swfoutput_internal*)dev->internal;
@@ -1216,7 +1221,7 @@ void swfoutput_finalize(gfxdevice_t*dev)
     }
 
     endpage(dev);
-    fontlist_t *tmp,*iterator = i->fontlist;
+    fontlist_t *iterator = i->fontlist;
     while(iterator) {
        TAG*mtag = i->swf->firstTag;
        if(iterator->swffont) {
@@ -1251,6 +1256,10 @@ void swfoutput_finalize(gfxdevice_t*dev)
        i->swf->compressed = 1;
     }
 
+    /* Initialize AVM2 if it is a Flash9 file */
+    if(i->config_flashversion>=9 && i->config_insertstoptag) {
+       AVM2_InsertStops(i->swf);
+    }
 //    if(i->config_reordertags)
 //     swf_Optimize(i->swf);
 }
@@ -1592,12 +1601,10 @@ static void drawlink(gfxdevice_t*dev, ActionTAG*actions1, ActionTAG*actions2, gf
     SRECT r;
     int lsid=0;
     int fsid;
-    plotxy_t p1,p2,p3,p4;
     int myshapeid;
     int myshapeid2;
     double posx = 0;
     double posy = 0;
-    int t;
     int buttonid = getNewID(dev);
     gfxbbox_t bbox = gfxline_getbbox(points);
 
@@ -2043,8 +2050,6 @@ static void swf_fillbitmap(gfxdevice_t*dev, gfxline_t*line, gfximage_t*img, gfxm
     double fy = (double)img->height / (double)newheight;
 
     MATRIX m;
-    float m00,m10,tx;
-    float m01,m11,ty;
     m.sx = (int)(65536*20*matrix->m00*fx); m.r1 = (int)(65536*20*matrix->m10*fy);
     m.r0 = (int)(65536*20*matrix->m01*fx); m.sy = (int)(65536*20*matrix->m11*fy);
     m.tx = (int)(matrix->tx*20);