diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2008-03-13 13:27:35 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2008-03-13 13:27:35 +0300 |
commit | 4afa6a259435f7dab12c2f79771827d6ed0e2e57 (patch) | |
tree | 426b85dc74ff55264641a943f9c0c6c3ad839c23 /source/blender/src/drawview.c | |
parent | 923b577b265f6e881e9b0d2c92e43a2e8d32e585 (diff) |
Attempted fix for bug #8441: editing in particle mode with limit visible
enabled is really slow on some cards. Cause might be the large number of
calls to glReadPixels, now it uses the same system as sculpt to store
the depths once, code was already there for the case those depths were
available, it just wasn't storing them.
Diffstat (limited to 'source/blender/src/drawview.c')
-rw-r--r-- | source/blender/src/drawview.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/source/blender/src/drawview.c b/source/blender/src/drawview.c index cbabb79fc36..c4c221bcdf6 100644 --- a/source/blender/src/drawview.c +++ b/source/blender/src/drawview.c @@ -2897,7 +2897,7 @@ void drawview3dspace(ScrArea *sa, void *spacedata) Base *base; Object *ob; Scene *sce; - char retopo, sculpt; + char retopo, sculptparticle; Object *obact = OBACT; /* update all objects, ipos, matrices, displists, etc. Flags set by depgraph or manual, @@ -3026,7 +3026,7 @@ void drawview3dspace(ScrArea *sa, void *spacedata) } retopo= retopo_mesh_check() || retopo_curve_check(); - sculpt= (G.f & G_SCULPTMODE) && !G.obedit; + sculptparticle= (G.f & (G_SCULPTMODE|G_PARTICLEEDIT)) && !G.obedit; if(retopo) view3d_update_depths(v3d); @@ -3038,8 +3038,9 @@ void drawview3dspace(ScrArea *sa, void *spacedata) } } - if(!retopo && sculpt && !(obact && (obact->dtx & OB_DRAWXRAY))) { - draw_sculpt_depths(v3d); + if(!retopo && sculptparticle && !(obact && (obact->dtx & OB_DRAWXRAY))) { + if(G.f & G_SCULPTMODE) + draw_sculpt_depths(v3d); view3d_update_depths(v3d); } @@ -3056,8 +3057,9 @@ void drawview3dspace(ScrArea *sa, void *spacedata) view3d_draw_xray(v3d, 0); // clears zbuffer if it is used! view3d_draw_transp(v3d, 0); - if(!retopo && sculpt && (obact && (OBACT->dtx & OB_DRAWXRAY))) { - draw_sculpt_depths(v3d); + if(!retopo && sculptparticle && (obact && (OBACT->dtx & OB_DRAWXRAY))) { + if(G.f & G_SCULPTMODE) + draw_sculpt_depths(v3d); view3d_update_depths(v3d); } |