From dd51e272473aa3c0722fb11a432ca8ce1e1b36e2 Mon Sep 17 00:00:00 2001 From: Vladislav Oleshko Date: Wed, 24 Aug 2022 19:21:44 +0300 Subject: [PATCH] Fix MeshVisualizer & tests --- src/Magnum/Shaders/MeshVisualizerGL.cpp | 25 +++++++++---------- src/Magnum/Shaders/MeshVisualizerGL.h | 6 ++--- .../Shaders/Test/MeshVisualizerGLTest.cpp | 6 ++--- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/src/Magnum/Shaders/MeshVisualizerGL.cpp b/src/Magnum/Shaders/MeshVisualizerGL.cpp index ce9d8b092..6aaaac536 100644 --- a/src/Magnum/Shaders/MeshVisualizerGL.cpp +++ b/src/Magnum/Shaders/MeshVisualizerGL.cpp @@ -903,19 +903,7 @@ MeshVisualizerGL3D::CompileState MeshVisualizerGL3D::compile(Flags flags return CompileState{std::move(out), std::move(vert), std::move(frag), std::move(geom), flags, version}; } -MeshVisualizerGL3D::MeshVisualizerGL3D(Flags flags) : MeshVisualizerGL3D{compile(flags)} {} - -#ifndef MAGNUM_TARGET_GLES2 -MeshVisualizerGL3D::CompileState MeshVisualizerGL3D::compile(Flags flags) { - return compile(flags, 1, 1); -} - -MeshVisualizerGL3D::MeshVisualizerGL3D(Flags flags, UnsignedInt materialCount, UnsignedInt drawCount) - : MeshVisualizerGL3D{compile(flags, materialCount, drawCount)} {} -#endif - -MeshVisualizerGL3D::MeshVisualizerGL3D(CompileState&& cs) -: MeshVisualizerGL3D{static_cast(std::move(cs))} { +MeshVisualizerGL3D::MeshVisualizerGL3D(CompileState&& cs): MeshVisualizerGL3D{static_cast(std::move(cs))} { if (id() == 0) return; CORRADE_INTERNAL_ASSERT_OUTPUT(checkLink()); @@ -1055,6 +1043,17 @@ MeshVisualizerGL3D::MeshVisualizerGL3D(CompileState&& cs) static_cast(version); } +MeshVisualizerGL3D::MeshVisualizerGL3D(Flags flags) : MeshVisualizerGL3D{compile(flags)} {} + +#ifndef MAGNUM_TARGET_GLES2 +MeshVisualizerGL3D::CompileState MeshVisualizerGL3D::compile(Flags flags) { + return compile(flags, 1, 1); +} + +MeshVisualizerGL3D::MeshVisualizerGL3D(Flags flags, UnsignedInt materialCount, UnsignedInt drawCount): + MeshVisualizerGL3D{compile(flags, materialCount, drawCount)} {} +#endif + MeshVisualizerGL3D& MeshVisualizerGL3D::setTransformationMatrix(const Matrix4& matrix) { #ifndef MAGNUM_TARGET_GLES2 CORRADE_ASSERT(!(flags() >= Flag::UniformBuffers), diff --git a/src/Magnum/Shaders/MeshVisualizerGL.h b/src/Magnum/Shaders/MeshVisualizerGL.h index 33ec8e329..aa58e7f45 100644 --- a/src/Magnum/Shaders/MeshVisualizerGL.h +++ b/src/Magnum/Shaders/MeshVisualizerGL.h @@ -886,13 +886,13 @@ class MAGNUM_SHADERS_EXPORT MeshVisualizerGL2D: public Implementation::MeshVisua Int _transformationProjectionMatrixUniform{9}; }; -class MeshVisualizerGL2D::CompileState : public MeshVisualizerGL2D { +class MeshVisualizerGL2D::CompileState: public MeshVisualizerGL2D { private: friend class MeshVisualizerGL2D; - explicit CompileState(NoCreateT) : MeshVisualizerGL2D{NoCreate}, _vert{NoCreate}, _frag{NoCreate} {} + explicit CompileState(NoCreateT): MeshVisualizerGL2D{NoCreate}, _vert{NoCreate}, _frag{NoCreate} {} - CompileState(MeshVisualizerGL2D&& shader, GL::Shader&& vert, GL::Shader&& frag, Containers::Optional&& geom, Flags flags, GL::Version version) : + CompileState(MeshVisualizerGL2D&& shader, GL::Shader&& vert, GL::Shader&& frag, Containers::Optional&& geom, Flags flags, GL::Version version): MeshVisualizerGL2D{std::move(shader)}, _vert{std::move(vert)}, _frag{std::move(frag)}, _geom{std::move(geom)}, _flags{flags}, _version{version} {} GL::Shader _vert, _frag; diff --git a/src/Magnum/Shaders/Test/MeshVisualizerGLTest.cpp b/src/Magnum/Shaders/Test/MeshVisualizerGLTest.cpp index f822d91ed..e08e7bd82 100644 --- a/src/Magnum/Shaders/Test/MeshVisualizerGLTest.cpp +++ b/src/Magnum/Shaders/Test/MeshVisualizerGLTest.cpp @@ -1546,6 +1546,7 @@ void MeshVisualizerGLTest::constructUniformBuffers2DAsync() { } #endif + void MeshVisualizerGLTest::construct3D() { auto&& data = ConstructData3D[testCaseInstanceId()]; setTestCaseDescription(data.name); @@ -1612,10 +1613,9 @@ void MeshVisualizerGLTest::construct3DAsync() { while(!compileState.isLinkFinished()) Utility::System::sleep(100); - // TODO: FIXME MeshVisualizerGL3D shader{std::move(compileState)}; - MeshVisualizerGL3D shader{MeshVisualizerGL3D::Flag::Wireframe|MeshVisualizerGL3D::Flag::NoGeometryShader}; + MeshVisualizerGL3D shader{std::move(compileState)}; CORRADE_COMPARE(shader.flags(), MeshVisualizerGL3D::Flag::Wireframe|MeshVisualizerGL3D::Flag::NoGeometryShader); - CORRADE_VERIFY(compileState.isLinkFinished()); + CORRADE_VERIFY(shader.isLinkFinished()); CORRADE_VERIFY(shader.id()); { #if defined(CORRADE_TARGET_APPLE) && !defined(MAGNUM_TARGET_GLES)