+typedef struct gfxresult_internal
+{
+ FILE*fi;
+ char*filename;
+} gfxresult_internal_t;
+
+void fileresult_destroy(struct _gfxresult*gfx)
+{
+ gfxresult_internal_t*i = (gfxresult_internal_t*)gfx->internal;
+ unlink(i->filename);
+ free(i->filename);i->filename = 0;
+}
+
+int fileresult_save(struct _gfxresult*gfx, const char*filename)
+{
+ gfxresult_internal_t*i = (gfxresult_internal_t*)gfx->internal;
+ FILE*fi,*fo;
+ fi = fopen(i->filename, "rb");
+ if(!fi) {
+ perror(i->filename);
+ return 0;
+ }
+ fo = fopen(filename, "wb");
+ if(!fo) {
+ perror(filename);
+ return 0;
+ }
+
+ char buf[4096];
+ while(!feof(fi)) {
+ int l = fread(buf, 1, 4096, fi);
+ if(l>0) {
+ fwrite(buf, 1, l, fo);
+ } else {
+ break;
+ }
+ }
+
+ fclose(fi);
+ fclose(fo);
+ return 0;
+}
+
+void* fileresult_get(struct _gfxresult*gfx, const char*name)
+{
+ return 0;
+}
+