summaryrefslogtreecommitdiffstats
path: root/src/mesa/swrast/s_context.c
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2012-02-19 20:08:52 -0700
committerBrian Paul <brianp@vmware.com>2012-02-24 08:03:04 -0700
commit32bf36106ea433038b524311fc10cc5b835862f1 (patch)
tree77ab12c5584d98b3b9857c9cb2ac81340dfe97d5 /src/mesa/swrast/s_context.c
parent401810b658133d9c968be1de7fb4102ec7c4d19e (diff)
downloadexternal_mesa3d-32bf36106ea433038b524311fc10cc5b835862f1.zip
external_mesa3d-32bf36106ea433038b524311fc10cc5b835862f1.tar.gz
external_mesa3d-32bf36106ea433038b524311fc10cc5b835862f1.tar.bz2
swrast: remove MAX_WIDTH arrays in stencil code
Use some per-context temporary arrays instead.
Diffstat (limited to 'src/mesa/swrast/s_context.c')
-rw-r--r--src/mesa/swrast/s_context.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/mesa/swrast/s_context.c b/src/mesa/swrast/s_context.c
index 2ebb649..49aa1d7 100644
--- a/src/mesa/swrast/s_context.c
+++ b/src/mesa/swrast/s_context.c
@@ -798,6 +798,19 @@ _swrast_CreateContext( struct gl_context *ctx )
ctx->swrast_context = swrast;
+ swrast->stencil_temp.buf1 = (GLubyte *) malloc(MAX_WIDTH * sizeof(GLubyte));
+ swrast->stencil_temp.buf2 = (GLubyte *) malloc(MAX_WIDTH * sizeof(GLubyte));
+ swrast->stencil_temp.buf3 = (GLubyte *) malloc(MAX_WIDTH * sizeof(GLubyte));
+ swrast->stencil_temp.buf4 = (GLubyte *) malloc(MAX_WIDTH * sizeof(GLubyte));
+
+ if (!swrast->stencil_temp.buf1 ||
+ !swrast->stencil_temp.buf2 ||
+ !swrast->stencil_temp.buf3 ||
+ !swrast->stencil_temp.buf4) {
+ _swrast_DestroyContext(ctx);
+ return GL_FALSE;
+ }
+
return GL_TRUE;
}
@@ -814,6 +827,12 @@ _swrast_DestroyContext( struct gl_context *ctx )
if (swrast->ZoomedArrays)
FREE( swrast->ZoomedArrays );
FREE( swrast->TexelBuffer );
+
+ free(swrast->stencil_temp.buf1);
+ free(swrast->stencil_temp.buf2);
+ free(swrast->stencil_temp.buf3);
+ free(swrast->stencil_temp.buf4);
+
FREE( swrast );
ctx->swrast_context = 0;