From dd9574d7a585bd470f2fe28f73e6d31430293dc9 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Sat, 1 Oct 2011 08:27:46 -0600 Subject: [PATCH] mesa: number of combiner terms to pop depends on GL_NV_texture_env_combine4 If GL_NV_texture_env_combine4 is not supported, setting the fourth combiner term would generate a GL error. Of course, I noticed this right after committing the previous patch to use a loop in the first place. Note that GL_EXT_texture_env_combine is always supported so the first three combiner terms are always accepted. --- src/mesa/main/attrib.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mesa/main/attrib.c b/src/mesa/main/attrib.c index df7116e..e67957d 100644 --- a/src/mesa/main/attrib.c +++ b/src/mesa/main/attrib.c @@ -720,8 +720,9 @@ pop_texture_group(struct gl_context *ctx, struct texture_state *texstate) _mesa_TexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, unit->Combine.ModeA); { + const GLuint n = ctx->Extensions.NV_texture_env_combine4 ? 4 : 3; GLuint i; - for (i = 0; i < MAX_COMBINER_TERMS; i++) { + for (i = 0; i < n; i++) { _mesa_TexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB + i, unit->Combine.SourceRGB[i]); _mesa_TexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA + i, -- 2.7.4