diff --git a/libraries/gpu/src/gpu/Texture_ktx.cpp b/libraries/gpu/src/gpu/Texture_ktx.cpp index e033355514..92ead5f616 100644 --- a/libraries/gpu/src/gpu/Texture_ktx.cpp +++ b/libraries/gpu/src/gpu/Texture_ktx.cpp @@ -210,7 +210,16 @@ PixelsPointer KtxStorage::getMipFace(uint16 level, uint8 face) const { auto faceSize = _ktxDescriptor->getMipFaceTexelsSize(level, face); if (faceSize != 0 && faceOffset != 0) { auto file = maybeOpenFile(); - result = file->createView(faceSize, faceOffset)->toMemoryStorage(); + if (file) { + auto storageView = file->createView(faceSize, faceOffset); + if (storageView) { + return storageView->toMemoryStorage(); + } else { + qWarning() << "Failed to get a valid storageView for faceSize=" << faceSize << " faceOffset=" << faceOffset << "out of valid file " << QString::fromStdString(_filename); + } + } else { + qWarning() << "Failed to get a valid file out of maybeOpenFile " << QString::fromStdString(_filename); + } } return result; } diff --git a/libraries/shared/src/shared/Storage.cpp b/libraries/shared/src/shared/Storage.cpp index f6585e6ecb..e479559e6a 100644 --- a/libraries/shared/src/shared/Storage.cpp +++ b/libraries/shared/src/shared/Storage.cpp @@ -25,7 +25,9 @@ StoragePointer Storage::createView(size_t viewSize, size_t offset) const { viewSize = selfSize; } if ((viewSize + offset) > selfSize) { - throw std::runtime_error("Invalid mapping range"); + return StoragePointer(); + //TODO: Disable te exception for now and return an empty storage instead. + //throw std::runtime_error("Invalid mapping range"); } return std::make_shared(shared_from_this(), viewSize, data() + offset); }