main: Allow ctx == NULL in _mesa_validate_shader_target().

This will allow this function to be used in circumstances where there
is no context available, such as when building built-in GLSL
functions.

Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
Paul Berry 2014-01-09 15:30:10 -08:00
parent 6ab2a6148a
commit 020919b2ae

View file

@ -174,13 +174,20 @@ _mesa_copy_string(GLchar *dst, GLsizei maxLength,
bool
_mesa_validate_shader_target(const struct gl_context *ctx, GLenum type)
{
/* Note: when building built-in GLSL functions, this function may be
* invoked with ctx == NULL. In that case, we can only validate that it's
* a shader target we recognize, not that it's supported in the current
* context. But that's fine--we don't need any further validation than
* that when building built-in GLSL functions.
*/
switch (type) {
case GL_FRAGMENT_SHADER:
return ctx->Extensions.ARB_fragment_shader;
return ctx == NULL || ctx->Extensions.ARB_fragment_shader;
case GL_VERTEX_SHADER:
return ctx->Extensions.ARB_vertex_shader;
return ctx == NULL || ctx->Extensions.ARB_vertex_shader;
case GL_GEOMETRY_SHADER_ARB:
return _mesa_has_geometry_shaders(ctx);
return ctx == NULL || _mesa_has_geometry_shaders(ctx);
default:
return false;
}