subtraced (0.5,0.5) from the texture position to get rid of the
[swftools.git] / src / png2swf.c
index e01e0b9..91cfb32 100644 (file)
@@ -85,10 +85,10 @@ int MovieFinish(SWF * swf, TAG * t, char *sname)
        if FAILED(swf_WriteCGI(swf)) fprintf(stderr,"WriteCGI() failed.\n");
     } else {
        if(global.version >= 6) {
-           if (swf_WriteSWC(handle, swf)<0) 
+           if (swf_WriteSWC(f, swf)<0) 
                    fprintf(stderr, "Unable to write output file: %s\n", sname);
        } else {
-           if (swf_WriteSWF(handle, swf)<0) 
+           if (swf_WriteSWF(f, swf)<0) 
                    fprintf(stderr, "Unable to write output file: %s\n", sname);
        }
        if (f != so)
@@ -315,11 +315,11 @@ void applyfilter4(int mode, U8*src, U8*old, U8*dest, int width)
     unsigned char lastr=0;
     unsigned char lastg=0;
     unsigned char lastb=0;
-    unsigned char lasta=0;
+    unsigned char lasta=0; //TODO: 255?
     unsigned char upperlastr=0;
     unsigned char upperlastg=0;
     unsigned char upperlastb=0;
-    unsigned char upperlasta=0;
+    unsigned char upperlasta=0; //TODO: 255?
 
     if(mode==0) {
        for(x=0;x<width;x++) {
@@ -570,7 +570,7 @@ TAG *MovieAddFrame(SWF * swf, TAG * t, char *sname, int id)
 
            if(!y) {
                old = firstline;
-               memset(old, 0, header.width*4);
+               memset(old, 0, header.width*4); //TODO: fill alpha with 255?
            } else {
                old = &data2[(y-1)*header.width*4];
            }
@@ -635,12 +635,13 @@ TAG *MovieAddFrame(SWF * swf, TAG * t, char *sname, int id)
                }
            }
        } else {
-           palettelen = 256;
+            int mult = (0x1ff>>header.bpp);
+           palettelen = 1<<header.bpp;
            rgba = (RGBA*)malloc(palettelen*sizeof(RGBA));
-           for(i=0;i<256;i++) {
-               rgba[i].r = i;
-               rgba[i].g = i;
-               rgba[i].b = i;
+           for(i=0;i<palettelen;i++) {
+               rgba[i].r = i*mult;
+               rgba[i].g = i*mult;
+               rgba[i].b = i*mult;
            }
        }
 
@@ -687,7 +688,9 @@ TAG *MovieAddFrame(SWF * swf, TAG * t, char *sname, int id)
     swf_GetMatrix(NULL, &m);
     m.sx = 20 * 0x10000;
     m.sy = 20 * 0x10000;
-    fs = swf_ShapeAddBitmapFillStyle(s, &m, id, 0);
+    m.tx = -10;
+    m.ty = -10;
+    fs = swf_ShapeAddBitmapFillStyle(s, &m, id, 1);
 
     swf_SetU16(t, id + 1);     // id
 
@@ -791,8 +794,8 @@ int args_callback_option(char *arg, char *val)
            break;
 
        case 'z':
-           global.version = 1;
-           res = 1;
+           global.version = 6;
+           res = 0;
            break;
 
        case 'C':
@@ -899,9 +902,11 @@ int main(int argc, char **argv)
     global.version = 4;
 
     processargs(argc, argv);
-
-    if(global.nfiles<=0)
+    
+    if(global.nfiles<=0) {
+       fprintf(stderr, "No png files found in arguments\n");
        return 1;
+    }
 
     if (VERBOSE(2))
        fprintf(stderr, "Processing %i file(s)...\n", global.nfiles);