From 04176d52a89a029b45e8bcb7309037a3688ad9d9 Mon Sep 17 00:00:00 2001 From: Vincent Lejeune Date: Sat, 5 Apr 2014 20:16:15 +0200 Subject: [PATCH] Do not create shadow vao for ctx < gl 3.2 --- src/graphics/stkinstancedscenenode.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/graphics/stkinstancedscenenode.cpp b/src/graphics/stkinstancedscenenode.cpp index 78049e13c..f3c01bbee 100644 --- a/src/graphics/stkinstancedscenenode.cpp +++ b/src/graphics/stkinstancedscenenode.cpp @@ -77,9 +77,12 @@ void STKInstancedSceneNode::initinstancedvaostate(GLMesh &mesh, GeometricMateria glBindBuffer(GL_ARRAY_BUFFER, instances_vbo); glBufferData(GL_ARRAY_BUFFER, instance_pos.size() * sizeof(float), instance_pos.data(), GL_STATIC_DRAW); setInstanceAttribPointer(); - mesh.vao_shadow_pass = createVAO(mesh.vertex_buffer, mesh.index_buffer, MeshShader::InstancedShadowShader::attrib_position, -1, -1, -1, -1, -1, -1, mesh.Stride); - glBindBuffer(GL_ARRAY_BUFFER, instances_vbo); - setInstanceAttribPointer(); + if (irr_driver->getGLSLVersion() >= 150) + { + mesh.vao_shadow_pass = createVAO(mesh.vertex_buffer, mesh.index_buffer, MeshShader::InstancedShadowShader::attrib_position, -1, -1, -1, -1, -1, -1, mesh.Stride); + glBindBuffer(GL_ARRAY_BUFFER, instances_vbo); + setInstanceAttribPointer(); + } break; case FPSM_ALPHA_REF_TEXTURE: mesh.vao_first_pass = createVAO(mesh.vertex_buffer, mesh.index_buffer, @@ -88,9 +91,12 @@ void STKInstancedSceneNode::initinstancedvaostate(GLMesh &mesh, GeometricMateria glBindBuffer(GL_ARRAY_BUFFER, instances_vbo); glBufferData(GL_ARRAY_BUFFER, instance_pos.size() * sizeof(float), instance_pos.data(), GL_STATIC_DRAW); setInstanceAttribPointer(); - mesh.vao_shadow_pass = createVAO(mesh.vertex_buffer, mesh.index_buffer, MeshShader::InstancedRefShadowShader::attrib_position, MeshShader::InstancedRefShadowShader::attrib_texcoord, -1, -1, -1, -1, -1, mesh.Stride); - glBindBuffer(GL_ARRAY_BUFFER, instances_vbo); - setInstanceAttribPointer(); + if (irr_driver->getGLSLVersion() >= 150) + { + mesh.vao_shadow_pass = createVAO(mesh.vertex_buffer, mesh.index_buffer, MeshShader::InstancedRefShadowShader::attrib_position, MeshShader::InstancedRefShadowShader::attrib_texcoord, -1, -1, -1, -1, -1, mesh.Stride); + glBindBuffer(GL_ARRAY_BUFFER, instances_vbo); + setInstanceAttribPointer(); + } break; case FPSM_GRASS: mesh.vao_first_pass = createVAO(mesh.vertex_buffer, mesh.index_buffer,