diff --git a/src/Plugins/TgaImporter/TgaImporter.cpp b/src/Plugins/TgaImporter/TgaImporter.cpp index 12aeac28f..b858bc20b 100644 --- a/src/Plugins/TgaImporter/TgaImporter.cpp +++ b/src/Plugins/TgaImporter/TgaImporter.cpp @@ -42,6 +42,16 @@ namespace Magnum { namespace Trade { +namespace { + constexpr Math::Vector3 bgr(const Math::Vector3& vec) { + return swizzle<'b', 'g', 'r'>(vec); + } + + constexpr Math::Vector4 bgra(const Math::Vector4& vec) { + return swizzle<'b', 'g', 'r', 'a'>(vec); + } +} + TgaImporter::TgaImporter(): in(nullptr) {} TgaImporter::TgaImporter(PluginManager::AbstractManager* manager, std::string plugin): AbstractImporter(manager, std::move(plugin)), in(nullptr) {} @@ -145,12 +155,10 @@ ImageData2D* TgaImporter::doImage2D(UnsignedInt) { #ifdef MAGNUM_TARGET_GLES if(format == ImageFormat::RGB) { auto pixels = reinterpret_cast*>(data); - std::transform(pixels, pixels + size.product(), pixels, - [](Math::Vector3 pixel) { return swizzle<'b', 'g', 'r'>(pixel); }); + std::transform(pixels, pixels + size.product(), pixels, bgr); } else if(format == ImageFormat::RGBA) { auto pixels = reinterpret_cast*>(data); - std::transform(pixels, pixels + size.product(), pixels, - [](Math::Vector4 pixel) { return swizzle<'b', 'g', 'r', 'a'>(pixel); }); + std::transform(pixels, pixels + size.product(), pixels, bgra); } #endif