From dd5208b0ba248990e92b71f6c420757eb06c4b9c Mon Sep 17 00:00:00 2001 From: Robert Bragg Date: Wed, 21 Sep 2011 20:04:44 +0100 Subject: [PATCH] arbfp: assume GL_TEXTURE_2D target for NULL texture During arbfp codegen we weren't checking for NULL textures and so we would crash when trying to query a NULL texture's GL texture target. Since NULL texture targets result in ctx->default_gl_texture_2d_tex being bound we can assume that a NULL texture corresponds to a GL_TEXTURE_2D target. Reviewed-by: Neil Roberts --- cogl/cogl-pipeline-fragend-arbfp.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/cogl/cogl-pipeline-fragend-arbfp.c b/cogl/cogl-pipeline-fragend-arbfp.c index e121e68c4..1eae0e0a0 100644 --- a/cogl/cogl-pipeline-fragend-arbfp.c +++ b/cogl/cogl-pipeline-fragend-arbfp.c @@ -390,7 +390,10 @@ setup_arg (CoglPipeline *pipeline, arg->name = "texel%d"; arg->texture_unit = _cogl_pipeline_layer_get_unit_index (layer); texture = _cogl_pipeline_layer_get_texture (layer); - cogl_texture_get_gl_texture (texture, NULL, &gl_target); + if (texture) + cogl_texture_get_gl_texture (texture, NULL, &gl_target); + else + gl_target = GL_TEXTURE_2D; setup_texture_source (shader_state, arg->texture_unit, gl_target); break; case COGL_PIPELINE_COMBINE_SOURCE_CONSTANT: @@ -423,7 +426,10 @@ setup_arg (CoglPipeline *pipeline, arg->name = "texture[%d]"; arg->texture_unit = src - GL_TEXTURE0; texture = _cogl_pipeline_layer_get_texture (layer); - cogl_texture_get_gl_texture (texture, NULL, &gl_target); + if (texture) + cogl_texture_get_gl_texture (texture, NULL, &gl_target); + else + gl_target = GL_TEXTURE_2D; setup_texture_source (shader_state, arg->texture_unit, gl_target); }