make border zoom ignore backfaces in texture mode and zero alpha areas of billboards.

This commit is contained in:
Campbell Barton 2008-03-21 16:27:43 +00:00
parent 76adde8d19
commit df1ba7da75
2 changed files with 14 additions and 5 deletions

@ -103,7 +103,7 @@ typedef struct View3D {
/**
* The drawing mode for the 3d display. Set to OB_WIRE, OB_SOLID,
* OB_SHADED or OB_TEXTURED */
* OB_SHADED or OB_TEXTURE */
short drawtype;
short localview;
int lay, layact;

@ -2894,13 +2894,20 @@ void draw_depth(ScrArea *sa, void *spacedata)
View3D *v3d= spacedata;
Base *base;
Scene *sce;
short drawtype, zbuf;
short drawtype, zbuf, flag;
float glalphaclip;
/* temp set drawtype to solid */
/* Setting these temporarily is not nice */
drawtype = v3d->drawtype;
zbuf = v3d->zbuf;
v3d->drawtype = OB_SOLID;
flag = v3d->flag;
glalphaclip = U.glalphaclip;
U.glalphaclip = 0.5; /* not that nice but means we wont zoom into billboards */
v3d->flag &= ~V3D_SELECT_OUTLINE;
if ((v3d->drawtype != OB_SOLID) && (v3d->drawtype != OB_TEXTURE))
v3d->drawtype = OB_SOLID;
setwinmatrixview3d(sa->winx, sa->winy, NULL); /* 0= no pick rect */
setviewmatrixview3d(); /* note: calls where_is_object for camera... */
@ -2980,6 +2987,8 @@ void draw_depth(ScrArea *sa, void *spacedata)
v3d->drawtype = drawtype;
v3d->zbuf = zbuf;
U.glalphaclip = glalphaclip;
v3d->flag = flag;
}
static void draw_viewport_fps(ScrArea *sa);