From 020919b2ae76192f0f35c0901be0e1069a87b7f2 Mon Sep 17 00:00:00 2001 From: Paul Berry Date: Thu, 9 Jan 2014 15:30:10 -0800 Subject: [PATCH] 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 Reviewed-by: Brian Paul --- src/mesa/main/shaderapi.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c index 716e65968f3..2ab0a0cfde2 100644 --- a/src/mesa/main/shaderapi.c +++ b/src/mesa/main/shaderapi.c @@ -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; } -- 2.30.2