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:
authorCampbell Barton <ideasman42@gmail.com>2008-03-20 23:03:13 +0300
committerCampbell Barton <ideasman42@gmail.com>2008-03-20 23:03:13 +0300
commit107bed017092bb3f0692a8aae22c3d9e6c51d5ad (patch)
treecb835b90bd74fd145185cfa99ac9349fc8fc366a /source/blender/src/drawview.c
parentaf8c68ddc4a67b9c329d15b540a1bc0f07d98838 (diff)
shift+b zoom in perspective mode, (apricot feature for better navigation on large maps)
Diffstat (limited to 'source/blender/src/drawview.c')
-rw-r--r--source/blender/src/drawview.c63
1 files changed, 63 insertions, 0 deletions
diff --git a/source/blender/src/drawview.c b/source/blender/src/drawview.c
index 608aca7bfa1..66a33987a02 100644
--- a/source/blender/src/drawview.c
+++ b/source/blender/src/drawview.c
@@ -2889,6 +2889,69 @@ static void draw_sculpt_depths(View3D *v3d)
}
}
+void draw_depth(ScrArea *sa, void *spacedata)
+{
+ View3D *v3d= spacedata;
+ Base *base;
+ Scene *sce;
+ short drawtype;
+
+ /* temp set drawtype to solid */
+ drawtype = v3d->drawtype;
+ v3d->drawtype = OB_SOLID;
+
+
+ setwinmatrixview3d(sa->winx, sa->winy, NULL); /* 0= no pick rect */
+ setviewmatrixview3d(); /* note: calls where_is_object for camera... */
+
+ Mat4MulMat4(v3d->persmat, v3d->viewmat, sa->winmat);
+ Mat4Invert(v3d->persinv, v3d->persmat);
+ Mat4Invert(v3d->viewinv, v3d->viewmat);
+
+ glClear(GL_DEPTH_BUFFER_BIT);
+
+ myloadmatrix(v3d->viewmat);
+ persp(PERSP_STORE); // store correct view for persp(PERSP_VIEW) calls
+
+ if(v3d->flag & V3D_CLIPPING) {
+ view3d_set_clipping(v3d);
+ }
+
+ v3d->zbuf= TRUE;
+ glEnable(GL_DEPTH_TEST);
+
+ /* draw set first */
+ if(G.scene->set) {
+ for(SETLOOPER(G.scene->set, base)) {
+
+ if(v3d->lay & base->lay) {
+
+ /*BIF_ThemeColorBlend(TH_WIRE, TH_BACK, 0.6f);*/ /* not needed for depths */
+
+ draw_object(base, DRAW_CONSTCOLOR);
+
+ if(base->object->transflag & OB_DUPLI) {
+ draw_dupli_objects_color(v3d, base, TH_WIRE);
+ }
+ }
+ }
+ }
+
+ /* then draw not selected and the duplis, but skip editmode object */
+ for(base= G.scene->base.first; base; base= base->next) {
+ if(v3d->lay & base->lay) {
+
+ /* dupli drawing */
+ if(base->object->transflag & OB_DUPLI) {
+ draw_dupli_objects(v3d, base);
+ }
+ draw_object(base, 0);
+ }
+ }
+
+ v3d->drawtype = drawtype;
+}
+
static void draw_viewport_fps(ScrArea *sa);