Browse Source

gobj: Show better error if calling tex.write() with unknown extension

rdb 4 years ago
parent
commit
ab6d3b2e15
1 changed files with 10 additions and 1 deletions
  1. 10 1
      panda/src/gobj/texture.cxx

+ 10 - 1
panda/src/gobj/texture.cxx

@@ -30,6 +30,7 @@
 #include "pnmImage.h"
 #include "pnmReader.h"
 #include "pfmFile.h"
+#include "pnmFileTypeRegistry.h"
 #include "virtualFileSystem.h"
 #include "datagramInputFile.h"
 #include "datagramOutputFile.h"
@@ -5176,11 +5177,19 @@ do_write_one(CData *cdata, const Filename &fullpath, int z, int n) {
     success = pfm.write(fullpath);
   } else {
     // Writing a normal, integer texture.
+    PNMFileType *type =
+      PNMFileTypeRegistry::get_global_ptr()->get_type_from_extension(fullpath);
+    if (type == nullptr) {
+      gobj_cat.error()
+        << "Texture::write() - couldn't determine type from extension: " << fullpath << endl;
+      return false;
+    }
+
     PNMImage pnmimage;
     if (!do_store_one(cdata, pnmimage, z, n)) {
       return false;
     }
-    success = pnmimage.write(fullpath);
+    success = pnmimage.write(fullpath, type);
   }
 
   if (!success) {