From 7bef96e71d2910d3dc9513079c256db30959f41a Mon Sep 17 00:00:00 2001 From: rdb Date: Thu, 3 Nov 2016 11:11:02 +0100 Subject: [PATCH] Don't give misleading error when image shader input is missing --- panda/src/glstuff/glShaderContext_src.cxx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/panda/src/glstuff/glShaderContext_src.cxx b/panda/src/glstuff/glShaderContext_src.cxx index 60563af5db..3e1fe026f9 100644 --- a/panda/src/glstuff/glShaderContext_src.cxx +++ b/panda/src/glstuff/glShaderContext_src.cxx @@ -2413,16 +2413,24 @@ update_shader_texture_bindings(ShaderContext *prev) { Texture *tex; const ShaderInput *sinp = _glgsg->_target_shader->get_shader_input(input._name); - if (sinp->get_value_type() == ShaderInput::M_texture_image) { + switch (sinp->get_value_type()) { + case ShaderInput::M_texture_image: param = (const ParamTextureImage *)sinp->get_param(); tex = param->get_texture(); + break; - } else if (sinp->get_value_type() == ShaderInput::M_texture) { + case ShaderInput::M_texture: // People find it convenient to be able to pass a texture without // further ado. tex = sinp->get_texture(); + break; - } else { + case ShaderInput::M_invalid: + GLCAT.error() + << "Missing texture image binding input " << *input._name << "\n"; + continue; + + default: GLCAT.error() << "Mismatching type for parameter " << *input._name << ", expected texture image binding\n"; continue;