diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2008-05-15 23:40:09 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2008-05-15 23:40:09 +0400 |
commit | a6e18574b804f9998dfd77362202ce8219434112 (patch) | |
tree | cc54fc6b59e76896e05ea2af0cde8b76b2badaf6 | |
parent | ad397fa16bed7768d8635977dd4ae11dd49d78e2 (diff) |
Fix for bug #11650: removing uv layers in editmode did not work correct.
Fix for bug #11661: bake to viewport uv layer instead of render uv layer.
4 files changed, 6 insertions, 4 deletions
diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index 663c94e5155..3644a50b799 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -1241,7 +1241,8 @@ void CustomData_em_copy_data(const CustomData *source, CustomData *dest, if(dest_i >= dest->totlayer) return; /* if we found a matching layer, copy the data */ - if(dest->layers[dest_i].type == source->layers[src_i].type) { + if(dest->layers[dest_i].type == source->layers[src_i].type && + strcmp(dest->layers[dest_i].name, source->layers[src_i].name) == 0) { char *src_data = (char*)src_block + source->layers[src_i].offset; char *dest_data = (char*)*dest_block + dest->layers[dest_i].offset; diff --git a/source/blender/render/intern/include/render_types.h b/source/blender/render/intern/include/render_types.h index c2d2ea96745..d7e71b3e531 100644 --- a/source/blender/render/intern/include/render_types.h +++ b/source/blender/render/intern/include/render_types.h @@ -265,7 +265,7 @@ typedef struct ObjectRen { char (*mtface)[32]; char (*mcol)[32]; - int actmtface, actmcol; + int actmtface, actmcol, bakemtface; float obmat[4][4]; /* only used in convertblender.c, for instancing */ } ObjectRen; diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index 9357a060f62..ff31ba8a6ee 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -2346,7 +2346,7 @@ static int get_next_bake_face(BakeShade *bs) vlr= RE_findOrAddVlak(obr, v); if((bs->actob && bs->actob == obr->ob) || (!bs->actob && (obr->ob->flag & SELECT))) { - tface= RE_vlakren_get_tface(obr, vlr, obr->actmtface, NULL, 0); + tface= RE_vlakren_get_tface(obr, vlr, obr->bakemtface, NULL, 0); if(tface && tface->tpage) { Image *ima= tface->tpage; @@ -2400,7 +2400,7 @@ static void shade_tface(BakeShade *bs) VlakRen *vlr= bs->vlr; ObjectInstanceRen *obi= bs->obi; ObjectRen *obr= obi->obr; - MTFace *tface= RE_vlakren_get_tface(obr, vlr, obr->actmtface, NULL, 0); + MTFace *tface= RE_vlakren_get_tface(obr, vlr, obr->bakemtface, NULL, 0); Image *ima= tface->tpage; float vec[4][2]; int a, i1, i2, i3; diff --git a/source/blender/render/intern/source/renderdatabase.c b/source/blender/render/intern/source/renderdatabase.c index 441aa9336be..98b1426e8ff 100644 --- a/source/blender/render/intern/source/renderdatabase.c +++ b/source/blender/render/intern/source/renderdatabase.c @@ -501,6 +501,7 @@ void RE_set_customdata_names(ObjectRen *obr, CustomData *data) if (layer->type == CD_MTFACE) { strcpy(obr->mtface[mtfn++], layer->name); obr->actmtface= layer->active_rnd; + obr->bakemtface= layer->active; } else if (layer->type == CD_MCOL) { strcpy(obr->mcol[mcn++], layer->name); |