fix [#34825] Transparent background of Empty Images clips objects behind them away...
authorCampbell Barton <ideasman42@gmail.com>
Wed, 3 Apr 2013 05:16:15 +0000 (05:16 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 3 Apr 2013 05:16:15 +0000 (05:16 +0000)
allow 'Transparency' option to be used on empty-images.

release/scripts/startup/bl_ui/properties_object.py
source/blender/editors/space_view3d/drawobject.c

index c5dbe946012a1f59a49b88cb5bf1a8a6b4272723..7c32e72b3e3eecfcc1bf19d2055f9ed479770e9f 100644 (file)
@@ -204,36 +204,40 @@ class OBJECT_PT_display(ObjectButtonsPanel, Panel):
     def draw(self, context):
         layout = self.layout
 
-        ob = context.object
+        obj = context.object
 
         split = layout.split()
         col = split.column()
-        col.prop(ob, "draw_type", text="Type")
+        col.prop(obj, "draw_type", text="Type")
 
         col = split.column()
         row = col.row()
-        row.prop(ob, "show_bounds", text="Bounds")
+        row.prop(obj, "show_bounds", text="Bounds")
         sub = row.row()
-        sub.active = ob.show_bounds
-        sub.prop(ob, "draw_bounds_type", text="")
+        sub.active = obj.show_bounds
+        sub.prop(obj, "draw_bounds_type", text="")
 
         split = layout.split()
 
         col = split.column()
-        col.prop(ob, "show_name", text="Name")
-        col.prop(ob, "show_axis", text="Axis")
-        if ob.type in {'MESH', 'CURVE', 'SURFACE', 'META', 'FONT'}:
+        col.prop(obj, "show_name", text="Name")
+        col.prop(obj, "show_axis", text="Axis")
+        
+        obj_type = obj.type
+        
+        if obj_type in {'MESH', 'CURVE', 'SURFACE', 'META', 'FONT'}:
             # Makes no sense for cameras, armtures, etc.!
-            col.prop(ob, "show_wire", text="Wire")
+            col.prop(obj, "show_wire", text="Wire")
             # Only useful with object having faces/materials...
-            col.prop(ob, "color", text="Object Color")
+            col.prop(obj, "color", text="Object Color")
 
         col = split.column()
-        col.prop(ob, "show_texture_space", text="Texture Space")
-        col.prop(ob, "show_x_ray", text="X-Ray")
-        if ob.type == 'MESH':
-            col.prop(ob, "show_transparent", text="Transparency")
-            col.prop(ob, "show_all_edges")
+        col.prop(obj, "show_texture_space", text="Texture Space")
+        col.prop(obj, "show_x_ray", text="X-Ray")
+        if obj_type == 'MESH' or (obj_type == 'EMPTY' and obj.empty_draw_type == 'IMAGE'):
+            col.prop(obj, "show_transparent", text="Transparency")
+        if obj_type == 'MESH':
+            col.prop(obj, "show_all_edges")
 
 
 class OBJECT_PT_duplication(ObjectButtonsPanel, Panel):
index d203da06f1283076ef56ceb9bb41637a4e9a021b..2f0a2b7cb7a19dc13afe78f0d73c9e52947021a8 100644 (file)
@@ -6363,6 +6363,14 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
                                ED_view3d_after_add(&v3d->afterdraw_xray, base, dflag);
                                return;
                        }
+
+                       /* allow transp option for empty images */
+                       if (ob->type == OB_EMPTY && ob->empty_drawtype == OB_EMPTY_IMAGE) {
+                               if (!v3d->xray && !v3d->transp && !(ob->dtx & OB_DRAWXRAY) && (ob->dtx & OB_DRAWTRANSP)) {
+                                       ED_view3d_after_add(&v3d->afterdraw_transp, base, dflag);
+                                       return;
+                               }
+                       }
                }
        }