forked from bartvdbraak/blender
- bug fix, apply modifier removed modifier even on certain
errors - change drawimagespace to check and update object data if it needs a recalc. this fixes errors with a recalc being flushed but not actually being done before spaceimage redraws. Updates typically actually happen in draw loop, which is not a great design... - make shared vertexcol didn't flush update
This commit is contained in:
parent
a30740c196
commit
1ac10f50f4
@ -762,10 +762,12 @@ static void modifiers_applyModifier(void *obv, void *mdv)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
BLI_remlink(&ob->modifiers, md);
|
if (converted) {
|
||||||
modifier_free(md);
|
BLI_remlink(&ob->modifiers, md);
|
||||||
|
modifier_free(md);
|
||||||
|
|
||||||
BIF_undo_push("Apply modifier");
|
BIF_undo_push("Apply modifier");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void modifiers_copyModifier(void *ob_v, void *md_v)
|
static void modifiers_copyModifier(void *ob_v, void *md_v)
|
||||||
|
@ -3788,7 +3788,7 @@ static int bbs_mesh_verts(DerivedMesh *dm, int offset)
|
|||||||
bglEnd();
|
bglEnd();
|
||||||
glPointSize(1.0);
|
glPointSize(1.0);
|
||||||
|
|
||||||
return offset + G.totvert; // XXX is G variable reliable?
|
return offset + G.totvert;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int bbs_mesh_wire__setDrawOptions(void *userData, int index)
|
static int bbs_mesh_wire__setDrawOptions(void *userData, int index)
|
||||||
@ -3807,7 +3807,7 @@ static int bbs_mesh_wire(DerivedMesh *dm, int offset)
|
|||||||
{
|
{
|
||||||
dm->drawMappedEdges(dm, bbs_mesh_wire__setDrawOptions, (void*) offset);
|
dm->drawMappedEdges(dm, bbs_mesh_wire__setDrawOptions, (void*) offset);
|
||||||
|
|
||||||
return offset + G.totedge; // XXX is G variable reliable?
|
return offset + G.totedge;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int bbs_mesh_solid__setSolidDrawOptions(void *userData, int index, int *drawSmooth_r)
|
static int bbs_mesh_solid__setSolidDrawOptions(void *userData, int index, int *drawSmooth_r)
|
||||||
|
@ -1951,6 +1951,8 @@ void special_editmenu(void)
|
|||||||
|
|
||||||
if(me->tface) mcol_to_tface(me, 1);
|
if(me->tface) mcol_to_tface(me, 1);
|
||||||
BIF_undo_push("Shared VertexCol");
|
BIF_undo_push("Shared VertexCol");
|
||||||
|
|
||||||
|
DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(G.f & G_WEIGHTPAINT) {
|
else if(G.f & G_WEIGHTPAINT) {
|
||||||
|
@ -107,17 +107,7 @@ static int compuvvert(const void *u1, const void *u2)
|
|||||||
|
|
||||||
void object_uvs_changed(Object *ob)
|
void object_uvs_changed(Object *ob)
|
||||||
{
|
{
|
||||||
/* Unfortunately we also have to force an eval
|
|
||||||
* here because otherwise the modifier UVs might
|
|
||||||
* not be updated. Goes back to sillyness that
|
|
||||||
* recalc is done as part of view3d draw loop!
|
|
||||||
*
|
|
||||||
* Technically should scan all SpaceImas here.
|
|
||||||
*/
|
|
||||||
DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
|
DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
|
||||||
if(G.sima && (G.sima->flag & SI_DRAWSHADOW)) {
|
|
||||||
object_handle_update(ob);
|
|
||||||
}
|
|
||||||
|
|
||||||
allqueue(REDRAWVIEW3D, 0);
|
allqueue(REDRAWVIEW3D, 0);
|
||||||
allqueue(REDRAWIMAGE, 0);
|
allqueue(REDRAWIMAGE, 0);
|
||||||
@ -127,7 +117,6 @@ void object_tface_flags_changed(Object *ob, int updateButtons)
|
|||||||
{
|
{
|
||||||
if (G.f&G_FACESELECT) {
|
if (G.f&G_FACESELECT) {
|
||||||
DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
|
DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
|
||||||
object_handle_update(ob);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (updateButtons) allqueue(REDRAWBUTSEDIT, 0);
|
if (updateButtons) allqueue(REDRAWBUTSEDIT, 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user