diff options
author | Ton Roosendaal <ton@blender.org> | 2004-11-26 15:20:35 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2004-11-26 15:20:35 +0300 |
commit | 91f48d07348f4239f980780caa875ae10b870c15 (patch) | |
tree | f4e14d61708f1ea242d1d7b60730c157eb9a39cb /source/blender/renderconverter | |
parent | 4ef448cc51cb0a51ae1301c926e0cfe5770faac3 (diff) |
Two fixes;
- Bug #1890. While render subsurf in editmode, orco coordinates were
incorrect (subsurf vertices in editmode have different ordering)
Bug was oldie.
- IRC reported by Stefano; oops (not outliner) didnt show lamp textures
nor material ipos correctly.
Found error in oops curved lines too (the ones starting at right side)
Diffstat (limited to 'source/blender/renderconverter')
-rw-r--r-- | source/blender/renderconverter/intern/convertBlenderScene.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/source/blender/renderconverter/intern/convertBlenderScene.c b/source/blender/renderconverter/intern/convertBlenderScene.c index ca78e319e84..ab882cd3015 100644 --- a/source/blender/renderconverter/intern/convertBlenderScene.c +++ b/source/blender/renderconverter/intern/convertBlenderScene.c @@ -1329,8 +1329,9 @@ static void init_render_mesh(Object *ob) dl= me->disp.first; /* Force a displist rebuild if this is a subsurf and we have a different subdiv level */ - - if((dl==NULL) || ((me->subdiv != me->subdivr))) { + /* also when object is in editmode, displist ordering for editmode is different, giving orco probs */ + + if((dl==NULL) || ((me->subdiv != me->subdivr)) || (ob==G.obedit)) { /* prevent subsurf called again for duplicate use of mesh, tface pointers change */ if(dl==NULL || (me->subdivdone-1)!=me->subdivr) { DispList *dlVerts; @@ -2685,7 +2686,7 @@ void RE_freeRotateBlenderScene(void) a++; } - /* free orco. check all obejcts because of duplis and sets */ + /* free orco. check all objects because of duplis and sets */ ob= G.main->object.first; while(ob) { @@ -2702,7 +2703,7 @@ void RE_freeRotateBlenderScene(void) MEM_freeN(me->orco); me->orco= 0; } - if (mesh_uses_displist(me) && ((me->subdiv!=me->subdivr) || (ob->effect.first != NULL) ) ) { + if (mesh_uses_displist(me) && ((me->subdiv!=me->subdivr) || (ob->effect.first != NULL) || ob==G.obedit) ) { /* Need to recalc for effects since they are time dependant */ makeDispList(ob); /* XXX this should be replaced with proper caching */ me->subdivdone= 0; /* needed to prevent multiple used meshes being recalculated */ |