From 52418868eb57787803344bbf993bd2fc3c15dc2c Mon Sep 17 00:00:00 2001 From: Nicholas Bishop Date: Fri, 16 Mar 2012 23:21:40 +0000 Subject: Fix for size of VBO index type when drawing multires in sculpt mode. The VBO index type can be either ushort or uint depending on the grid size. The comparison was checking how many quads are in the array, but this was incorrect; the size of the index elements should depend on the maximum value they reference, i.e. the maximum coord/normal element. --- source/blender/gpu/intern/gpu_buffers.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender/gpu') diff --git a/source/blender/gpu/intern/gpu_buffers.c b/source/blender/gpu/intern/gpu_buffers.c index aeb2b13d15e..57118e92d93 100644 --- a/source/blender/gpu/intern/gpu_buffers.c +++ b/source/blender/gpu/intern/gpu_buffers.c @@ -1572,7 +1572,7 @@ static GLuint gpu_get_grid_buffer(int gridsize, GLenum *index_type, unsigned *to glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffer); - if(*totquad < USHRT_MAX) { + if(gridsize * gridsize < USHRT_MAX) { *index_type = GL_UNSIGNED_SHORT; FILL_QUAD_BUFFER(unsigned short, *totquad, buffer); } @@ -1617,7 +1617,7 @@ GPU_Buffers *GPU_build_grid_buffers(int *grid_indices, int totgrid, glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffers->index_buf); - if(totquad < USHRT_MAX) { + if(totgrid * gridsize * gridsize < USHRT_MAX) { buffers->index_type = GL_UNSIGNED_SHORT; FILL_QUAD_BUFFER(unsigned short, totquad, buffers->index_buf); } -- cgit v1.2.3