summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/attrib.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/main/attrib.c')
-rw-r--r--src/mesa/main/attrib.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/mesa/main/attrib.c b/src/mesa/main/attrib.c
index 0df8d230500..4654704afd1 100644
--- a/src/mesa/main/attrib.c
+++ b/src/mesa/main/attrib.c
@@ -744,6 +744,18 @@ pop_texture_group(GLcontext *ctx, const struct gl_texture_attrib *texAttrib)
target = GL_TEXTURE_RECTANGLE_NV;
obj = &unit->SavedRect;
break;
+ case 5:
+ if (!ctx->Extensions.MESA_texture_array)
+ continue;
+ target = GL_TEXTURE_1D_ARRAY_EXT;
+ obj = &unit->Saved1DArray;
+ break;
+ case 6:
+ if (!ctx->Extensions.MESA_texture_array)
+ continue;
+ target = GL_TEXTURE_2D_ARRAY_EXT;
+ obj = &unit->Saved2DArray;
+ break;
default:
; /* silence warnings */
}
@@ -765,7 +777,8 @@ pop_texture_group(GLcontext *ctx, const struct gl_texture_attrib *texAttrib)
_mesa_TexParameterf(target, GL_TEXTURE_MIN_LOD, obj->MinLod);
_mesa_TexParameterf(target, GL_TEXTURE_MAX_LOD, obj->MaxLod);
_mesa_TexParameteri(target, GL_TEXTURE_BASE_LEVEL, obj->BaseLevel);
- _mesa_TexParameteri(target, GL_TEXTURE_MAX_LEVEL, obj->MaxLevel);
+ if (target != GL_TEXTURE_RECTANGLE_ARB)
+ _mesa_TexParameteri(target, GL_TEXTURE_MAX_LEVEL, obj->MaxLevel);
if (ctx->Extensions.EXT_texture_filter_anisotropic) {
_mesa_TexParameterf(target, GL_TEXTURE_MAX_ANISOTROPY_EXT,
obj->MaxAnisotropy);