Allow explicit control over world background.
authorAntony Riakiotakis <kalast@gmail.com>
Mon, 24 Nov 2014 13:29:09 +0000 (14:29 +0100)
committerAntony Riakiotakis <kalast@gmail.com>
Mon, 24 Nov 2014 13:29:09 +0000 (14:29 +0100)
Previosuly, world was shown on the background if "Render Only" was used.
Now user should be able to set it independently. This is a prelude to
(drumroll)...

release/scripts/startup/bl_ui/space_view3d.py
source/blender/editors/space_view3d/view3d_draw.c
source/blender/makesdna/DNA_view3d_types.h
source/blender/makesrna/intern/rna_space.c

index 0ea552e51e785d94426f380e3afd4ad6c7e88bc9..d0cfd190f0e22b04d3412551a9a3dcf30a858e0d 100644 (file)
@@ -2813,6 +2813,7 @@ class VIEW3D_PT_view3d_display(Panel):
 
         col = layout.column()
         col.prop(view, "show_only_render")
+        col.prop(view, "show_world")
 
         col = layout.column()
         display_all = not view.show_only_render
index 21329e6ffe7469628508af3cfdff5e2261c9e2ee..d681915e555d7c13829cab88156b2a435891867f 100644 (file)
@@ -3211,7 +3211,7 @@ static void view3d_main_area_draw_engine_info(View3D *v3d, RegionView3D *rv3d, A
 static void view3d_main_area_clear(Scene *scene, View3D *v3d, ARegion *ar)
 {
        /* clear background */
-       if (scene->world && (v3d->flag2 & V3D_RENDER_OVERRIDE)) {  /* clear with solid color */
+       if (scene->world && (v3d->flag3 & V3D_SHOW_WORLD)) {  /* clear with solid color */
                if (scene->world->skytype & WO_SKYBLEND) {  /* blend sky */
                        int x, y;
                        float col_hor[3];
index 3efba4882990dbeca6e3d3e85dea0f12f4223bec..0eee28e73d98aa1cdc145a016acf110323472af7 100644 (file)
@@ -201,7 +201,9 @@ typedef struct View3D {
        char gridflag;
 
        /* transform widget info */
-       char twtype, twmode, twflag, pad2[2];
+       char twtype, twmode, twflag;
+       
+       short flag3;
        
        /* afterdraw, for xray & transparent */
        struct ListBase afterdraw_transp;
@@ -267,21 +269,24 @@ typedef struct View3D {
        ((view >= RV3D_VIEW_FRONT) && (view <= RV3D_VIEW_BOTTOM))
 
 /* View3d->flag2 (short) */
-#define V3D_RENDER_OVERRIDE            4
-#define V3D_SOLID_TEX                  8
-#define V3D_SHOW_GPENCIL               16
-#define V3D_LOCK_CAMERA                        32
-#define V3D_RENDER_SHADOW              64              /* This is a runtime only flag that's used to tell draw_mesh_object() that we're doing a shadow pass instead of a regular draw */
-#define V3D_SHOW_RECONSTRUCTION        128
-#define V3D_SHOW_CAMERAPATH            256
-#define V3D_SHOW_BUNDLENAME            512
-#define V3D_BACKFACE_CULLING   1024
-#define V3D_RENDER_BORDER              2048
-#define V3D_SOLID_MATCAP               4096    /* user flag */
-#define V3D_SHOW_SOLID_MATCAP  8192    /* runtime flag */
-#define V3D_OCCLUDE_WIRE               16384
-#define V3D_SHADELESS_TEX              32768
-
+#define V3D_RENDER_OVERRIDE            (1 << 2)
+#define V3D_SOLID_TEX                  (1 << 3)
+#define V3D_SHOW_GPENCIL               (1 << 4)
+#define V3D_LOCK_CAMERA                        (1 << 5)
+#define V3D_RENDER_SHADOW              (1 << 6)                /* This is a runtime only flag that's used to tell draw_mesh_object() that we're doing a shadow pass instead of a regular draw */
+#define V3D_SHOW_RECONSTRUCTION        (1 << 7)
+#define V3D_SHOW_CAMERAPATH            (1 << 8)
+#define V3D_SHOW_BUNDLENAME            (1 << 9)
+#define V3D_BACKFACE_CULLING   (1 << 10)
+#define V3D_RENDER_BORDER              (1 << 11)
+#define V3D_SOLID_MATCAP               (1 << 12)       /* user flag */
+#define V3D_SHOW_SOLID_MATCAP  (1 << 13)       /* runtime flag */
+#define V3D_OCCLUDE_WIRE               (1 << 14)
+#define V3D_SHADELESS_TEX              (1 << 15)
+
+
+/* View3d->flag3 (short) */
+#define V3D_SHOW_WORLD                 (1 << 0)
 
 /* View3D->around */
 #define V3D_CENTER              0
index 68173ebefb4727560d7c6169c472809831564c8c..cb5da547c8082f2798245f2247abb74a7f0a3534 100644 (file)
@@ -2041,6 +2041,11 @@ static void rna_def_space_view3d(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Only Render", "Display only objects which will be rendered");
        RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
        
+       prop = RNA_def_property(srna, "show_world", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "flag3", V3D_SHOW_WORLD);
+       RNA_def_property_ui_text(prop, "World Background", "Display world colors in the background");
+       RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
+
        prop = RNA_def_property(srna, "use_occlude_geometry", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", V3D_ZBUF_SELECT);
        RNA_def_property_ui_text(prop, "Occlude Geometry", "Limit selection to visible (clipped with depth buffer)");