diff --git a/Engine/source/CMakeLists.txt b/Engine/source/CMakeLists.txt index f1c243940..342338160 100644 --- a/Engine/source/CMakeLists.txt +++ b/Engine/source/CMakeLists.txt @@ -97,7 +97,7 @@ endif (WIN32 AND TORQUE_D3D11) # Handle core torqueAddSourceDirectories("core" "core/stream" "core/strings" "core/util" - "core/util/journal" "core/util/zip" "core/util/compressors") + "core/util/journal" "core/util/zip" "core/util/zip/compressors") # Handle GUI torqueAddSourceDirectories("gui" "gui/buttons" "gui/containers" "gui/controls" "gui/core" "gui/game" "gui/shiny" "gui/utility" "gui/3d") diff --git a/Engine/source/gfx/bitmap/gBitmap.cpp b/Engine/source/gfx/bitmap/gBitmap.cpp index 8fc0590b6..82c8b2c7f 100644 --- a/Engine/source/gfx/bitmap/gBitmap.cpp +++ b/Engine/source/gfx/bitmap/gBitmap.cpp @@ -1279,9 +1279,14 @@ template<> void *Resource::create(const Torque::Path &path) const String extension = path.getExtension(); if( !bmp->readBitmap( extension, path ) ) { - Con::errorf( "Resource::create - error reading '%s'", path.getFullPath().c_str() ); - delete bmp; - bmp = NULL; + // we can only get here if the stream was successful, so attempt to read the stream. + Con::warnf("Was unable to load as file, going to try the stream instead."); + if (!bmp->readBitmapStream(extension, stream, stream.getStreamSize())) + { + Con::errorf("Resource::create - error reading '%s'", path.getFullPath().c_str()); + delete bmp; + bmp = NULL; + } } return bmp; diff --git a/Engine/source/gfx/bitmap/loaders/bitmapSTB.cpp b/Engine/source/gfx/bitmap/loaders/bitmapSTB.cpp index a5a97917a..00ef53891 100644 --- a/Engine/source/gfx/bitmap/loaders/bitmapSTB.cpp +++ b/Engine/source/gfx/bitmap/loaders/bitmapSTB.cpp @@ -195,6 +195,12 @@ bool sReadSTB(const Torque::Path& path, GBitmap* bitmap) if (!stbi_info(path.getFullPath().c_str(), &x, &y, &channels)) { FrameAllocator::setWaterMark(prevWaterMark); + const char* stbErr = stbi_failure_reason(); + + if (!stbErr) + stbErr = "Unknown Error!"; + + Con::errorf("STB failed to get image info: %s", stbErr); return false; } @@ -326,7 +332,7 @@ bool sReadStreamSTB(Stream& stream, GBitmap* bitmap, U32 len) stbErr = "Unknown Error!"; Con::errorf("STB failed to get image info: %s", stbErr); - return false; + Con::warnf("Going to attempt to load stream anyway."); } S32 reqCom = comp;