]> git.cworth.org Git - apitrace/blobdiff - retrace/json.cpp
glretrace: Dump depth buffers as floating point images.
[apitrace] / retrace / json.cpp
index bb901c2e5fbcec1c7833f9e3ae855868a88a49db..850e37f934b539de9a53e67a7af9946a09629068 100644 (file)
@@ -304,6 +304,11 @@ JSONWriter::writeBool(bool b) {
 void
 JSONWriter::writeImage(image::Image *image, const char *format, unsigned depth)
 {
+    if (!image) {
+        writeNull();
+        return;
+    }
+
     beginObject();
 
     // Tell the GUI this is no ordinary object, but an image
@@ -317,7 +322,13 @@ JSONWriter::writeImage(image::Image *image, const char *format, unsigned depth)
 
     beginMember("__data__");
     std::stringstream ss;
-    image->writePNG(ss);
+
+    if (image->channelType == image::TYPE_UNORM8) {
+        image->writePNG(ss);
+    } else {
+        image->writePNM(ss);
+    }
+
     const std::string & s = ss.str();
     writeBase64(s.data(), s.size());
     endMember(); // __data__