diff --git a/data/shaders/glow_object.vert b/data/shaders/glow_object.vert index e7b7cddab..78cd0279a 100644 --- a/data/shaders/glow_object.vert +++ b/data/shaders/glow_object.vert @@ -1,15 +1,16 @@ +#if __VERSION__ >= 330 layout(location = 0) in vec3 Position; -layout(location = 1) in vec3 Normal; -layout(location = 2) in vec4 Color; -layout(location = 3) in vec2 Texcoord; -layout(location = 5) in vec3 Tangent; -layout(location = 6) in vec3 Bitangent; - layout(location = 7) in vec3 Origin; layout(location = 8) in vec3 Orientation; layout(location = 9) in vec3 Scale; -layout(location = 15) in vec4 GlowColor; - +layout(location = 10) in vec4 misc_data; +#else +in vec3 Position; +in vec3 Origin; +in vec3 Orientation; +in vec3 Scale; +in vec4 misc_data; +#endif flat out vec4 glowColor; #stk_include "utils/getworldmatrix.vert" @@ -19,5 +20,5 @@ void main(void) mat4 ModelMatrix = getWorldMatrix(Origin, Orientation, Scale); mat4 TransposeInverseModelView = transpose(getInverseWorldMatrix(Origin, Orientation, Scale) * InverseViewMatrix); gl_Position = ProjectionViewMatrix * ModelMatrix * vec4(Position, 1.); - glowColor = GlowColor; + glowColor = misc_data; } diff --git a/src/graphics/draw_policies.cpp b/src/graphics/draw_policies.cpp index 3595d212d..210f82a51 100644 --- a/src/graphics/draw_policies.cpp +++ b/src/graphics/draw_policies.cpp @@ -288,12 +288,7 @@ void IndirectDrawPolicy::drawGlow(const DrawCalls& draw_calls, const std::vector& glows) const { #if !defined(USE_GLES2) - //to draw Glow with indirect commands, we also need GL_ARB_explicit_attrib_location extension - //TODO: add a way to render glow without explicit attrib - if(CVS->isARBExplicitAttribLocationUsable()) - { - draw_calls.drawIndirectGlow(); - } + draw_calls.drawIndirectGlow(); #endif // !defined(USE_GLES2) } diff --git a/src/graphics/vao_manager.cpp b/src/graphics/vao_manager.cpp index 0a9914284..969f55e9d 100644 --- a/src/graphics/vao_manager.cpp +++ b/src/graphics/vao_manager.cpp @@ -217,9 +217,9 @@ template<> void VAOInstanceUtil::SetVertexAttrib() { SetVertexAttrib_impl(); - glEnableVertexAttribArray(15); - glVertexAttribPointer(15, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(GlowInstanceData), (GLvoid*)(9 * sizeof(float))); - glVertexAttribDivisorARB(15, 1); + glEnableVertexAttribArray(10); + glVertexAttribPointer(10, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(GlowInstanceData), (GLvoid*)(9 * sizeof(float))); + glVertexAttribDivisorARB(10, 1); }