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:
authorCampbell Barton <ideasman42@gmail.com>2012-03-26 08:23:18 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-03-26 08:23:18 +0400
commit452f7c38687527d3283395fb6d716cb63a2d8f60 (patch)
tree80c52c8918946ca6205ae3bf4be630878666bb52 /source/blender/makesrna/intern/rna_mesh_utils.h
parent48f0444760ea33c67d607b4f1e1dadd66e1eea76 (diff)
setting the active texture layer from python would get the UV layer out of sync. (entering editmode would show the wrong UV layer)
Diffstat (limited to 'source/blender/makesrna/intern/rna_mesh_utils.h')
-rw-r--r--source/blender/makesrna/intern/rna_mesh_utils.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/source/blender/makesrna/intern/rna_mesh_utils.h b/source/blender/makesrna/intern/rna_mesh_utils.h
index b00271f0e16..f262e717eef 100644
--- a/source/blender/makesrna/intern/rna_mesh_utils.h
+++ b/source/blender/makesrna/intern/rna_mesh_utils.h
@@ -99,9 +99,16 @@
int a; \
if (data) { \
CustomDataLayer *layer; \
- for (layer = data->layers, a = 0; a<data->totlayer; layer++, a++) { \
+ int layer_index = CustomData_get_layer_index(data, layer_type); \
+ for (layer = data->layers, a = 0; layer_index + a < data->totlayer; layer++, a++) { \
if (value.data == layer) { \
- CustomData_set_layer_##active_type##_index(data, layer_type, a); \
+ CustomData_set_layer_##active_type(data, layer_type, a); \
+ \
+ /* keep loops in sync */ \
+ if (layer_type == CD_MTEXPOLY) { \
+ CustomData *ldata = rna_mesh_ldata_helper(me); \
+ CustomData_set_layer_##active_type(ldata, CD_MLOOPUV, a); \
+ } \
mesh_update_customdata_pointers(me, TRUE); \
return; \
} \
@@ -126,6 +133,11 @@
CustomData *data = rna_mesh_##customdata_type(ptr); \
if (data) { \
CustomData_set_layer_##active_type(data, layer_type, value); \
+ /* keep loops in sync */ \
+ if (layer_type == CD_MTEXPOLY) { \
+ CustomData *ldata = rna_mesh_ldata_helper(me); \
+ CustomData_set_layer_##active_type(ldata, CD_MLOOPUV, value); \
+ } \
mesh_update_customdata_pointers(me, TRUE); \
} \
}