Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Bishop <nicholasbishop@gmail.com>2012-03-17 03:21:40 +0400
committerNicholas Bishop <nicholasbishop@gmail.com>2012-03-17 03:21:40 +0400
commit52418868eb57787803344bbf993bd2fc3c15dc2c (patch)
tree8e2954ab4f1e19b20856b1b9ea4adfa77d6a4f0b /source/blender/gpu
parentfa17b0a911c218ad0e4f230e2039a5f6cacea403 (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.c4
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);
}