]> Dogcows Code - chaz/rasterize/blobdiff - main.c
add geometry caching and a rotation script
[chaz/rasterize] / main.c
diff --git a/main.c b/main.c
index 08a752e0494f9eb17139588a68bead39f7cce363..83878bf5e70e0dc29dddbfc93460d96312c20f3e 100644 (file)
--- a/main.c
+++ b/main.c
 #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);
 }
 
This page took 0.018143 seconds and 4 git commands to generate.