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:
Diffstat (limited to 'source/blender/editors/space_view3d/drawobject.c')
-rw-r--r--source/blender/editors/space_view3d/drawobject.c30
1 files changed, 16 insertions, 14 deletions
diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c
index 29e6b77e0d4..ef1521ab8ca 100644
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@ -3003,7 +3003,7 @@ static void draw_em_measure_stats(View3D *v3d, Object *ob, BMEditMesh *em, UnitS
interp_v3_v3v3(fvec, vmid, v2, 0.8f);
}
else {
- angle = angle_v3v3v3(loop->prev->v->co, loop->v->co, loop->v->co);
+ angle = angle_v3v3v3(loop->prev->v->co, loop->v->co, loop->next->v->co);
interp_v3_v3v3(fvec, vmid, loop->v->co, 0.8f);
}
@@ -3616,7 +3616,7 @@ static int draw_mesh_object(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
}
else {
/* ob->bb was set by derived mesh system, do NULL check just to be sure */
- if (me->totpoly <= 4 || (ob->bb && ED_view3d_boundbox_clip(rv3d, ob->obmat, ob->bb))) {
+ if (me->totpoly <= 4 || (!ob->bb || ED_view3d_boundbox_clip(rv3d, ob->obmat, ob->bb))) {
glsl = draw_glsl_material(scene, ob, v3d, dt);
check_alpha = check_alpha_pass(base);
@@ -3633,19 +3633,21 @@ static int draw_mesh_object(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
}
}
- /* GPU_begin_object_materials checked if this is needed */
- if (do_alpha_after) {
- if (ob->dtx & OB_DRAWXRAY) {
- add_view3d_after(&v3d->afterdraw_xraytransp, base, flag);
- }
- else {
- add_view3d_after(&v3d->afterdraw_transp, base, flag);
+ if ((flag & DRAW_PICKING) == 0 && (base->flag & OB_FROMDUPLI) == 0) {
+ /* GPU_begin_object_materials checked if this is needed */
+ if (do_alpha_after) {
+ if (ob->dtx & OB_DRAWXRAY) {
+ add_view3d_after(&v3d->afterdraw_xraytransp, base, flag);
+ }
+ else {
+ add_view3d_after(&v3d->afterdraw_transp, base, flag);
+ }
}
- }
- else if (ob->dtx & OB_DRAWXRAY && ob->dtx & OB_DRAWTRANSP) {
- /* special case xray+transp when alpha is 1.0, without this the object vanishes */
- if (v3d->xray == 0 && v3d->transp == 0) {
- add_view3d_after(&v3d->afterdraw_xray, base, flag);
+ else if (ob->dtx & OB_DRAWXRAY && ob->dtx & OB_DRAWTRANSP) {
+ /* special case xray+transp when alpha is 1.0, without this the object vanishes */
+ if (v3d->xray == 0 && v3d->transp == 0) {
+ add_view3d_after(&v3d->afterdraw_xray, base, flag);
+ }
}
}