summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2012-02-19 20:08:52 -0700
committerBrian Paul <[email protected]>2012-02-24 08:03:03 -0700
commit0c70d2c5bb046c8b2610c460d8c6d56975462066 (patch)
tree2920d25bfa08879c19d8d2034cbbb2cc9c96f68a /src
parent237b2fca7aad9b15f3d8b6928d96cdff790b202a (diff)
swrast: remove MAX_WIDTH arrays in s_zoom.c
Diffstat (limited to 'src')
-rw-r--r--src/mesa/swrast/s_zoom.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/mesa/swrast/s_zoom.c b/src/mesa/swrast/s_zoom.c
index 73bff482b9a..3a0e0b626d1 100644
--- a/src/mesa/swrast/s_zoom.c
+++ b/src/mesa/swrast/s_zoom.c
@@ -362,7 +362,7 @@ _swrast_write_zoomed_stencil_span(struct gl_context *ctx, GLint imgX, GLint imgY
GLint width, GLint spanX, GLint spanY,
const GLubyte stencil[])
{
- GLubyte zoomedVals[MAX_WIDTH];
+ GLubyte *zoomedVals;
GLint x0, x1, y0, y1, y;
GLint i, zoomedWidth;
@@ -375,6 +375,10 @@ _swrast_write_zoomed_stencil_span(struct gl_context *ctx, GLint imgX, GLint imgY
ASSERT(zoomedWidth > 0);
ASSERT(zoomedWidth <= MAX_WIDTH);
+ zoomedVals = (GLubyte *) malloc(zoomedWidth * sizeof(GLubyte));
+ if (!zoomedVals)
+ return;
+
/* zoom the span horizontally */
for (i = 0; i < zoomedWidth; i++) {
GLint j = unzoom_x(ctx->Pixel.ZoomX, imgX, x0 + i) - spanX;
@@ -387,6 +391,8 @@ _swrast_write_zoomed_stencil_span(struct gl_context *ctx, GLint imgX, GLint imgY
for (y = y0; y < y1; y++) {
_swrast_write_stencil_span(ctx, zoomedWidth, x0, y, zoomedVals);
}
+
+ free(zoomedVals);
}
@@ -401,7 +407,7 @@ _swrast_write_zoomed_z_span(struct gl_context *ctx, GLint imgX, GLint imgY,
{
struct gl_renderbuffer *rb =
ctx->DrawBuffer->Attachment[BUFFER_DEPTH].Renderbuffer;
- GLuint zoomedVals[MAX_WIDTH];
+ GLuint *zoomedVals;
GLint x0, x1, y0, y1, y;
GLint i, zoomedWidth;
@@ -414,6 +420,10 @@ _swrast_write_zoomed_z_span(struct gl_context *ctx, GLint imgX, GLint imgY,
ASSERT(zoomedWidth > 0);
ASSERT(zoomedWidth <= MAX_WIDTH);
+ zoomedVals = (GLuint *) malloc(zoomedWidth * sizeof(GLuint));
+ if (!zoomedVals)
+ return;
+
/* zoom the span horizontally */
for (i = 0; i < zoomedWidth; i++) {
GLint j = unzoom_x(ctx->Pixel.ZoomX, imgX, x0 + i) - spanX;
@@ -427,4 +437,6 @@ _swrast_write_zoomed_z_span(struct gl_context *ctx, GLint imgX, GLint imgY,
GLubyte *dst = _swrast_pixel_address(rb, x0, y);
_mesa_pack_uint_z_row(rb->Format, zoomedWidth, zoomedVals, dst);
}
+
+ free(zoomedVals);
}