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:
authorDaniel Dunbar <daniel@zuster.org>2005-07-19 04:21:01 +0400
committerDaniel Dunbar <daniel@zuster.org>2005-07-19 04:21:01 +0400
commitb58f7d0c554e536d4e70e9ccf06fb2e5d38a34f4 (patch)
treee64e8b456b25cd9c3903389cadbae2ee32ade640 /source/blender/src/drawobject.c
parentd1dfb246c788492168c666aca1a30a00aa73c206 (diff)
- change mesh_get_derived_render to mesh_create_derived_render (always
builds new DerivedMesh... caching can come later) - split DerivedMesh returning functions into editmesh and mesh groups - got rid of DL_NORS displist type (get built on fly for mesh when needed) - got rid of Mesh.disp (yay!) - started to punch DerivedMesh returning functions into shape to introduce modifier stack
Diffstat (limited to 'source/blender/src/drawobject.c')
-rw-r--r--source/blender/src/drawobject.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/source/blender/src/drawobject.c b/source/blender/src/drawobject.c
index 7521f4391b1..4c05139227c 100644
--- a/source/blender/src/drawobject.c
+++ b/source/blender/src/drawobject.c
@@ -1062,7 +1062,7 @@ static void calc_meshverts(DerivedMesh *dm)
void calc_meshverts_ext(void)
{
int dmNeedsFree;
- DerivedMesh *dm = mesh_get_cage_derived(G.obedit, &dmNeedsFree);
+ DerivedMesh *dm = editmesh_get_derived_cage(&dmNeedsFree);
areawinset(curarea->win);
persp(PERSP_VIEW);
@@ -1080,7 +1080,7 @@ void calc_meshverts_ext(void)
void calc_meshverts_ext_f2(void)
{
int dmNeedsFree;
- DerivedMesh *dm = mesh_get_cage_derived(G.obedit, &dmNeedsFree);
+ DerivedMesh *dm = editmesh_get_derived_cage(&dmNeedsFree);
float co[3], mat[4][4];
EditVert *eve;
@@ -1776,14 +1776,13 @@ static void draw_mesh_object_outline(Object *ob, DerivedMesh *dm)
}
}
-static void draw_mesh_fancy(Object *ob, DerivedMesh *baseDM, DerivedMesh *realDM, int dt)
+static void draw_mesh_fancy(Object *ob, DerivedMesh *baseDM, DerivedMesh *dm, int dt)
{
Mesh *me = ob->data;
Material *ma= give_current_material(ob, 1);
int hasHaloMat = (ma && (ma->mode&MA_HALO));
int draw_wire = ob->dtx&OB_DRAWWIRE;
DispList *dl;
- DerivedMesh *dm = realDM?realDM:baseDM;
glFrontFace((ob->transflag&OB_NEG_SCALE)?GL_CW:GL_CCW);
@@ -1919,8 +1918,8 @@ static void draw_mesh_object(Base *base, int dt)
int has_alpha= 0;
if(G.obedit && ob->data==G.obedit->data) {
- DerivedMesh *baseDM = mesh_get_base_derived(ob);
- DerivedMesh *realDM = mesh_get_derived(ob);
+ DerivedMesh *baseDM = editmesh_get_derived_proxy();
+ DerivedMesh *realDM = editmesh_get_derived();
if(dt>OB_WIRE) init_gl_materials(ob); // no transp in editmode, the fancy draw over goes bad then
draw_em_fancy(ob, G.editMesh, baseDM, realDM, dt);
@@ -1931,14 +1930,15 @@ static void draw_mesh_object(Base *base, int dt)
BoundBox *bb = mesh_get_bb(me);
if(me->totface<=4 || boundbox_clip(ob->obmat, bb)) {
- int baseDMneedsFree;
+ int baseDMneedsFree, realDMneedsFree;
DerivedMesh *baseDM = mesh_get_derived_deform(ob, &baseDMneedsFree);
- DerivedMesh *realDM = mesh_get_derived(ob);
+ DerivedMesh *realDM = mesh_get_derived_final(ob, &realDMneedsFree);
if(dt==OB_SOLID) has_alpha= init_gl_materials(ob);
draw_mesh_fancy(ob, baseDM, realDM, dt);
if (baseDMneedsFree) baseDM->release(baseDM);
+ if (realDMneedsFree) realDM->release(realDM);
}
}
@@ -4051,7 +4051,7 @@ void draw_object_backbufsel(Object *ob)
case OB_MESH:
if(ob==G.obedit) {
int dmNeedsFree;
- DerivedMesh *dm = mesh_get_cage_derived(ob, &dmNeedsFree);
+ DerivedMesh *dm = editmesh_get_derived_cage(&dmNeedsFree);
em_solidoffs= bbs_mesh_solid_EM(dm, G.scene->selectmode & SCE_SELECT_FACE);