[Bf-blender-cvs] [c67ac34880b] cycles-x: Merge branch 'master' into cycles-x

Sergey Sharybin noreply at git.blender.org
Thu May 27 12:13:26 CEST 2021


Commit: c67ac34880b2d1322a8118d2c9d2494ae1894360
Author: Sergey Sharybin
Date:   Thu May 27 12:13:05 2021 +0200
Branches: cycles-x
https://developer.blender.org/rBc67ac34880b2d1322a8118d2c9d2494ae1894360

Merge branch 'master' into cycles-x

===================================================================



===================================================================

diff --cc intern/cycles/blender/blender_sync.cpp
index 00b37a2ab44,82b3abd4432..04927d869fa
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@@ -399,15 -405,10 +394,16 @@@ void BlenderSync::sync_film(BL::ViewLay
  
    Film *film = scene->film;
  
 -  vector<Pass> prevpasses = scene->passes;
 -
    if (b_v3d) {
-     film->set_display_pass(BlenderViewportParameters::get_render_pass(b_v3d));
 -    film->set_display_pass(update_viewport_display_passes(b_v3d, scene->passes));
++    const BlenderViewportParameters new_viewport_parameters(b_v3d);
++    film->set_display_pass(new_viewport_parameters.display_pass);
 +
 +    if (use_developer_ui) {
 +      film->set_show_active_pixels(BlenderViewportParameters::get_show_active_pixels(b_v3d));
 +    }
 +    else {
 +      film->set_show_active_pixels(false);
 +    }
    }
  
    film->set_exposure(get_float(cscene, "film_exposure"));
diff --cc intern/cycles/blender/blender_viewport.cpp
index e5c5ae662c8,07408fee218..ef7fc50dac1
--- a/intern/cycles/blender/blender_viewport.cpp
+++ b/intern/cycles/blender/blender_viewport.cpp
@@@ -65,31 -67,33 +67,30 @@@ bool BlenderViewportParameters::shader_
           studiolight_path != other.studiolight_path;
  }
  
- const bool BlenderViewportParameters::custom_viewport_parameters() const
+ bool BlenderViewportParameters::film_modified(const BlenderViewportParameters &other) const
  {
-   return !(use_scene_world && use_scene_lights);
+   return display_pass != other.display_pass;
  }
  
- PassType BlenderViewportParameters::get_render_pass(BL::SpaceView3D &b_v3d)
+ bool BlenderViewportParameters::modified(const BlenderViewportParameters &other) const
  {
-   PassType display_pass = PASS_NONE;
-   if (b_v3d) {
-     BL::View3DShading b_view3dshading = b_v3d.shading();
-     PointerRNA cshading = RNA_pointer_get(&b_view3dshading.ptr, "cycles");
-     display_pass = (PassType)get_enum(cshading, "render_pass", -1, -1);
-   }
-   return display_pass;
+   return shader_modified(other) || film_modified(other);
+ }
+ 
+ bool BlenderViewportParameters::use_custom_shader() const
+ {
+   return !(use_scene_world && use_scene_lights);
  }
  
 -PassType update_viewport_display_passes(BL::SpaceView3D &b_v3d, vector<Pass> &passes)
 +bool BlenderViewportParameters::get_show_active_pixels(BL::SpaceView3D &b_v3d)
  {
 +  bool show_active_pixels = PASS_NONE;
    if (b_v3d) {
 -    const BlenderViewportParameters viewport_parameters(b_v3d);
 -    const PassType display_pass = viewport_parameters.display_pass;
 -
 -    passes.clear();
 -    Pass::add(display_pass, passes);
 -
 -    return display_pass;
 +    BL::View3DShading b_view3dshading = b_v3d.shading();
 +    PointerRNA cshading = RNA_pointer_get(&b_view3dshading.ptr, "cycles");
 +    show_active_pixels = get_boolean(cshading, "show_active_pixels");
    }
 -  return PASS_NONE;
 +  return show_active_pixels;
  }
  
  CCL_NAMESPACE_END
diff --cc intern/cycles/blender/blender_viewport.h
index be0f3df3282,d6518597053..605d470a7ae
--- a/intern/cycles/blender/blender_viewport.h
+++ b/intern/cycles/blender/blender_viewport.h
@@@ -36,20 -37,27 +37,27 @@@ class BlenderViewportParameters 
    float studiolight_background_alpha;
    ustring studiolight_path;
  
+   /* Film. */
+   PassType display_pass;
+ 
    BlenderViewportParameters();
-   BlenderViewportParameters(BL::SpaceView3D &b_v3d);
+   explicit BlenderViewportParameters(BL::SpaceView3D &b_v3d);
  
-   const bool modified(const BlenderViewportParameters &other) const;
-   const bool custom_viewport_parameters() const;
-   friend class BlenderSync;
+   /* Check whether any of shading related settings are different from the given parameters. */
+   bool shader_modified(const BlenderViewportParameters &other) const;
  
-  public:
-   /* Retrieve the render pass type that needs to be displayed on the given `SpaceView3D`
-    * When the `b_v3d` parameter is not given `PASS_NONE` will be returned. */
-   static PassType get_render_pass(BL::SpaceView3D &b_v3d);
+   /* Check whether any of film related settings are different from the given parameters. */
+   bool film_modified(const BlenderViewportParameters &other) const;
+ 
+   /* Check whether any of settings are different from the given parameters. */
+   bool modified(const BlenderViewportParameters &other) const;
+ 
+   /* Returns truth when a custom shader defined by the viewport is to be used instead of the
+    * regular background shader or scene light. */
+   bool use_custom_shader() const;
 -};
  
 -PassType update_viewport_display_passes(BL::SpaceView3D &b_v3d, vector<Pass> &passes);
 +  static bool get_show_active_pixels(BL::SpaceView3D &b_v3d);
 +};
  
  CCL_NAMESPACE_END



More information about the Bf-blender-cvs mailing list