diff --git a/panda/src/framework/windowFramework.cxx b/panda/src/framework/windowFramework.cxx index 9f4ea1eecb..9f808d5d78 100644 --- a/panda/src/framework/windowFramework.cxx +++ b/panda/src/framework/windowFramework.cxx @@ -639,10 +639,13 @@ load_model(const NodePath &parent, Filename filename) { extension = Filename(filename.get_basename_wo_extension()).get_extension(); } #endif // HAVE_ZLIB + TexturePool *texture_pool = TexturePool::get_global_ptr(); + LoaderFileType *model_type = NULL; + if (!extension.empty()) { LoaderFileTypeRegistry *reg = LoaderFileTypeRegistry::get_global_ptr(); - LoaderFileType *model_type = - reg->get_type_from_extension(extension); + model_type = reg->get_type_from_extension(extension); + if (model_type == (LoaderFileType *)NULL) { // The extension isn't a known model file type; is it a known // image file extension? @@ -652,7 +655,6 @@ load_model(const NodePath &parent, Filename filename) { is_image = true; } else { - TexturePool *texture_pool = TexturePool::get_global_ptr(); if (texture_pool->get_texture_type(extension) != NULL) { // It is a known image file extension. is_image = true; @@ -674,6 +676,13 @@ load_model(const NodePath &parent, Filename filename) { node = load_image_as_model(filename); } else { node = loader.load_sync(filename, options); + + // It failed to load. Is it because the extension isn't recognised? If + // so, then we just got done printing out the known scene types, and we + // should also print out the supported texture types. + if (node == (PandaNode *)NULL && !is_image && model_type == NULL) { + texture_pool->write_texture_types(nout, 2); + } } if (node == (PandaNode *)NULL) {