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:
authorBastien Montagne <montagne29@wanadoo.fr>2013-09-29 10:47:07 +0400
committerBastien Montagne <montagne29@wanadoo.fr>2013-09-29 10:47:07 +0400
commit8fa068d30ab2981673797ab89ba9a15f08e11a9e (patch)
tree252a9838aa1171aae0f1940c43f47bdb9c0a2a8a /source/blender/blenkernel/intern/mesh.c
parent6d0284f934bda14cd83c3e3808ed944d972f0d22 (diff)
Fix [#36841] UV-Maps cannot be renamed in EditMode
Own error in r60260, in edit mode we need to use bmesh's cdata!
Diffstat (limited to 'source/blender/blenkernel/intern/mesh.c')
-rw-r--r--source/blender/blenkernel/intern/mesh.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c
index 2dacd58fef9..090d41aba73 100644
--- a/source/blender/blenkernel/intern/mesh.c
+++ b/source/blender/blenkernel/intern/mesh.c
@@ -628,13 +628,25 @@ void BKE_mesh_make_local(Mesh *me)
bool BKE_mesh_uv_cdlayer_rename_index(Mesh *me, const int poly_index, const int loop_index, const int face_index,
const char *new_name, const bool do_tessface)
{
- CustomData *pdata = &me->pdata, *ldata = &me->ldata, *fdata = &me->fdata;
- CustomDataLayer *cdlp = &pdata->layers[poly_index];
- CustomDataLayer *cdlu = &ldata->layers[loop_index];
- CustomDataLayer *cdlf = do_tessface ? &fdata->layers[face_index] : NULL;
+ CustomData *pdata, *ldata, *fdata;
+ CustomDataLayer *cdlp, *cdlu, *cdlf;
const int step = do_tessface ? 3 : 2;
int i;
+ if (me->edit_btmesh) {
+ pdata = &me->edit_btmesh->bm->pdata;
+ ldata = &me->edit_btmesh->bm->ldata;
+ fdata = NULL; /* No tessellated data in BMesh! */
+ }
+ else {
+ pdata = &me->pdata;
+ ldata = &me->ldata;
+ fdata = &me->fdata;
+ }
+ cdlp = &pdata->layers[poly_index];
+ cdlu = &ldata->layers[loop_index];
+ cdlf = do_tessface ? &fdata->layers[face_index] : NULL;
+
BLI_strncpy(cdlp->name, new_name, sizeof(cdlp->name));
CustomData_set_layer_unique_name(pdata, cdlp - pdata->layers);
@@ -667,7 +679,7 @@ bool BKE_mesh_uv_cdlayer_rename(Mesh *me, const char *old_name, const char *new_
const int fidx_start = do_tessface ? CustomData_get_layer_index(fdata, CD_MTFACE) : -1;
int pidx, lidx, fidx;
- do_tessface = (do_tessface && fdata->totlayer);
+ do_tessface = (do_tessface && fdata->totlayer && !me->edit_btmesh);
pidx = CustomData_get_named_layer(pdata, CD_MTEXPOLY, old_name);
lidx = CustomData_get_named_layer(ldata, CD_MLOOPUV, old_name);
fidx = do_tessface ? CustomData_get_named_layer(fdata, CD_MTFACE, old_name) : -1;