Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/deps/corrade
Submodule corrade updated 55 files
+22 −1 doc/corrade-changelog.dox
+15 −13 doc/plugin-management.dox
+3 −0 doc/snippets/CMakeLists.txt
+9 −0 doc/snippets/Utility.cpp
+4 −0 doc/snippets/testsuite-iteration.ansi
+54 −0 doc/snippets/testsuite-iteration.cpp
+1 −1 doc/snippets/testsuite-repeated.ansi
+1 −1 doc/snippets/testsuite-save-diagnostic.ansi
+3 −3 doc/snippets/testsuite.ansi
+2 −1 src/Corrade/Containers/Array.h
+1 −0 src/Corrade/Containers/CMakeLists.txt
+2 −2 src/Corrade/Containers/GrowableArray.h
+3 −2 src/Corrade/Containers/Optional.h
+10 −2 src/Corrade/Containers/Pointer.h
+3 −4 src/Corrade/Containers/StaticArray.h
+60 −30 src/Corrade/Containers/StridedArrayView.h
+23 −1 src/Corrade/Containers/Test/ArrayTest.cpp
+25 −1 src/Corrade/Containers/Test/GrowableArrayTest.cpp
+23 −0 src/Corrade/Containers/Test/OptionalTest.cpp
+26 −0 src/Corrade/Containers/Test/PointerTest.cpp
+23 −1 src/Corrade/Containers/Test/StaticArrayTest.cpp
+85 −34 src/Corrade/Containers/Test/StridedArrayViewTest.cpp
+73 −0 src/Corrade/Containers/constructHelpers.h
+12 −12 src/Corrade/PluginManager/AbstractManager.h
+43 −13 src/Corrade/TestSuite/Test/TesterTest.cpp
+1 −1 src/Corrade/TestSuite/Test/TesterTestFiles/abortOnFail.txt
+1 −1 src/Corrade/TestSuite/Test/TesterTestFiles/abortOnFailSkip.txt
+2 −2 src/Corrade/TestSuite/Test/TesterTestFiles/benchmarkCpuClock.txt
+2 −2 src/Corrade/TestSuite/Test/TesterTestFiles/benchmarkCpuCycles.txt
+2 −2 src/Corrade/TestSuite/Test/TesterTestFiles/benchmarkCpuScalingWarning.txt
+2 −2 src/Corrade/TestSuite/Test/TesterTestFiles/benchmarkCpuScalingWarningVerbose.txt
+2 −2 src/Corrade/TestSuite/Test/TesterTestFiles/benchmarkDebugBuildNote.txt
+2 −2 src/Corrade/TestSuite/Test/TesterTestFiles/benchmarkDiscardAll.txt
+2 −2 src/Corrade/TestSuite/Test/TesterTestFiles/benchmarkWallClock.txt
+1 −1 src/Corrade/TestSuite/Test/TesterTestFiles/compareMessageFailed.txt
+1 −1 src/Corrade/TestSuite/Test/TesterTestFiles/compareMessageVerboseEnabled.txt
+1 −1 src/Corrade/TestSuite/Test/TesterTestFiles/compareMessageXfail.txt
+1 −1 src/Corrade/TestSuite/Test/TesterTestFiles/noXfail.txt
+2 −2 src/Corrade/TestSuite/Test/TesterTestFiles/repeatAll.txt
+1 −1 src/Corrade/TestSuite/Test/TesterTestFiles/repeatEvery.txt
+1 −1 src/Corrade/TestSuite/Test/TesterTestFiles/saveDiagnosticAbortOnFail.txt
+1 −1 src/Corrade/TestSuite/Test/TesterTestFiles/saveDiagnosticFailedDisabled.txt
+1 −1 src/Corrade/TestSuite/Test/TesterTestFiles/saveDiagnosticFailedEnabled.txt
+1 −1 src/Corrade/TestSuite/Test/TesterTestFiles/saveDiagnosticXfail.txt
+1 −1 src/Corrade/TestSuite/Test/TesterTestFiles/saveDiagnosticXpassDisabled.txt
+1 −1 src/Corrade/TestSuite/Test/TesterTestFiles/saveDiagnosticXpassEnabled.txt
+1 −1 src/Corrade/TestSuite/Test/TesterTestFiles/skipTests.txt
+64 −57 src/Corrade/TestSuite/Test/TesterTestFiles/test.txt
+54 −12 src/Corrade/TestSuite/Tester.cpp
+57 −0 src/Corrade/TestSuite/Tester.h
+4 −4 src/Corrade/Utility/Assert.h
+28 −3 src/Corrade/Utility/Debug.h
+15 −1 src/Corrade/Utility/Macros.h
+4 −4 src/Corrade/Utility/Test/CMakeLists.txt
+11 −3 src/Corrade/Utility/Test/DebugTest.cpp
2 changes: 1 addition & 1 deletion src/deps/magnum
Submodule magnum updated 71 files
+1 −1 doc/building.dox
+33 −2 doc/changelog.dox
+2 −2 doc/namespaces.dox
+1 −1 doc/opengl-mapping.dox
+1 −1 doc/snippets/debugtools-compareimage.ansi
+9 −5 doc/types.dox
+1 −0 src/Magnum/Animation/Test/InterpolationTest.cpp
+7 −2 src/Magnum/CMakeLists.txt
+1 −1 src/Magnum/GL/AbstractTexture.cpp
+7 −7 src/Magnum/GL/Attribute.cpp
+41 −10 src/Magnum/GL/Attribute.h
+3 −0 src/Magnum/GL/Implementation/MeshState.h
+8 −8 src/Magnum/GL/Implementation/pixelFormatMapping.hpp
+29 −0 src/Magnum/GL/Mesh.cpp
+16 −2 src/Magnum/GL/Mesh.h
+2 −2 src/Magnum/GL/PixelFormat.cpp
+11 −2 src/Magnum/GL/PixelFormat.h
+3 −3 src/Magnum/GL/Test/AttributeTest.cpp
+1 −1 src/Magnum/GL/Test/FramebufferGLTest.cpp
+5 −5 src/Magnum/GL/Test/MeshGLTest.cpp
+14 −14 src/Magnum/GL/TextureFormat.h
+122 −0 src/Magnum/Magnum.h
+6 −1 src/Magnum/Math/CMakeLists.txt
+42 −32 src/Magnum/Math/Color.h
+22 −2 src/Magnum/Math/Half.h
+160 −0 src/Magnum/Math/Implementation/generateHalfTables.py
+513 −0 src/Magnum/Math/Implementation/halfTables.hpp
+4 −4 src/Magnum/Math/Packing.h
+299 −0 src/Magnum/Math/PackingBatch.cpp
+272 −0 src/Magnum/Math/PackingBatch.h
+3 −0 src/Magnum/Math/Test/CMakeLists.txt
+11 −0 src/Magnum/Math/Test/ColorTest.cpp
+54 −106 src/Magnum/Math/Test/HalfTest.cpp
+580 −0 src/Magnum/Math/Test/PackingBatchTest.cpp
+18 −1 src/Magnum/Math/Test/TypeTraitsTest.cpp
+12 −0 src/Magnum/Math/Test/VectorTest.cpp
+16 −8 src/Magnum/Math/TypeTraits.h
+2 −2 src/Magnum/Math/Vector.h
+3 −2 src/Magnum/Math/Vector2.h
+3 −2 src/Magnum/Math/Vector3.h
+3 −2 src/Magnum/Math/Vector4.h
+4 −4 src/Magnum/PixelFormat.cpp
+12 −13 src/Magnum/PixelFormat.h
+27 −7 src/Magnum/Platform/GlfwApplication.cpp
+4 −0 src/Magnum/Platform/Test/GlfwApplicationTest.cpp
+1 −0 src/Magnum/Platform/gl-info.cpp
+9 −9 src/Magnum/Test/PixelFormatTest.cpp
+76 −10 src/Magnum/Trade/AbstractImporter.cpp
+78 −7 src/Magnum/Trade/AbstractImporter.h
+289 −12 src/Magnum/Trade/Test/AbstractImporterTest.cpp
+12 −12 src/Magnum/Vk/Enums.cpp
+0 −0 src/Magnum/Vk/Implementation/compressedPixelFormatMapping.hpp
+0 −0 src/Magnum/Vk/Implementation/pixelFormatMapping.hpp
+28 −30 src/Magnum/Vk/Test/EnumsTest.cpp
+6 −0 src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt
+6 −0 src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt
+6 −2 src/MagnumPlugins/AnyImageImporter/AnyImageImporter.cpp
+19 −1 src/MagnumPlugins/AnyImageImporter/AnyImageImporter.h
+6 −0 src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt
+7 −4 src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp
+6 −3 src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h
+6 −0 src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt
+3 −0 src/MagnumPlugins/MagnumFont/Test/CMakeLists.txt
+6 −0 src/MagnumPlugins/MagnumFontConverter/Test/CMakeLists.txt
+1 −1 src/MagnumPlugins/ObjImporter/ObjImporter.cpp
+3 −0 src/MagnumPlugins/ObjImporter/Test/CMakeLists.txt
+6 −0 src/MagnumPlugins/TgaImageConverter/Test/CMakeLists.txt
+3 −0 src/MagnumPlugins/TgaImporter/Test/CMakeLists.txt
+2 −2 src/MagnumPlugins/TgaImporter/TgaImporter.cpp
+1 −1 src/MagnumPlugins/TgaImporter/TgaImporter.h
+3 −0 src/MagnumPlugins/WavAudioImporter/Test/CMakeLists.txt
2 changes: 1 addition & 1 deletion src/deps/magnum-bindings
2 changes: 1 addition & 1 deletion src/deps/magnum-plugins
Submodule magnum-plugins updated 74 files
+1 −1 doc/building-plugins.dox
+10 −0 doc/changelog-plugins.dox
+51 −17 src/MagnumPlugins/AssimpImporter/AssimpImporter.cpp
+4 −1 src/MagnumPlugins/AssimpImporter/AssimpImporter.h
+54 −0 src/MagnumPlugins/AssimpImporter/Test/AssimpImporterTest.cpp
+18 −0 src/MagnumPlugins/AssimpImporter/Test/CMakeLists.txt
+1 −0 src/MagnumPlugins/AssimpImporter/Test/configure.h.cmake
+4 −0 src/MagnumPlugins/AssimpImporter/Test/image-mips.mtl
+13 −0 src/MagnumPlugins/AssimpImporter/Test/image-mips.obj
+ src/MagnumPlugins/AssimpImporter/Test/mips.dds
+60 −107 src/MagnumPlugins/BasisImageConverter/Test/BasisImageConverterTest.cpp
+11 −2 src/MagnumPlugins/BasisImageConverter/Test/CMakeLists.txt
+14 −8 src/MagnumPlugins/BasisImporter/BasisImporter.cpp
+2 −1 src/MagnumPlugins/BasisImporter/BasisImporter.h
+98 −53 src/MagnumPlugins/BasisImporter/Test/BasisImporterTest.cpp
+10 −5 src/MagnumPlugins/BasisImporter/Test/CMakeLists.txt
+19 −13 src/MagnumPlugins/BasisImporter/Test/README.md
+ src/MagnumPlugins/BasisImporter/Test/rgb-27x63.png
+ src/MagnumPlugins/BasisImporter/Test/rgb-2images-pow2.basis
+ src/MagnumPlugins/BasisImporter/Test/rgb-2images.basis
+ src/MagnumPlugins/BasisImporter/Test/rgb-31x13.png
+ src/MagnumPlugins/BasisImporter/Test/rgb-32x64.png
+ src/MagnumPlugins/BasisImporter/Test/rgb-pow2.basis
+ src/MagnumPlugins/BasisImporter/Test/rgba-15x6.png
+ src/MagnumPlugins/BasisImporter/Test/rgba-2images-mips.basis
+ src/MagnumPlugins/BasisImporter/Test/rgba-2images-pow2.basis
+ src/MagnumPlugins/BasisImporter/Test/rgba-2images.basis
+ src/MagnumPlugins/BasisImporter/Test/rgba-31x13.png
+ src/MagnumPlugins/BasisImporter/Test/rgba-32x64.png
+ src/MagnumPlugins/BasisImporter/Test/rgba-pow2.basis
+ src/MagnumPlugins/BasisImporter/Test/rgba.basis
+11 −7 src/MagnumPlugins/DdsImporter/DdsImporter.cpp
+4 −8 src/MagnumPlugins/DdsImporter/DdsImporter.h
+3 −0 src/MagnumPlugins/DdsImporter/Test/CMakeLists.txt
+10 −2 src/MagnumPlugins/DdsImporter/Test/DdsImporterTest.cpp
+2 −2 src/MagnumPlugins/DevIlImageImporter/DevIlImageImporter.cpp
+1 −1 src/MagnumPlugins/DevIlImageImporter/DevIlImageImporter.h
+3 −0 src/MagnumPlugins/DevIlImageImporter/Test/CMakeLists.txt
+3 −0 src/MagnumPlugins/DrFlacAudioImporter/Test/CMakeLists.txt
+3 −0 src/MagnumPlugins/DrMp3AudioImporter/Test/CMakeLists.txt
+3 −0 src/MagnumPlugins/DrWavAudioImporter/Test/CMakeLists.txt
+3 −0 src/MagnumPlugins/Faad2AudioImporter/Test/CMakeLists.txt
+3 −0 src/MagnumPlugins/FreeTypeFont/Test/CMakeLists.txt
+4 −3 src/MagnumPlugins/HarfBuzzFont/Test/CMakeLists.txt
+6 −0 src/MagnumPlugins/JpegImageConverter/Test/CMakeLists.txt
+2 −2 src/MagnumPlugins/JpegImporter/JpegImporter.cpp
+1 −1 src/MagnumPlugins/JpegImporter/JpegImporter.h
+3 −0 src/MagnumPlugins/JpegImporter/Test/CMakeLists.txt
+3 −0 src/MagnumPlugins/MiniExrImageConverter/Test/CMakeLists.txt
+44 −9 src/MagnumPlugins/OpenGexImporter/OpenGexImporter.cpp
+4 −1 src/MagnumPlugins/OpenGexImporter/OpenGexImporter.h
+17 −0 src/MagnumPlugins/OpenGexImporter/Test/CMakeLists.txt
+58 −0 src/MagnumPlugins/OpenGexImporter/Test/OpenGexImporterTest.cpp
+1 −0 src/MagnumPlugins/OpenGexImporter/Test/configure.h.cmake
+ src/MagnumPlugins/OpenGexImporter/Test/mips.dds
+11 −0 src/MagnumPlugins/OpenGexImporter/Test/texture-mips.ogex
+6 −0 src/MagnumPlugins/PngImageConverter/Test/CMakeLists.txt
+2 −2 src/MagnumPlugins/PngImporter/PngImporter.cpp
+1 −1 src/MagnumPlugins/PngImporter/PngImporter.h
+3 −0 src/MagnumPlugins/PngImporter/Test/CMakeLists.txt
+1 −1 src/MagnumPlugins/StanfordImporter/StanfordImporter.cpp
+3 −0 src/MagnumPlugins/StanfordImporter/Test/CMakeLists.txt
+6 −0 src/MagnumPlugins/StbImageConverter/Test/CMakeLists.txt
+2 −2 src/MagnumPlugins/StbImageImporter/StbImageImporter.cpp
+1 −1 src/MagnumPlugins/StbImageImporter/StbImageImporter.h
+3 −0 src/MagnumPlugins/StbImageImporter/Test/CMakeLists.txt
+3 −0 src/MagnumPlugins/StbTrueTypeFont/Test/CMakeLists.txt
+3 −0 src/MagnumPlugins/StbVorbisAudioImporter/Test/CMakeLists.txt
+9 −0 src/MagnumPlugins/TinyGltfImporter/Test/CMakeLists.txt
+1 −1 src/MagnumPlugins/TinyGltfImporter/Test/README.md
+64 −0 src/MagnumPlugins/TinyGltfImporter/Test/TinyGltfImporterTest.cpp
+ src/MagnumPlugins/TinyGltfImporter/Test/texture.basis
+54 −19 src/MagnumPlugins/TinyGltfImporter/TinyGltfImporter.cpp
+4 −1 src/MagnumPlugins/TinyGltfImporter/TinyGltfImporter.h
89 changes: 54 additions & 35 deletions src/esp/assets/ResourceManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1331,48 +1331,67 @@ void ResourceManager::loadTextures(Importer& importer, MeshMetaData* metaData) {
continue;
}

// TODO:
// it seems we have a way to just load the image once in this case,
// as long as the image2DName include the full path to the image
Corrade::Containers::Optional<Magnum::Trade::ImageData2D> imageData =
importer.image2D(textureData->image());
Magnum::GL::TextureFormat format;
if (imageData && imageData->isCompressed())
format = Mn::GL::textureFormat(imageData->compressedFormat());
else if (imageData && imageData->format() == Magnum::PixelFormat::RGB8Unorm)
format = compressTextures_
? Magnum::GL::TextureFormat::CompressedRGBS3tcDxt1
: Magnum::GL::TextureFormat::RGB8;
else if (imageData &&
imageData->format() == Magnum::PixelFormat::RGBA8Unorm)
format = compressTextures_
? Magnum::GL::TextureFormat::CompressedRGBAS3tcDxt1
: Magnum::GL::TextureFormat::RGBA8;
else {
LOG(ERROR) << "Cannot load texture image, skipping";
currentTexture = nullptr;
continue;
}

// Configure the texture
Magnum::GL::Texture2D& texture =
*(textures_[textureStart + iTexture].get());
Mn::GL::Texture2D& texture = *(textures_[textureStart + iTexture].get());
texture.setMagnificationFilter(textureData->magnificationFilter())
.setMinificationFilter(textureData->minificationFilter(),
textureData->mipmapFilter())
.setWrapping(textureData->wrapping().xy());

if (!imageData->isCompressed()) {
texture
.setStorage(Magnum::Math::log2(imageData->size().max()) + 1, format,
imageData->size())
.setSubImage(0, {}, *imageData)
.generateMipmap();
} else {
texture.setStorage(1, format, imageData->size())
.setCompressedSubImage(0, {}, *imageData);
// TODO: load mips from the Basis file once Magnum supports that
// Load all mip levels
const std::uint32_t levelCount =
importer.image2DLevelCount(textureData->image());
bool generateMipmap = false;
for (std::uint32_t level = 0; level != levelCount; ++level) {
// TODO:
// it seems we have a way to just load the image once in this case,
// as long as the image2DName include the full path to the image
Cr::Containers::Optional<Mn::Trade::ImageData2D> image =
importer.image2D(textureData->image(), level);
if (!image) {
LOG(ERROR) << "Cannot load texture image, skipping";
currentTexture = nullptr;
break;
}

Mn::GL::TextureFormat format;
if (image->isCompressed()) {
format = Mn::GL::textureFormat(image->compressedFormat());
} else if (compressTextures_ &&
image->format() == Mn::PixelFormat::RGBA8Unorm) {
format = Mn::GL::TextureFormat::CompressedRGBAS3tcDxt1;
} else if (compressTextures_ &&
image->format() == Mn::PixelFormat::RGB8Unorm) {
format = Mn::GL::TextureFormat::CompressedRGBS3tcDxt1;
} else {
format = Mn::GL::textureFormat(image->format());
}

// For the very first level, allocate the texture
if (level == 0) {
// If there is just one level and the image is not compressed, we'll
// generate mips ourselves
if (levelCount == 1 && !image->isCompressed()) {
texture.setStorage(Mn::Math::log2(image->size().max()) + 1, format,
image->size());
generateMipmap = true;
} else
texture.setStorage(levelCount, format, image->size());
}

if (image->isCompressed())
texture.setCompressedSubImage(level, {}, *image);
else
texture.setSubImage(level, {}, *image);
}

// Mip level loading failed, fail the whole texture
if (currentTexture == nullptr)
continue;

// Generate a mipmap if requested
if (generateMipmap)
texture.generateMipmap();
}
}

Expand Down