From 37c8cfd38440d5096aaec87fa15855e9e9eb0c54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Thu, 20 May 2021 13:14:15 +0200 Subject: [PATCH] Shaders: MeshVisualizer color map binding was done in a wrong branch. It probably didn't matter as much as the only platform without ARB_explicit_uniform_location is Mac, which doesn't have ARB_shading_language_420pack either. --- src/Magnum/Shaders/MeshVisualizerGL.cpp | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/Magnum/Shaders/MeshVisualizerGL.cpp b/src/Magnum/Shaders/MeshVisualizerGL.cpp index 9fd3c2398..a81eeb037 100644 --- a/src/Magnum/Shaders/MeshVisualizerGL.cpp +++ b/src/Magnum/Shaders/MeshVisualizerGL.cpp @@ -293,11 +293,21 @@ MeshVisualizerGL2D::MeshVisualizerGL2D(const Flags flags): Implementation::MeshV #ifndef MAGNUM_TARGET_GLES2 if(flags & (Flag::InstancedObjectId|Flag::VertexId|Flag::PrimitiveIdFromVertexId)) { _colorMapOffsetScaleUniform = uniformLocation("colorMapOffsetScale"); - setUniform(uniformLocation("colorMapTexture"), ColorMapTextureUnit); } #endif } + #ifndef MAGNUM_TARGET_GLES2 + #ifndef MAGNUM_TARGET_GLES + if(flags && !context.isExtensionSupported(version)) + #endif + { + if(flags & (Flag::InstancedObjectId|Flag::VertexId|Flag::PrimitiveIdFromVertexId)) { + setUniform(uniformLocation("colorMapTexture"), ColorMapTextureUnit); + } + } + #endif + /* Set defaults in OpenGL ES (for desktop they are set in shader code itself) */ #ifdef MAGNUM_TARGET_GLES setTransformationProjectionMatrix(Matrix3{Math::IdentityInit}); @@ -509,7 +519,6 @@ MeshVisualizerGL3D::MeshVisualizerGL3D(const Flags flags): Implementation::MeshV #ifndef MAGNUM_TARGET_GLES2 if(flags & (Flag::InstancedObjectId|Flag::VertexId|Flag::PrimitiveIdFromVertexId)) { _colorMapOffsetScaleUniform = uniformLocation("colorMapOffsetScale"); - setUniform(uniformLocation("colorMapTexture"), ColorMapTextureUnit); } #endif #if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL) @@ -521,6 +530,17 @@ MeshVisualizerGL3D::MeshVisualizerGL3D(const Flags flags): Implementation::MeshV #endif } + #ifndef MAGNUM_TARGET_GLES2 + #ifndef MAGNUM_TARGET_GLES + if(flags && !context.isExtensionSupported(version)) + #endif + { + if(flags & (Flag::InstancedObjectId|Flag::VertexId|Flag::PrimitiveIdFromVertexId)) { + setUniform(uniformLocation("colorMapTexture"), ColorMapTextureUnit); + } + } + #endif + /* Set defaults in OpenGL ES (for desktop they are set in shader code itself) */ #ifdef MAGNUM_TARGET_GLES setTransformationMatrix(Matrix4{Math::IdentityInit});