X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fdevices%2Ffile.c;h=553e6422970b00e649177de912c9c3ba0baa5d0c;hb=7fb4a4ac393f19a0b8a8998a2f1deac88c97eda0;hp=3b83c290d6efbf4424701d63e4595094cc76d12a;hpb=5386028e78548134c4a475dcfd815569e7dc9676;p=swftools.git diff --git a/lib/devices/file.c b/lib/devices/file.c index 3b83c29..553e642 100644 --- a/lib/devices/file.c +++ b/lib/devices/file.c @@ -20,7 +20,10 @@ #include #include +#ifndef WIN32 #include +#endif +#include #include #include "../gfxdevice.h" @@ -33,7 +36,7 @@ int file_setparameter(struct _gfxdevice*dev, const char*key, const char*value) { internal_t*i = (internal_t*)dev->internal; fprintf(i->fi, "setparameter %s=%s\n", key, value); - return 0; + return 1; } void file_startpage(struct _gfxdevice*dev, int width, int height) @@ -56,6 +59,20 @@ static void dumpline(FILE*fi, gfxline_t*line) } } +static void dumpmatrix (FILE*fi, gfxmatrix_t*matrix) +{ + fprintf(fi, "| %5.2f %5.2f %5.2f\n", matrix->m00, matrix->m10, matrix->tx); + fprintf(fi, "| %5.2f %5.2f %5.2f\n", matrix->m01, matrix->m11, matrix->ty); +} + +static void dumpgradient (FILE*fi, gfxgradient_t*gradient) +{ + while(gradient) { + fprintf(fi, "pos %f: %02x%02x%02x%02x\n", gradient->pos, gradient->color.r, gradient->color.g, gradient->color.b, gradient->color.a); + gradient = gradient->next; + } +} + void file_startclip(struct _gfxdevice*dev, gfxline_t*line) { internal_t*i = (internal_t*)dev->internal; @@ -92,6 +109,7 @@ void file_fillbitmap(struct _gfxdevice*dev, gfxline_t*line, gfximage_t*img, gfxm { internal_t*i = (internal_t*)dev->internal; fprintf(i->fi, "fillbitmap\n"); + dumpmatrix(i->fi, matrix); dumpline(i->fi, line); } @@ -99,12 +117,15 @@ void file_fillgradient(struct _gfxdevice*dev, gfxline_t*line, gfxgradient_t*grad { internal_t*i = (internal_t*)dev->internal; fprintf(i->fi, "fillgradient\n"); + dumpmatrix(i->fi, matrix); + dumpgradient(i->fi, gradient); dumpline(i->fi, line); } void file_addfont(struct _gfxdevice*dev, gfxfont_t*font) { internal_t*i = (internal_t*)dev->internal; + fprintf(i->fi, "addfont %s\n", font->id); } void file_drawchar(struct _gfxdevice*dev, gfxfont_t*font, int glyph, gfxcolor_t*color, gfxmatrix_t*matrix) @@ -112,7 +133,7 @@ void file_drawchar(struct _gfxdevice*dev, gfxfont_t*font, int glyph, gfxcolor_t* internal_t*i = (internal_t*)dev->internal; } -void file_drawlink(struct _gfxdevice*dev, gfxline_t*line, char*action) +void file_drawlink(struct _gfxdevice*dev, gfxline_t*line, const char*action) { internal_t*i = (internal_t*)dev->internal; fprintf(i->fi, "drawlink %s\n", action); @@ -138,7 +159,7 @@ void fileresult_destroy(struct _gfxresult*gfx) free(i->filename);i->filename = 0; } -int fileresult_save(struct _gfxresult*gfx, char*filename) +int fileresult_save(struct _gfxresult*gfx, const char*filename) { gfxresult_internal_t*i = (gfxresult_internal_t*)gfx->internal; FILE*fi,*fo; @@ -168,7 +189,7 @@ int fileresult_save(struct _gfxresult*gfx, char*filename) return 0; } -void* fileresult_get(struct _gfxresult*gfx, char*name) +void* fileresult_get(struct _gfxresult*gfx, const char*name) { return 0; } @@ -199,7 +220,7 @@ gfxresult_t* file_finish(struct _gfxdevice*dev) void gfxdevice_file_init(gfxdevice_t*dev, char*filename) { - internal_t*i = malloc(sizeof(internal_t)); + internal_t*i = (internal_t*)malloc(sizeof(internal_t)); memset(dev, 0, sizeof(gfxdevice_t)); dev->name = "file";