#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.
*/
*/
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);
}