X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Frasterize;a=blobdiff_plain;f=main.c;h=83878bf5e70e0dc29dddbfc93460d96312c20f3e;hp=08a752e0494f9eb17139588a68bead39f7cce363;hb=b0a8ea303e942930350bf85c860afc969442c7a4;hpb=c875478cdd823c7df8fdc859941bd9e5948c9315 diff --git a/main.c b/main.c index 08a752e..83878bf 100644 --- a/main.c +++ b/main.c @@ -11,6 +11,14 @@ #include "scene.h" +#ifndef EXPORT_PPM +#define EXPORT_PPM 1 +#endif +#ifndef EXPORT_BMP +#define EXPORT_BMP 1 +#endif + + /* * Load a scene from a file. */ @@ -28,24 +36,34 @@ static int load(scene_t** scene, const char* filename) */ static void draw(const char* filename) { + char* u3d; + if (strcmp(filename, "-") == 0) { + u3d = mem_strdup("stdin"); + } + else { + u3d = mem_strdup(filename); + } + scene_t* scene; - TRY_DO("Loading %s", load(&scene, filename), filename); + TRY_DO("Loading %s", load(&scene, filename), u3d); raster_t* raster = scene_render(scene); scene_destroy(scene); raster_printstats(raster); - char* u3d = mem_strdup(filename); strcut(u3d, '.'); +#if EXPORT_PPM char* ppm = mem_strcat(u3d, ".ppm"); - char* bmp = mem_strcat(u3d, ".bmp"); - TRY_DO("Exporting to %s", raster_export_ppm(raster, ppm), ppm); + mem_free(ppm); +#endif +#if EXPORT_BMP + char* bmp = mem_strcat(u3d, ".bmp"); TRY_DO("Exporting to %s", raster_export_bmp(raster, bmp), bmp); + mem_free(bmp); +#endif mem_free(u3d); - mem_free(ppm); - mem_free(bmp); raster_destroy(raster); }