Merge remote-tracking branch 'origin/master' into blender2.8
authorDalai Felinto <dfelinto@gmail.com>
Thu, 25 Jan 2018 13:31:54 +0000 (11:31 -0200)
committerDalai Felinto <dfelinto@gmail.com>
Thu, 25 Jan 2018 13:31:54 +0000 (11:31 -0200)
intern/cycles/blender/addon/properties.py
intern/cycles/blender/addon/ui.py
intern/cycles/blender/addon/version_update.py
source/blender/editors/gpencil/gpencil_edit.c
source/blender/editors/render/render_shading.c
source/blender/editors/space_action/action_select.c
source/blender/editors/space_graph/graph_select.c
source/blender/editors/space_nla/nla_select.c
source/blender/render/intern/source/pipeline.c
source/blender/render/intern/source/render_result.c

index 91119c5c71c534716afcaa5a1a3e04da782a5eba..fb7530f8663649380a47d5309007de238a26d1a3 100644 (file)
@@ -42,9 +42,9 @@ enum_feature_set = (
     )
 
 enum_displacement_methods = (
-    ('BUMP', "Bump", "Bump mapping to simulate the appearance of displacement"),
-    ('TRUE', "True", "Use true displacement only, requires fine subdivision"),
-    ('BOTH', "Both", "Combination of displacement and bump mapping"),
+    ('BUMP', "Bump Only", "Bump mapping to simulate the appearance of displacement"),
+    ('DISPLACEMENT', "Displacement Only", "Use true displacement of surface only, requires fine subdivision"),
+    ('BOTH', "Displacement and Bump", "Combination of true displacement and bump mapping for finer detail"),
     )
 
 enum_bvh_layouts = (
@@ -872,7 +872,7 @@ class CyclesMaterialSettings(bpy.types.PropertyGroup):
                 name="Displacement Method",
                 description="Method to use for the displacement",
                 items=enum_displacement_methods,
-                default='BUMP',
+                default='DISPLACEMENT',
                 )
 
     @classmethod
index 7e650cfef22e78e5c955826430592038ae549929..77e5cc8cf863e4052a293748599e01ec4133930c 100644 (file)
@@ -1250,7 +1250,6 @@ class CYCLES_MATERIAL_PT_displacement(CyclesButtonsPanel, Panel):
 class CYCLES_MATERIAL_PT_settings(CyclesButtonsPanel, Panel):
     bl_label = "Settings"
     bl_context = "material"
-    bl_options = {'DEFAULT_CLOSED'}
 
     @classmethod
     def poll(cls, context):
@@ -1270,8 +1269,11 @@ class CYCLES_MATERIAL_PT_settings(CyclesButtonsPanel, Panel):
 
         if context.scene.cycles.feature_set == 'EXPERIMENTAL':
             col.separator()
-            col.label(text="Displacement:")
+            col.label(text="Geometry:")
             col.prop(cmat, "displacement_method", text="")
+        else:
+            col.separator()
+            col.prop(mat, "pass_index")
 
         col = split.column()
         col.label(text="Volume:")
@@ -1281,26 +1283,40 @@ class CYCLES_MATERIAL_PT_settings(CyclesButtonsPanel, Panel):
         col.prop(cmat, "volume_interpolation", text="")
         col.prop(cmat, "homogeneous_volume", text="Homogeneous")
 
-        layout.separator()
+        if context.scene.cycles.feature_set == 'EXPERIMENTAL':
+            col.separator()
+            col.prop(mat, "pass_index")
+
+
+class CYCLES_MATERIAL_PT_viewport(CyclesButtonsPanel, Panel):
+    bl_label = "Viewport"
+    bl_context = "material"
+    bl_options = {'DEFAULT_CLOSED'}
+
+    @classmethod
+    def poll(cls, context):
+        return context.material and CyclesButtonsPanel.poll(context)
+
+    def draw(self, context):
+        mat = context.material
+
+        layout = self.layout
         split = layout.split()
 
         col = split.column(align=True)
-        col.label("Viewport Color:")
+        col.label("Color:")
         col.prop(mat, "diffuse_color", text="")
         col.prop(mat, "alpha")
 
         col.separator()
-        col.label("Viewport Alpha:")
+        col.label("Alpha:")
         col.prop(mat.game_settings, "alpha_blend", text="")
 
         col = split.column(align=True)
-        col.label("Viewport Specular:")
+        col.label("Specular:")
         col.prop(mat, "specular_color", text="")
         col.prop(mat, "specular_hardness", text="Hardness")
 
-        col.separator()
-        col.prop(mat, "pass_index")
-
 
 class CYCLES_TEXTURE_PT_context(CyclesButtonsPanel, Panel):
     bl_label = ""
@@ -1803,6 +1819,7 @@ classes = (
     CYCLES_MATERIAL_PT_volume,
     CYCLES_MATERIAL_PT_displacement,
     CYCLES_MATERIAL_PT_settings,
+    CYCLES_MATERIAL_PT_viewport,
     CYCLES_TEXTURE_PT_context,
     CYCLES_TEXTURE_PT_node,
     CYCLES_TEXTURE_PT_mapping,
index c105fe9036a75c73c08986de1d0b64e3f9d6bb3f..ec334c715553ee3c2b4ccb836403dc43da78eced 100644 (file)
@@ -360,3 +360,9 @@ def do_versions(self):
     if bpy.data.version <= (2, 79, 1) or \
        (bpy.data.version >= (2, 80, 0) and bpy.data.version <= (2, 80, 3)):
         displacement_nodes_insert()
+
+    if bpy.data.version <= (2, 79, 2):
+        for mat in bpy.data.materials:
+            cmat = mat.cycles
+            if not cmat.is_property_set("displacement_method"):
+                cmat.displacement_method = 'BUMP'
index a82148788c8e15124608654613a905cc8ff1b7fd..22a3224e5639561737c8e5c431cb9723f3f76a11 100644 (file)
@@ -105,7 +105,8 @@ static int gpencil_editmode_toggle_exec(bContext *C, wmOperator *UNUSED(op))
                ED_gpencil_reset_layers_parent(gpd);
        }
 
-       WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | ND_GPENCIL_EDITMODE, NULL);
+       WM_event_add_notifier(C, NC_GPENCIL | ND_DATA, NULL);
+       WM_event_add_notifier(C, NC_GPENCIL | ND_GPENCIL_EDITMODE, NULL);
        WM_event_add_notifier(C, NC_SCENE | ND_MODE, NULL);
        
        return OPERATOR_FINISHED;
@@ -153,7 +154,8 @@ static int gpencil_hideselect_toggle_exec(bContext *C, wmOperator *UNUSED(op))
                ts->gp_sculpt.alpha = 1.0f;
        }
 
-       WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | ND_GPENCIL_EDITMODE, NULL);
+       WM_event_add_notifier(C, NC_GPENCIL | ND_DATA, NULL);
+       WM_event_add_notifier(C, NC_GPENCIL | ND_GPENCIL_EDITMODE, NULL);
        WM_event_add_notifier(C, NC_SCENE | ND_MODE, NULL);
 
        return OPERATOR_FINISHED;
index 6fdbe5e88a2ec203f5734a9feedd666e2aa8109d..270ba2a7947abedf8fb3c808990945909fbb6d84 100644 (file)
@@ -427,7 +427,8 @@ static int material_slot_move_exec(bContext *C, wmOperator *op)
        MEM_freeN(slot_remap);
 
        DEG_id_tag_update(&ob->id, OB_RECALC_DATA);
-       WM_event_add_notifier(C, NC_OBJECT | ND_DRAW | ND_DATA, ob);
+       WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob);
+       WM_event_add_notifier(C, NC_OBJECT | ND_DATA, ob);
 
        return OPERATOR_FINISHED;
 }
index 1c55a0d76cfdc9cf5d531c64c125c89c78ab6fff..110c4d1789d58a8f8958d2567d48184963ec2e93 100644 (file)
@@ -1127,7 +1127,8 @@ static int actkeys_select_leftright_exec(bContext *C, wmOperator *op)
        actkeys_select_leftright(&ac, leftright, selectmode);
        
        /* set notifier that keyframe selection (and channels too) have changed */
-       WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | ND_ANIMCHAN | NA_SELECTED, NULL);
+       WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_SELECTED, NULL);
+       WM_event_add_notifier(C, NC_ANIMATION | ND_ANIMCHAN | NA_SELECTED, NULL);
        
        return OPERATOR_FINISHED;
 }
@@ -1577,7 +1578,8 @@ static int actkeys_clickselect_invoke(bContext *C, wmOperator *op, const wmEvent
        mouse_action_keys(&ac, event->mval, selectmode, column, channel);
        
        /* set notifier that keyframe selection (and channels too) have changed */
-       WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | ND_ANIMCHAN | NA_SELECTED, NULL);
+       WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_SELECTED, NULL);
+       WM_event_add_notifier(C, NC_ANIMATION | ND_ANIMCHAN | NA_SELECTED, NULL);
        
        /* for tweak grab to work */
        return OPERATOR_FINISHED | OPERATOR_PASS_THROUGH;
index 1683fbdbdb9081fca67bbd4f217b13afc9aa605f..392db4ef4b5a9e72143d78ecfd0d62d151f5ef50 100644 (file)
@@ -1003,7 +1003,8 @@ static int graphkeys_select_leftright_exec(bContext *C, wmOperator *op)
        graphkeys_select_leftright(&ac, leftright, selectmode);
        
        /* set notifier that keyframe selection (and channels too) have changed */
-       WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | ND_ANIMCHAN | NA_SELECTED, NULL);
+       WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_SELECTED, NULL);
+       WM_event_add_notifier(C, NC_ANIMATION | ND_ANIMCHAN | NA_SELECTED, NULL);
        
        return OPERATOR_FINISHED;
 }
@@ -1517,7 +1518,8 @@ static int graphkeys_clickselect_invoke(bContext *C, wmOperator *op, const wmEve
        }
        
        /* set notifier that keyframe selection (and also channel selection in some cases) has changed */
-       WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | ND_ANIMCHAN | NA_SELECTED, NULL);
+       WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_SELECTED, NULL);
+       WM_event_add_notifier(C, NC_ANIMATION | ND_ANIMCHAN | NA_SELECTED, NULL);
        
        /* for tweak grab to work */
        return OPERATOR_FINISHED | OPERATOR_PASS_THROUGH;
index 1179401f34602a1d48206691d02d83f838cfbde2..e09e4417d5d239ecf0f0d854511a007311713636 100644 (file)
@@ -444,7 +444,8 @@ static int nlaedit_select_leftright_exec(bContext *C, wmOperator *op)
        nlaedit_select_leftright(C, &ac, leftright, selectmode);
        
        /* set notifier that keyframe selection (and channels too) have changed */
-       WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | ND_ANIMCHAN | NA_SELECTED, NULL);
+       WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_SELECTED, NULL);
+       WM_event_add_notifier(C, NC_ANIMATION | ND_ANIMCHAN | NA_SELECTED, NULL);
        
        return OPERATOR_FINISHED;
 }
index 261d9e2e15964726ef0173ae50594217c3cf6b0c..5a5c99724fe3409d29902e7b8b5ff1f67047a008 100644 (file)
@@ -449,8 +449,6 @@ void RE_AcquireResultImage(Render *re, RenderResult *rr, const int view_id)
                        rr->rectz = rv->rectz;
                        rr->rect32 = rv->rect32;
 
-                       rr->have_combined = (rv->rectf != NULL);
-
                        /* active layer */
                        rl = render_get_active_layer(re, re->result);
 
@@ -861,7 +859,7 @@ void RE_InitState(Render *re, Render *source, RenderData *rd,
                re->result = MEM_callocN(sizeof(RenderResult), "new render result");
                re->result->rectx = re->rectx;
                re->result->recty = re->recty;
-               render_result_view_new(re->result, "new temporary view");
+               render_result_view_new(re->result, "");
        }
        
        if (re->r.scemode & R_VIEWPORT_PREVIEW)
index 10920545b88d535976b8f02a0ed1bf14b7951a4c..6749fedb16ee8595283feab28d6ca06d68e16c1d 100644 (file)
@@ -80,6 +80,8 @@ static void render_result_views_free(RenderResult *res)
 
                MEM_freeN(rv);
        }
+
+       res->have_combined = false;
 }
 
 void render_result_free(RenderResult *res)
@@ -1352,6 +1354,8 @@ void RE_render_result_rect_from_ibuf(RenderResult *rr, RenderData *UNUSED(rd), I
        RenderView *rv = RE_RenderViewGetById(rr, view_id);
 
        if (ibuf->rect_float) {
+               rr->have_combined = true;
+
                if (!rv->rectf)
                        rv->rectf = MEM_mallocN(4 * sizeof(float) * rr->rectx * rr->recty, "render_seq rectf");
                
@@ -1362,6 +1366,8 @@ void RE_render_result_rect_from_ibuf(RenderResult *rr, RenderData *UNUSED(rd), I
                MEM_SAFE_FREE(rv->rect32);
        }
        else if (ibuf->rect) {
+               rr->have_combined = true;
+
                if (!rv->rect32)
                        rv->rect32 = MEM_mallocN(sizeof(int) * rr->rectx * rr->recty, "render_seq rect");