Followup for fix T38318: Add back previous fix and fix a glitch.
authorIRIE Shinsuke <irieshinsuke@yahoo.co.jp>
Wed, 12 Mar 2014 17:50:01 +0000 (02:50 +0900)
committerIRIE Shinsuke <irieshinsuke@yahoo.co.jp>
Wed, 12 Mar 2014 18:46:44 +0000 (03:46 +0900)
The previous fix 162d6c73e3d0 has been cancelled because it caused a
problem that mesh deform cages and so on mess up the preview. To avoid
the problem, viewport doesn't show mesh object if its draw type is
bounding box or wireframe.

Reviewers: brecht

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D375

source/blender/makesrna/intern/rna_object.c
source/blender/render/intern/source/convertblender.c

index 8a2d412ff56fca318e4f36b84526c18953a6202f..b46b1e71c3295a75fd2578c78b78c6e2fb4972d8 100644 (file)
@@ -2646,7 +2646,7 @@ static void rna_def_object(BlenderRNA *brna)
        RNA_def_property_enum_sdna(prop, NULL, "dt");
        RNA_def_property_enum_items(prop, drawtype_items);
        RNA_def_property_ui_text(prop, "Maximum Draw Type",  "Maximum draw type to display object with in viewport");
-       RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, NULL);
+       RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Object_internal_update");
 
        prop = RNA_def_property(srna, "show_bounds", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "dtx", OB_DRAWBOUNDOX);
index 833acb68a7c36ca7b26ac63bc14ffc3de099d170..53845b91c75078103e57f56a2740732ef21e8d45 100644 (file)
@@ -3929,12 +3929,7 @@ static GroupObject *add_render_lamp(Render *re, Object *ob)
 static bool is_object_hidden(Render *re, Object *ob)
 {
        if (re->r.scemode & R_VIEWPORT_PREVIEW)
-               /* note: in rendered viewport, for now we always use render visibility rather than
-                * viewport visibility, because using viewport visibility can cause some problems.
-                * for example, mesh deform cage is drawn as a solid/textured mesh (not a wireframe
-                * mesh) and its unnecessary surfaces and shadows mess up the preview. we need more
-                * discussion about the way to take viewport visibility into account. */
-               return (ob->restrictflag & OB_RESTRICT_RENDER) != 0;
+               return (ob->restrictflag & OB_RESTRICT_VIEW) != 0 || ELEM(ob->dt, OB_BOUNDBOX, OB_WIRE);
        else
                return (ob->restrictflag & OB_RESTRICT_RENDER) != 0;
 }