diff --git a/src/Magnum/TextureTools/DistanceFieldGL.cpp b/src/Magnum/TextureTools/DistanceFieldGL.cpp index b2cebe93b..ad3182d3c 100644 --- a/src/Magnum/TextureTools/DistanceFieldGL.cpp +++ b/src/Magnum/TextureTools/DistanceFieldGL.cpp @@ -143,19 +143,19 @@ DistanceFieldShader::DistanceFieldShader(const UnsignedInt radius) { } struct DistanceFieldGL::State { - explicit State(UnsignedInt radius): shader{radius}, radius{radius} {} + explicit State(UnsignedInt radius); DistanceFieldShader shader; UnsignedInt radius; GL::Mesh mesh; }; -DistanceFieldGL::DistanceFieldGL(const UnsignedInt radius): _state{InPlaceInit, radius} { +DistanceFieldGL::State::State(const UnsignedInt radius): shader{radius}, radius{radius} { #ifndef MAGNUM_TARGET_GLES MAGNUM_ASSERT_GL_EXTENSION_SUPPORTED(GL::Extensions::ARB::framebuffer_object); #endif - _state->mesh.setPrimitive(GL::MeshPrimitive::Triangles) + mesh.setPrimitive(GL::MeshPrimitive::Triangles) .setCount(3); #ifndef MAGNUM_TARGET_GLES2 @@ -167,10 +167,12 @@ DistanceFieldGL::DistanceFieldGL(const UnsignedInt radius): _state{InPlaceInit, {-1.0f, -3.0f}, { 3.0f, 1.0f} }; - _state->mesh.addVertexBuffer(GL::Buffer{triangle}, 0, DistanceFieldShader::Position()); + mesh.addVertexBuffer(GL::Buffer{triangle}, 0, DistanceFieldShader::Position()); } } +DistanceFieldGL::DistanceFieldGL(UnsignedInt radius): _state{InPlaceInit, radius} {} + DistanceFieldGL::DistanceFieldGL(NoCreateT) noexcept {} DistanceFieldGL::DistanceFieldGL(DistanceFieldGL&&) noexcept = default;