From 5db086b7ce7146fcf0661f387aeeba676e1d08c9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 12 Mar 2014 17:59:46 +1100 Subject: Transform: minor optimization, use BLI_bitmap for island tagging --- source/blender/editors/transform/transform_conversions.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'source/blender/editors/transform/transform_conversions.c') diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 7f475e35110..b4bd922412c 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -64,6 +64,7 @@ #include "BLI_linklist_stack.h" #include "BLI_string.h" #include "BLI_rect.h" +#include "BLI_bitmap.h" #include "BKE_DerivedMesh.h" #include "BKE_action.h" @@ -2588,10 +2589,10 @@ static void createTransUVs(bContext *C, TransInfo *t) BMLoop *l; BMIter iter, liter; UvElementMap *elementmap = NULL; - char *island_enabled = NULL; + BLI_bitmap *island_enabled = NULL; int count = 0, countsel = 0, count_rejected = 0; - int propmode = t->flag & T_PROP_EDIT; - int propconnected = t->flag & T_PROP_CONNECTED; + const bool propmode = (t->flag & T_PROP_EDIT) != 0; + const bool propconnected = (t->flag & T_PROP_CONNECTED) != 0; const int cd_loop_uv_offset = CustomData_get_offset(&em->bm->ldata, CD_MLOOPUV); @@ -2606,7 +2607,7 @@ static void createTransUVs(bContext *C, TransInfo *t) else { elementmap = BM_uv_element_map_create(em->bm, true, true); } - island_enabled = MEM_callocN(sizeof(*island_enabled) * elementmap->totalIslands, "TransIslandData(UV Editing)"); + island_enabled = BLI_BITMAP_NEW(elementmap->totalIslands, "TransIslandData(UV Editing)"); } BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { @@ -2624,7 +2625,7 @@ static void createTransUVs(bContext *C, TransInfo *t) if (propconnected) { UvElement *element = BM_uv_element_get(elementmap, efa, l); - island_enabled[element->island] = TRUE; + BLI_BITMAP_SET(island_enabled, element->island); } } @@ -2665,7 +2666,7 @@ static void createTransUVs(bContext *C, TransInfo *t) if (propconnected) { UvElement *element = BM_uv_element_get(elementmap, efa, l); - if (!island_enabled[element->island]) { + if (!BLI_BITMAP_GET(island_enabled, element->island)) { count_rejected++; continue; } -- cgit v1.2.3