From cda32360925d84072a69c6fc0bfebbfe07d90ebc Mon Sep 17 00:00:00 2001 From: Roland Scheidegger Date: Tue, 27 Mar 2007 21:03:32 +0200 Subject: fix incorrect _MaxElement calculation The calculation of _MaxElement was wrong if the stride was larger than elementSize, which lead to rejection of every DrawElements call which accessed the maximum element if CheckArrayBounds was enabled. --- src/mesa/main/varray.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c index a048509e51..bf1ad0165e 100644 --- a/src/mesa/main/varray.c +++ b/src/mesa/main/varray.c @@ -76,7 +76,8 @@ update_array(GLcontext *ctx, struct gl_client_array *array, */ if (ctx->Array.ArrayBufferObj->Name) array->_MaxElement = ((GLsizeiptrARB) ctx->Array.ArrayBufferObj->Size - - (GLsizeiptrARB) array->Ptr) / array->StrideB; + - (GLsizeiptrARB) array->Ptr + array->StrideB + - elementSize) / array->StrideB; else #endif array->_MaxElement = 2 * 1000 * 1000 * 1000; /* just a big number */ -- cgit v1.2.3