Refactor: Naming in Cycles viewport methods

Makes it more explicit they operate on shading/light.

Gives room to move more viewport related settings into this class and
cover with specific or generic modification checks.
This commit is contained in:
Sergey Sharybin 2021-05-27 11:16:40 +02:00
parent 15df83e9c9
commit 616b071c4f
4 changed files with 12 additions and 8 deletions

View File

@ -1373,7 +1373,7 @@ void BlenderSync::sync_world(BL::Depsgraph &b_depsgraph, BL::SpaceView3D &b_v3d,
BlenderViewportParameters new_viewport_parameters(b_v3d);
if (world_recalc || update_all || b_world.ptr.data != world_map ||
viewport_parameters.modified(new_viewport_parameters)) {
viewport_parameters.shader_modified(new_viewport_parameters)) {
Shader *shader = scene->default_background;
ShaderGraph *graph = new ShaderGraph();
@ -1502,7 +1502,7 @@ void BlenderSync::sync_world(BL::Depsgraph &b_depsgraph, BL::SpaceView3D &b_v3d,
}
background->set_use_shader(view_layer.use_background_shader ||
viewport_parameters.custom_viewport_parameters());
viewport_parameters.use_custom_shader());
background->set_use_ao(background->get_use_ao() && view_layer.use_background_ao);
background->tag_update(scene);

View File

@ -225,7 +225,7 @@ void BlenderSync::sync_recalc(BL::Depsgraph &b_depsgraph, BL::SpaceView3D &b_v3d
if (b_v3d) {
BlenderViewportParameters new_viewport_parameters(b_v3d);
if (viewport_parameters.modified(new_viewport_parameters)) {
if (viewport_parameters.shader_modified(new_viewport_parameters)) {
world_recalc = true;
has_updates_ = true;
}

View File

@ -56,8 +56,7 @@ BlenderViewportParameters::BlenderViewportParameters(BL::SpaceView3D &b_v3d)
}
}
/* Check if two instances are different. */
bool BlenderViewportParameters::modified(const BlenderViewportParameters &other) const
bool BlenderViewportParameters::shader_modified(const BlenderViewportParameters &other) const
{
return use_scene_world != other.use_scene_world || use_scene_lights != other.use_scene_lights ||
studiolight_rotate_z != other.studiolight_rotate_z ||
@ -66,7 +65,7 @@ bool BlenderViewportParameters::modified(const BlenderViewportParameters &other)
studiolight_path != other.studiolight_path;
}
bool BlenderViewportParameters::custom_viewport_parameters() const
bool BlenderViewportParameters::use_custom_shader() const
{
return !(use_scene_world && use_scene_lights);
}

View File

@ -29,6 +29,7 @@ CCL_NAMESPACE_BEGIN
class BlenderViewportParameters {
public:
/* Shader. */
bool use_scene_world;
bool use_scene_lights;
float studiolight_rotate_z;
@ -39,8 +40,12 @@ class BlenderViewportParameters {
BlenderViewportParameters();
explicit BlenderViewportParameters(BL::SpaceView3D &b_v3d);
bool modified(const BlenderViewportParameters &other) const;
bool custom_viewport_parameters() const;
/* Check whether any of shading related settings are different from the given parameters. */
bool shader_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;
/* 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. */