diff --git a/src/Physics/Implementation/BoxRenderer.cpp b/src/Physics/Implementation/BoxRenderer.cpp index 472af6781..31b609e73 100644 --- a/src/Physics/Implementation/BoxRenderer.cpp +++ b/src/Physics/Implementation/BoxRenderer.cpp @@ -28,8 +28,8 @@ namespace { template struct BoxMesh {}; template<> struct BoxMesh<2> { - constexpr static char shader[] = "shader2d"; - constexpr static char key[] = "box2d"; + constexpr static ResourceKey shader() { return {"shader2d"}; } + constexpr static ResourceKey key() { return {"box2d"}; } static Mesh* mesh(Buffer* buffer) { Primitives::Square square; @@ -42,8 +42,8 @@ namespace { }; template<> struct BoxMesh<3> { - constexpr static char shader[] = "shader3d"; - constexpr static char key[] = "box3d"; + constexpr static ResourceKey shader() { return {"shader3d"}; } + constexpr static ResourceKey key() { return {"box3d"}; } static Mesh* mesh(Buffer* buffer) { Primitives::Cube cube; @@ -56,12 +56,7 @@ namespace { }; } -constexpr char BoxMesh<2>::shader[]; -constexpr char BoxMesh<2>::key[]; -constexpr char BoxMesh<3>::shader[]; -constexpr char BoxMesh<3>::key[]; - -template BoxRenderer::BoxRenderer(Box& box, ResourceKey options, typename SceneGraph::AbstractObject::ObjectType* parent): AbstractDebugRenderer(BoxMesh::shader, BoxMesh::key, options, parent), buffer(DebugDrawResourceManager::instance()->get(BoxMesh::key)), box(box) { +template BoxRenderer::BoxRenderer(Box& box, ResourceKey options, typename SceneGraph::AbstractObject::ObjectType* parent): AbstractDebugRenderer(BoxMesh::shader(), BoxMesh::key(), options, parent), buffer(DebugDrawResourceManager::instance()->get(BoxMesh::key())), box(box) { if(!this->mesh) { DebugDrawResourceManager::instance()->set(this->buffer.key(), new Buffer, ResourceDataState::Final, ResourcePolicy::Manual); DebugDrawResourceManager::instance()->set(this->mesh.key(), BoxMesh::mesh(buffer), ResourceDataState::Final, ResourcePolicy::Manual); diff --git a/src/Shaders/FlatShader.cpp b/src/Shaders/FlatShader.cpp index 69d15c3a0..77b5778f6 100644 --- a/src/Shaders/FlatShader.cpp +++ b/src/Shaders/FlatShader.cpp @@ -26,13 +26,13 @@ namespace { template struct ShaderName {}; template<> struct ShaderName<2> { - constexpr static const char* Vertex = "FlatShader2D.vert"; - constexpr static const char* Fragment = "FlatShader2D.frag"; + constexpr static const char* vertex() { return "FlatShader2D.vert"; } + constexpr static const char* fragment() { return "FlatShader2D.frag"; } }; template<> struct ShaderName<3> { - constexpr static const char* Vertex = "FlatShader3D.vert"; - constexpr static const char* Fragment = "FlatShader3D.frag"; + constexpr static const char* vertex() { return "FlatShader3D.vert"; } + constexpr static const char* fragment() { return "FlatShader3D.frag"; } }; } @@ -47,12 +47,12 @@ template FlatShader::FlatShader() { Shader vertexShader(v, Shader::Type::Vertex); vertexShader.addSource(rs.get("compatibility.glsl")); - vertexShader.addSource(rs.get(ShaderName::Vertex)); + vertexShader.addSource(rs.get(ShaderName::vertex())); attachShader(vertexShader); Shader fragmentShader(v, Shader::Type::Fragment); fragmentShader.addSource(rs.get("compatibility.glsl")); - fragmentShader.addSource(rs.get(ShaderName::Fragment)); + fragmentShader.addSource(rs.get(ShaderName::fragment())); attachShader(fragmentShader); #ifndef MAGNUM_TARGET_GLES