]> git.cworth.org Git - apitrace/blobdiff - image/image_pnm.cpp
image: Non-standard PNM format variant for 4-float images.
[apitrace] / image / image_pnm.cpp
index 0473ac64025150269beac1001718518ba9867d86..58e2cd359058f8ffc9f014fb3db4a697b83447f1 100644 (file)
@@ -62,9 +62,13 @@ Image::writePNM(std::ostream &os, const char *comment) const
         if (channels == 1) {
             identifier = "Pf";
             outChannels = 1;
-        } else {
+        } else if (channels <= 3) {
             identifier = "PF";
-            outChannels = 3;
+            outChannels = 4;
+        } else {
+            // Non-standard extension for 4 floats
+            identifier = "PX";
+            outChannels = 4;
         }
         break;
     default:
@@ -235,6 +239,10 @@ readPNMHeader(const char *buffer, size_t bufferSize, PNMInfo &info)
         info.channels = 3;
         info.channelType = TYPE_FLOAT;
         break;
+    case 'X':
+        info.channels = 4;
+        info.channelType = TYPE_FLOAT;
+        break;
     default:
         return NULL;
     }