#include <stdlib.h>
#include <stdio.h>
+#ifndef WIN32
#include <unistd.h>
+#endif
+#include <string.h>
#include <memory.h>
#include "../gfxdevice.h"
{
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)
}
}
+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;
{
internal_t*i = (internal_t*)dev->internal;
fprintf(i->fi, "fillbitmap\n");
+ dumpmatrix(i->fi, matrix);
dumpline(i->fi, line);
}
{
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, char*fontid, gfxfont_t*font)
+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, char*fontid, int glyph, gfxcolor_t*color, gfxmatrix_t*matrix)
+void file_drawchar(struct _gfxdevice*dev, gfxfont_t*font, int glyph, gfxcolor_t*color, gfxmatrix_t*matrix)
{
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);
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;
return 0;
}
-void* fileresult_get(struct _gfxresult*gfx, char*name)
+void* fileresult_get(struct _gfxresult*gfx, const char*name)
{
return 0;
}
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";
+
dev->internal = i;
dev->setparameter = file_setparameter;