diff options
Diffstat (limited to 'src/mesa/main')
-rw-r--r-- | src/mesa/main/context.c | 10 | ||||
-rw-r--r-- | src/mesa/main/teximage.c | 6 |
2 files changed, 12 insertions, 4 deletions
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index 4f2718140de..7576c8bc2c0 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -1,4 +1,4 @@ -/* $Id: context.c,v 1.145 2001/07/19 15:54:34 brianp Exp $ */ +/* $Id: context.c,v 1.146 2001/07/26 20:02:10 brianp Exp $ */ /* * Mesa 3-D graphics library @@ -1351,9 +1351,11 @@ alloc_proxy_textures( GLcontext *ctx ) ctx->Texture.Proxy1D->Image[i] = _mesa_alloc_texture_image(); ctx->Texture.Proxy2D->Image[i] = _mesa_alloc_texture_image(); ctx->Texture.Proxy3D->Image[i] = _mesa_alloc_texture_image(); + ctx->Texture.ProxyCubeMap->Image[i] = _mesa_alloc_texture_image(); if (!ctx->Texture.Proxy1D->Image[i] || !ctx->Texture.Proxy2D->Image[i] - || !ctx->Texture.Proxy3D->Image[i]) { + || !ctx->Texture.Proxy3D->Image[i] + || !ctx->Texture.ProxyCubeMap->Image[i]) { out_of_memory = GL_TRUE; } } @@ -1368,10 +1370,14 @@ alloc_proxy_textures( GLcontext *ctx ) if (ctx->Texture.Proxy3D->Image[i]) { _mesa_free_texture_image(ctx->Texture.Proxy3D->Image[i]); } + if (ctx->Texture.ProxyCubeMap->Image[i]) { + _mesa_free_texture_image(ctx->Texture.ProxyCubeMap->Image[i]); + } } _mesa_free_texture_object(NULL, ctx->Texture.Proxy1D); _mesa_free_texture_object(NULL, ctx->Texture.Proxy2D); _mesa_free_texture_object(NULL, ctx->Texture.Proxy3D); + _mesa_free_texture_object(NULL, ctx->Texture.ProxyCubeMap); return GL_FALSE; } else { diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index c856f331d95..4206062b136 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -1,4 +1,4 @@ -/* $Id: teximage.c,v 1.102 2001/07/23 16:18:18 brianp Exp $ */ +/* $Id: teximage.c,v 1.103 2001/07/26 20:02:10 brianp Exp $ */ /* * Mesa 3-D graphics library @@ -1525,7 +1525,9 @@ _mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat, texObj->Complete = GL_FALSE; ctx->NewState |= _NEW_TEXTURE; } - else if (target == GL_PROXY_TEXTURE_2D) { + else if (target == GL_PROXY_TEXTURE_2D || + (target == GL_PROXY_TEXTURE_CUBE_MAP_ARB && + ctx->Extensions.ARB_texture_cube_map)) { /* Proxy texture: check for errors and update proxy state */ GLenum error = texture_error_check(ctx, target, level, internalFormat, format, type, 2, |