diff options
author | Campbell Barton <ideasman42@gmail.com> | 2014-04-08 08:45:48 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2014-04-08 08:45:48 +0400 |
commit | ebaf3781fa4165808cd9ddb2ed0944788a31af7c (patch) | |
tree | 81ac09309f74f8d2e3e51d7fc97da41042b5ef0e /source/blender/gpu | |
parent | 593b698b44c631c5228760a7938e9c51b3b115ce (diff) |
Dyntopo: replace GHash with GSet, saves some memory
Diffstat (limited to 'source/blender/gpu')
-rw-r--r-- | source/blender/gpu/GPU_buffers.h | 4 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_buffers.c | 36 |
2 files changed, 20 insertions, 20 deletions
diff --git a/source/blender/gpu/GPU_buffers.h b/source/blender/gpu/GPU_buffers.h index f880bfbda6f..1d27824483f 100644 --- a/source/blender/gpu/GPU_buffers.h +++ b/source/blender/gpu/GPU_buffers.h @@ -177,7 +177,7 @@ GPU_PBVH_Buffers *GPU_build_bmesh_pbvh_buffers(int smooth_shading); void GPU_update_bmesh_pbvh_buffers(GPU_PBVH_Buffers *buffers, struct BMesh *bm, - struct GHash *bm_faces, + struct GSet *bm_faces, struct GSet *bm_unique_verts, struct GSet *bm_other_verts, bool show_diffuse_color); @@ -190,7 +190,7 @@ void GPU_update_grid_pbvh_buffers(GPU_PBVH_Buffers *buffers, struct CCGElem **gr void GPU_draw_pbvh_buffers(GPU_PBVH_Buffers *buffers, DMSetMaterial setMaterial, bool wireframe); -bool GPU_pbvh_buffers_diffuse_changed(GPU_PBVH_Buffers *buffers, struct GHash *bm_faces, bool show_diffuse_color); +bool GPU_pbvh_buffers_diffuse_changed(GPU_PBVH_Buffers *buffers, struct GSet *bm_faces, bool show_diffuse_color); void GPU_free_pbvh_buffers(GPU_PBVH_Buffers *buffers); diff --git a/source/blender/gpu/intern/gpu_buffers.c b/source/blender/gpu/intern/gpu_buffers.c index e01fa510dfb..f1b9e3ff00e 100644 --- a/source/blender/gpu/intern/gpu_buffers.c +++ b/source/blender/gpu/intern/gpu_buffers.c @@ -2010,13 +2010,13 @@ static int gpu_bmesh_vert_visible_count(GSet *bm_unique_verts, } /* Return the total number of visible faces */ -static int gpu_bmesh_face_visible_count(GHash *bm_faces) +static int gpu_bmesh_face_visible_count(GSet *bm_faces) { - GHashIterator gh_iter; + GSetIterator gh_iter; int totface = 0; - GHASH_ITER (gh_iter, bm_faces) { - BMFace *f = BLI_ghashIterator_getKey(&gh_iter); + GSET_ITER (gh_iter, bm_faces) { + BMFace *f = BLI_gsetIterator_getKey(&gh_iter); if (!paint_is_bmesh_face_hidden(f)) totface++; @@ -2029,7 +2029,7 @@ static int gpu_bmesh_face_visible_count(GHash *bm_faces) * shading, an element index buffer. */ void GPU_update_bmesh_pbvh_buffers(GPU_PBVH_Buffers *buffers, BMesh *bm, - GHash *bm_faces, + GSet *bm_faces, GSet *bm_unique_verts, GSet *bm_other_verts, bool show_diffuse_color) @@ -2075,10 +2075,10 @@ void GPU_update_bmesh_pbvh_buffers(GPU_PBVH_Buffers *buffers, diffuse_color[0] = diffuse_color[1] = diffuse_color[2] = 1.0; else if (show_diffuse_color) { /* due to dynamic nature of dyntopo, only get first material */ - GHashIterator gh_iter; + GSetIterator gs_iter; BMFace *f; - BLI_ghashIterator_init(&gh_iter, bm_faces); - f = BLI_ghashIterator_getKey(&gh_iter); + BLI_gsetIterator_init(&gs_iter, bm_faces); + f = BLI_gsetIterator_getKey(&gs_iter); GPU_material_diffuse_get(f->mat_nr + 1, diffuse_color); } @@ -2117,10 +2117,10 @@ void GPU_update_bmesh_pbvh_buffers(GPU_PBVH_Buffers *buffers, maxvert = v_index; } else { - GHashIterator gh_iter; + GSetIterator gs_iter; - GHASH_ITER (gh_iter, bm_faces) { - BMFace *f = BLI_ghashIterator_getKey(&gh_iter); + GSET_ITER (gs_iter, bm_faces) { + BMFace *f = BLI_gsetIterator_getKey(&gs_iter); BLI_assert(f->len == 3); @@ -2175,10 +2175,10 @@ void GPU_update_bmesh_pbvh_buffers(GPU_PBVH_Buffers *buffers, /* Fill triangle index buffer */ tri_data = glMapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); if (tri_data) { - GHashIterator gh_iter; + GSetIterator gs_iter; - GHASH_ITER (gh_iter, bm_faces) { - BMFace *f = BLI_ghashIterator_getKey(&gh_iter); + GSET_ITER (gs_iter, bm_faces) { + BMFace *f = BLI_gsetIterator_getKey(&gs_iter); if (!paint_is_bmesh_face_hidden(f)) { BMLoop *l_iter; @@ -2529,7 +2529,7 @@ void GPU_draw_pbvh_buffers(GPU_PBVH_Buffers *buffers, DMSetMaterial setMaterial, } } -bool GPU_pbvh_buffers_diffuse_changed(GPU_PBVH_Buffers *buffers, GHash *bm_faces, bool show_diffuse_color) +bool GPU_pbvh_buffers_diffuse_changed(GPU_PBVH_Buffers *buffers, GSet *bm_faces, bool show_diffuse_color) { float diffuse_color[4]; @@ -2549,10 +2549,10 @@ bool GPU_pbvh_buffers_diffuse_changed(GPU_PBVH_Buffers *buffers, GHash *bm_faces } else if (buffers->use_bmesh) { /* due to dynamc nature of dyntopo, only get first material */ - GHashIterator gh_iter; + GSetIterator gs_iter; BMFace *f; - BLI_ghashIterator_init(&gh_iter, bm_faces); - f = BLI_ghashIterator_getKey(&gh_iter); + BLI_gsetIterator_init(&gs_iter, bm_faces); + f = BLI_gsetIterator_getKey(&gs_iter); GPU_material_diffuse_get(f->mat_nr + 1, diffuse_color); } else { |