diff --git a/src/MagnumPlugins/BasisImporter/BasisImporter.cpp b/src/MagnumPlugins/BasisImporter/BasisImporter.cpp index 163a14a81..842a8f849 100644 --- a/src/MagnumPlugins/BasisImporter/BasisImporter.cpp +++ b/src/MagnumPlugins/BasisImporter/BasisImporter.cpp @@ -240,12 +240,9 @@ Containers::Optional BasisImporter::doImage2D(UnsignedInt index) { CORRADE_INTERNAL_ASSERT_OUTPUT(_state->transcoder->get_image_level_desc(_state->in.data(), _state->in.size(), index, level, origWidth, origHeight, totalBlocks)); /* No flags used by transcode_image_level() by default */ - const std::uint32_t flags = 0; - if(!_state->fileInfo.m_y_flipped) { - /** @todo replace with the flag once the PR is submitted */ - Warning{} << "Trade::BasisImporter::image2D(): the image was not encoded Y-flipped, imported data will have wrong orientation"; - //flags |= basist::basisu_transcoder::cDecodeFlagsFlipY; - } + std::uint32_t flags = 0; + if(!_state->fileInfo.m_y_flipped) + flags |= basist::basisu_transcoder::cDecodeFlagsFlipY; Vector2i size{Int(origWidth), Int(origHeight)}; UnsignedInt dataSize, rowStride, outputSizeInBlocksOrPixels, outputRowsInPixels; diff --git a/src/MagnumPlugins/BasisImporter/BasisImporter.h b/src/MagnumPlugins/BasisImporter/BasisImporter.h index d5325d75b..b103cb5b8 100644 --- a/src/MagnumPlugins/BasisImporter/BasisImporter.h +++ b/src/MagnumPlugins/BasisImporter/BasisImporter.h @@ -111,23 +111,6 @@ OpenGL, OpenGL ES and WebGL extensions, in its full ugly glory: -@m_class{m-block m-warning} - -@par Y-flipping - While all importers for uncompressed image data are doing an Y-flip on - import to have origin at the bottom (as expected by OpenGL), it's a - non-trivial operation with compressed images. In case of Basis, you can - pass a `-y_flip` flag to the `basisu` tool to Y-flip the image - * *during encoding*, however right now there's no way do so on import. To - inform the user, the importer checks for the Y-flip flag in the file and if - it's not there, prints a warning about the data having wrong orientation. -@par - To account for this on the application side for files that you don't have a - control of, flip texture coordinates of the mesh or patch texture data - loading in the shader. - - - @m_class{m-block m-success} @thirdparty This plugin makes use of the diff --git a/src/MagnumPlugins/BasisImporter/Test/BasisImporterTest.cpp b/src/MagnumPlugins/BasisImporter/Test/BasisImporterTest.cpp index 47c5c10b4..4d867a2da 100644 --- a/src/MagnumPlugins/BasisImporter/Test/BasisImporterTest.cpp +++ b/src/MagnumPlugins/BasisImporter/Test/BasisImporterTest.cpp @@ -281,14 +281,8 @@ void BasisImporterTest::rgbUncompressedNoFlip() { CORRADE_VERIFY(importer->openFile(Utility::Directory::join(BASISIMPORTER_TEST_DIR, "rgb-noflip.basis"))); - Containers::Optional image; - std::ostringstream out; - { - Warning redirectWarning{&out}; - image = importer->image2D(0); - } + Containers::Optional image = importer->image2D(0); CORRADE_VERIFY(image); - CORRADE_COMPARE(out.str(), "Trade::BasisImporter::image2D(): the image was not encoded Y-flipped, imported data will have wrong orientation\n"); CORRADE_VERIFY(!image->isCompressed()); CORRADE_COMPARE(image->format(), PixelFormat::RGBA8Unorm); CORRADE_COMPARE(image->size(), (Vector2i{63, 27})); @@ -298,7 +292,8 @@ void BasisImporterTest::rgbUncompressedNoFlip() { if(_manager.loadState("PngImporter") == PluginManager::LoadState::NotFound) CORRADE_SKIP("PngImporter plugin not found, cannot test contents"); - CORRADE_COMPARE_WITH(Containers::arrayCast(image->pixels().flipped<0>()), + /* Flipping is done on import */ + CORRADE_COMPARE_WITH(Containers::arrayCast(image->pixels()), Utility::Directory::join(BASISIMPORTER_TEST_DIR, "rgb-63x27.png"), /* There are moderately significant compression artifacts */ (DebugTools::CompareImageToFile{_manager, 49.67f, 8.326f}));