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>2010-08-25 16:01:15 +0400
committerCampbell Barton <ideasman42@gmail.com>2010-08-25 16:01:15 +0400
commit967154497dea50b75771b5ae3df630d8f739ac13 (patch)
tree418a24c001505c4c4f27d352f9fadf44f5e6adbe
parent85dcd4c636e6ef68a962d37666412f0cc124f6f6 (diff)
patch [#23376] Fix for Bug[[#23351] X-Ray + Transparency removes X-Ray effect
from Phil Gosch (saphires) minor edit on the patch, was adding V3D_XRAY and V3D_XRAYTRANSP lists, only add to one.
-rw-r--r--source/blender/editors/space_view3d/drawobject.c9
-rw-r--r--source/blender/editors/space_view3d/drawvolume.c2
-rw-r--r--source/blender/editors/space_view3d/view3d_draw.c11
-rw-r--r--source/blender/editors/space_view3d/view3d_intern.h1
4 files changed, 20 insertions, 3 deletions
diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c
index 967b800b97f..df3bc3d479d 100644
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@ -5537,8 +5537,13 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
/* don't do xray in particle mode, need the z-buffer */
if(!(ob->mode & OB_MODE_PARTICLE_EDIT)) {
/* xray and transp are set when it is drawing the 2nd/3rd pass */
- if(!v3d->xray && !v3d->transp && (ob->dtx & OB_DRAWXRAY) && !(ob->dtx & OB_DRAWTRANSP)) {
- add_view3d_after(v3d, base, V3D_XRAY, flag);
+ if(!v3d->xray && !v3d->transp && (ob->dtx & OB_DRAWXRAY)) {
+ if(ob->dtx & OB_DRAWTRANSP) {
+ add_view3d_after(v3d, base, V3D_XRAYTRANSP, flag);
+ }
+ else {
+ add_view3d_after(v3d, base, V3D_XRAY, flag);
+ }
return;
}
}
diff --git a/source/blender/editors/space_view3d/drawvolume.c b/source/blender/editors/space_view3d/drawvolume.c
index 65786901868..678920f8173 100644
--- a/source/blender/editors/space_view3d/drawvolume.c
+++ b/source/blender/editors/space_view3d/drawvolume.c
@@ -116,6 +116,7 @@ static void tend ( void )
{
gettimeofday ( &_tend,&tz );
}
+ #if 0
static double tval()
{
double t1, t2;
@@ -123,6 +124,7 @@ static double tval()
t2 = ( double ) _tend.tv_sec*1000 + ( double ) _tend.tv_usec/ ( 1000 );
return t2-t1;
}
+ #endif
#endif
struct GPUTexture;
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index e48aef2a12c..db6127210f7 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -1440,7 +1440,7 @@ static void view3d_draw_xray(Scene *scene, ARegion *ar, View3D *v3d, int clear)
int doit= 0;
for(v3da= v3d->afterdraw.first; v3da; v3da= v3da->next)
- if(v3da->type==V3D_XRAY) doit= 1;
+ if(v3da->type==V3D_XRAY || v3da->type==V3D_XRAYTRANSP) doit= 1;
if(doit) {
if(clear && v3d->zbuf) glClear(GL_DEPTH_BUFFER_BIT);
@@ -1453,6 +1453,13 @@ static void view3d_draw_xray(Scene *scene, ARegion *ar, View3D *v3d, int clear)
BLI_remlink(&v3d->afterdraw, v3da);
MEM_freeN(v3da);
}
+ else if(v3da->type==V3D_XRAYTRANSP){
+ v3d->transp= TRUE;
+ draw_object(scene, ar, v3d, v3da->base, v3da->flag);
+ BLI_remlink(&v3d->afterdraw, v3da);
+ MEM_freeN(v3da);
+ v3d->transp= FALSE;
+ }
}
v3d->xray= FALSE;
}
@@ -1767,6 +1774,8 @@ void draw_depth(Scene *scene, ARegion *ar, View3D *v3d, int (* func)(void *))
v3d->xray= TRUE; v3d->transp= FALSE;
} else if (v3da->type==V3D_TRANSP) {
v3d->xray= FALSE; v3d->transp= TRUE;
+ } else if (v3da->type == V3D_XRAYTRANSP) {
+ v3d->xray= TRUE; v3d->transp= TRUE;
}
draw_object(scene, ar, v3d, v3da->base, 0); /* Draw Xray or Transp objects normally */
diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h
index d51a45f92ad..5042411183f 100644
--- a/source/blender/editors/space_view3d/view3d_intern.h
+++ b/source/blender/editors/space_view3d/view3d_intern.h
@@ -56,6 +56,7 @@ struct bMotionPath;
#define V3D_XRAY 1
#define V3D_TRANSP 2
+#define V3D_XRAYTRANSP 4
#define V3D_SELECT_MOUSE 1