diff options
author | Ton Roosendaal <ton@blender.org> | 2009-01-10 17:19:14 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2009-01-10 17:19:14 +0300 |
commit | dd97c080062bfa01883f6d6e9f2f6c0b8a0ba8c1 (patch) | |
tree | 6ffe875d47aafc0a8d7dea9c45e94ee25f35589a /source/blender/blenkernel | |
parent | a7932f745243e5cb0192ec6bbef58dcea34faf0f (diff) |
2.5
- Weightpaint back (CTRL+TAB or menu)
Also weightpaint is sortof non-modal, allowing to use all existing
hotkeys while in paint mode. Only leftmouse is overridden.
- Made vpaint and wpaint entirely local, stored in scene (and saved!)
- Small bugfix (also in 2.48): on weightpaint mode, all armature objects
in 3d window were drawing as active poses. Now only the armature
deformer is.
Nice point for the UI agenda: are paint modes on ACTION mouse? Only then
you can combine it with SELECT mouse...
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/intern/DerivedMesh.c | 13 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/scene.c | 7 |
2 files changed, 13 insertions, 7 deletions
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index d160c75a03b..063a0e4a31f 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -2054,15 +2054,16 @@ static void mesh_build_data(Scene *scene, Object *ob, CustomDataMask dataMask) { Mesh *me = ob->data; float min[3], max[3]; - int needMapping= 0; // + //int needMapping= 0; + + Object *obact = scene->basact?scene->basact->object:NULL; + int editing = (FACESEL_PAINT_TEST)|(G.f & G_PARTICLEEDIT); + int needMapping = editing && (ob==obact); clear_mesh_caches(ob); -// XXX Object *obact = scene->basact?scene->basact->object:NULL; -// int editing = (FACESEL_PAINT_TEST)|(G.f & G_PARTICLEEDIT); -// int needMapping = editing && (ob==obact); -// if( (G.f & G_WEIGHTPAINT) && ob==obact ) { - if(dataMask & CD_MASK_WEIGHTPAINT) { + if( (G.f & G_WEIGHTPAINT) && ob==obact ) { +// if(dataMask & CD_MASK_WEIGHTPAINT) { MCol *wpcol = (MCol*)calc_weightpaint_colors(ob); int layernum = CustomData_number_of_layers(&me->fdata, CD_MCOL); int prevactive = CustomData_get_active_layer(&me->fdata, CD_MCOL); diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 91783a3c85f..3fc1d2a6103 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -167,7 +167,12 @@ void free_scene(Scene *sce) BLI_freelistN(&sce->transform_spaces); BLI_freelistN(&sce->r.layers); - if(sce->toolsettings){ + if(sce->toolsettings) { + if(sce->toolsettings->vpaint) + MEM_freeN(sce->toolsettings->vpaint); + if(sce->toolsettings->wpaint) + MEM_freeN(sce->toolsettings->wpaint); + MEM_freeN(sce->toolsettings); sce->toolsettings = NULL; } |