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:
Diffstat (limited to 'source/blender/editors/space_view3d/drawobject.c')
-rw-r--r--source/blender/editors/space_view3d/drawobject.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c
index 7f8ab31f4c6..04fb9a65cef 100644
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@ -1207,7 +1207,7 @@ static void mesh_foreachScreenVert__mapFunc(void *userData, int index, float *co
void mesh_foreachScreenVert(ViewContext *vc, void (*func)(void *userData, EditVert *eve, int x, int y, int index), void *userData, int clipVerts)
{
struct { void (*func)(void *userData, EditVert *eve, int x, int y, int index); void *userData; ViewContext vc; int clipVerts; float pmat[4][4], vmat[4][4]; } data;
- DerivedMesh *dm = editmesh_get_derived_cage(CD_MASK_BAREMESH);
+ DerivedMesh *dm = editmesh_get_derived_cage(vc->em, CD_MASK_BAREMESH);
data.vc= *vc;
data.func = func;
@@ -1251,7 +1251,7 @@ static void mesh_foreachScreenEdge__mapFunc(void *userData, int index, float *v0
void mesh_foreachScreenEdge(ViewContext *vc, void (*func)(void *userData, EditEdge *eed, int x0, int y0, int x1, int y1, int index), void *userData, int clipVerts)
{
struct { void (*func)(void *userData, EditEdge *eed, int x0, int y0, int x1, int y1, int index); void *userData; ViewContext vc; int clipVerts; float pmat[4][4], vmat[4][4]; } data;
- DerivedMesh *dm = editmesh_get_derived_cage(CD_MASK_BAREMESH);
+ DerivedMesh *dm = editmesh_get_derived_cage(vc->em, CD_MASK_BAREMESH);
data.vc= *vc;
data.func = func;
@@ -1283,7 +1283,7 @@ static void mesh_foreachScreenFace__mapFunc(void *userData, int index, float *ce
void mesh_foreachScreenFace(ViewContext *vc, void (*func)(void *userData, EditFace *efa, int x, int y, int index), void *userData)
{
struct { void (*func)(void *userData, EditFace *efa, int x, int y, int index); void *userData; ViewContext vc; float pmat[4][4], vmat[4][4]; } data;
- DerivedMesh *dm = editmesh_get_derived_cage(CD_MASK_BAREMESH);
+ DerivedMesh *dm = editmesh_get_derived_cage(vc->em, CD_MASK_BAREMESH);
data.vc= *vc;
data.func = func;
@@ -2353,9 +2353,9 @@ static void draw_mesh_fancy(Scene *scene, View3D *v3d, Base *base, int dt, int f
/* returns 1 if nothing was drawn, for detecting to draw an object center */
static int draw_mesh_object(Scene *scene, View3D *v3d, Base *base, int dt, int flag)
{
- EditMesh *em= NULL; // XXX
Object *ob= base->object;
Mesh *me= ob->data;
+ EditMesh *em= me->edit_mesh;
int do_alpha_pass= 0, drawlinked= 0, retval= 0, glsl, check_alpha;
if(G.obedit && ob!=G.obedit && ob->data==G.obedit->data) {
@@ -2367,9 +2367,9 @@ static int draw_mesh_object(Scene *scene, View3D *v3d, Base *base, int dt, int f
DerivedMesh *finalDM, *cageDM;
if (G.obedit!=ob)
- finalDM = cageDM = editmesh_get_derived_base();
+ finalDM = cageDM = editmesh_get_derived_base(em);
else
- cageDM = editmesh_get_derived_cage_and_final(&finalDM,
+ cageDM = editmesh_get_derived_cage_and_final(em, &finalDM,
get_viewedit_datamask());
if(dt>OB_WIRE) {
@@ -5374,7 +5374,7 @@ void draw_object_backbufsel(Scene *scene, View3D *v3d, EditMesh *em, Object *ob)
switch( ob->type) {
case OB_MESH:
if(ob==G.obedit) {
- DerivedMesh *dm = editmesh_get_derived_cage(CD_MASK_BAREMESH);
+ DerivedMesh *dm = editmesh_get_derived_cage(em, CD_MASK_BAREMESH);
EM_init_index_arrays(em, 1, 1, 1);
@@ -5414,11 +5414,12 @@ void draw_object_backbufsel(Scene *scene, View3D *v3d, EditMesh *em, Object *ob)
/* helper function for drawing object instances - meshes */
static void draw_object_mesh_instance(Scene *scene, View3D *v3d, Object *ob, int dt, int outline)
{
+ Mesh *me= ob->data;
DerivedMesh *dm=NULL, *edm=NULL;
int glsl;
- if(G.obedit && ob->data==G.obedit->data)
- edm= editmesh_get_derived_base();
+ if(me->edit_mesh)
+ edm= editmesh_get_derived_base(me->edit_mesh);
else
dm = mesh_get_derived_final(ob, CD_MASK_BAREMESH);