diff options
author | Nicholas Bishop <nicholasbishop@gmail.com> | 2012-03-17 03:21:40 +0400 |
---|---|---|
committer | Nicholas Bishop <nicholasbishop@gmail.com> | 2012-03-17 03:21:40 +0400 |
commit | 52418868eb57787803344bbf993bd2fc3c15dc2c (patch) | |
tree | 8e2954ab4f1e19b20856b1b9ea4adfa77d6a4f0b /source/blender/gpu | |
parent | fa17b0a911c218ad0e4f230e2039a5f6cacea403 (diff) |
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.
Diffstat (limited to 'source/blender/gpu')
-rw-r--r-- | source/blender/gpu/intern/gpu_buffers.c | 4 |
1 files changed, 2 insertions, 2 deletions
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); } |