[Bf-blender-cvs] [9fdf1074d97] tmp-workbench-rewrite2: Rename DrawConfig > SceneState, ObjectConfig > ObjectState
Miguel Pozo
noreply at git.blender.org
Mon Oct 31 16:29:51 CET 2022
Commit: 9fdf1074d97719a4d1a9cfc7f569d86cc838e572
Author: Miguel Pozo
Date: Mon Oct 31 12:40:46 2022 +0100
Branches: tmp-workbench-rewrite2
https://developer.blender.org/rB9fdf1074d97719a4d1a9cfc7f569d86cc838e572
Rename DrawConfig > SceneState, ObjectConfig > ObjectState
===================================================================
M source/blender/draw/CMakeLists.txt
M source/blender/draw/engines/workbench/workbench_effect_antialiasing.cc
M source/blender/draw/engines/workbench/workbench_effect_cavity.cc
M source/blender/draw/engines/workbench/workbench_effect_dof.cc
M source/blender/draw/engines/workbench/workbench_engine.cc
M source/blender/draw/engines/workbench/workbench_mesh_passes.cc
M source/blender/draw/engines/workbench/workbench_private.hh
M source/blender/draw/engines/workbench/workbench_resources.cc
R083 source/blender/draw/engines/workbench/workbench_config.cc source/blender/draw/engines/workbench/workbench_state.cc
===================================================================
diff --git a/source/blender/draw/CMakeLists.txt b/source/blender/draw/CMakeLists.txt
index 336f10343b9..4fef6a72076 100644
--- a/source/blender/draw/CMakeLists.txt
+++ b/source/blender/draw/CMakeLists.txt
@@ -153,7 +153,6 @@ set(SRC
engines/eevee_next/eevee_velocity.cc
engines/eevee_next/eevee_view.cc
engines/eevee_next/eevee_world.cc
- engines/workbench/workbench_config.cc
engines/workbench/workbench_data.c
engines/workbench/workbench_effect_antialiasing.c
engines/workbench/workbench_effect_antialiasing.cc
@@ -173,6 +172,7 @@ set(SRC
engines/workbench/workbench_shader.cc
engines/workbench/workbench_shader_cache.cc
engines/workbench/workbench_shadow.c
+ engines/workbench/workbench_state.cc
engines/workbench/workbench_transparent.c
engines/workbench/workbench_volume.c
engines/external/external_engine.c
diff --git a/source/blender/draw/engines/workbench/workbench_effect_antialiasing.cc b/source/blender/draw/engines/workbench/workbench_effect_antialiasing.cc
index 37c7aba35ec..8fc70256dd4 100644
--- a/source/blender/draw/engines/workbench/workbench_effect_antialiasing.cc
+++ b/source/blender/draw/engines/workbench/workbench_effect_antialiasing.cc
@@ -128,12 +128,12 @@ AntiAliasingPass::~AntiAliasingPass()
DRW_SHADER_FREE_SAFE(smaa_resolve_sh);
}
-void AntiAliasingPass::init(const DrawConfig &config)
+void AntiAliasingPass::init(const SceneState &scene_state)
{
- if (config.reset_taa) {
+ if (scene_state.reset_taa) {
sample = 0;
}
- sample_len = config.aa_samples;
+ sample_len = scene_state.aa_samples;
/*TODO(Miguel Pozo): This can probably be removed.*/
/*
diff --git a/source/blender/draw/engines/workbench/workbench_effect_cavity.cc b/source/blender/draw/engines/workbench/workbench_effect_cavity.cc
index d02bd6b5b90..8fc78b9aa7f 100644
--- a/source/blender/draw/engines/workbench/workbench_effect_cavity.cc
+++ b/source/blender/draw/engines/workbench/workbench_effect_cavity.cc
@@ -18,16 +18,16 @@
namespace blender::workbench {
-void CavityEffect::init(const DrawConfig &config, UniformBuffer<WorldData> &world_buf)
+void CavityEffect::init(const SceneState &scene_state, UniformBuffer<WorldData> &world_buf)
{
- cavity_enabled = config.draw_cavity;
- curvature_enabled = config.draw_curvature;
+ cavity_enabled = scene_state.draw_cavity;
+ curvature_enabled = scene_state.draw_curvature;
- const int ssao_samples = config.scene->display.matcap_ssao_samples;
- int sample_count = min_ii(max_ii(1, config.aa_samples) * ssao_samples, MAX_SAMPLES);
+ const int ssao_samples = scene_state.scene->display.matcap_ssao_samples;
+ int sample_count = min_ii(max_ii(1, scene_state.aa_samples) * ssao_samples, MAX_SAMPLES);
const int max_iter_count = sample_count / ssao_samples;
- if (config.reset_taa) {
+ if (scene_state.reset_taa) {
sample = 0;
}
sample %= max_iter_count;
@@ -41,17 +41,17 @@ void CavityEffect::init(const DrawConfig &config, UniformBuffer<WorldData> &worl
world_buf.cavity_sample_start);
world_buf.cavity_jitter_scale = 1.0f / 64.0f;
- world_buf.cavity_valley_factor = config.shading.cavity_valley_factor;
- world_buf.cavity_ridge_factor = config.shading.cavity_ridge_factor;
- world_buf.cavity_attenuation = config.scene->display.matcap_ssao_attenuation;
- world_buf.cavity_distance = config.scene->display.matcap_ssao_distance;
+ world_buf.cavity_valley_factor = scene_state.shading.cavity_valley_factor;
+ world_buf.cavity_ridge_factor = scene_state.shading.cavity_ridge_factor;
+ world_buf.cavity_attenuation = scene_state.scene->display.matcap_ssao_attenuation;
+ world_buf.cavity_distance = scene_state.scene->display.matcap_ssao_distance;
world_buf.curvature_ridge = 0.5f /
- max_ff(square_f(config.shading.curvature_ridge_factor), 1e-4f);
- world_buf.curvature_valley = 0.7f /
- max_ff(square_f(config.shading.curvature_valley_factor), 1e-4f);
+ max_ff(square_f(scene_state.shading.curvature_ridge_factor), 1e-4f);
+ world_buf.curvature_valley = 0.7f / max_ff(square_f(scene_state.shading.curvature_valley_factor),
+ 1e-4f);
- if (cavity_enabled || config.draw_dof) {
+ if (cavity_enabled || scene_state.draw_dof) {
setup_resources(ssao_samples, sample_count);
}
}
diff --git a/source/blender/draw/engines/workbench/workbench_effect_dof.cc b/source/blender/draw/engines/workbench/workbench_effect_dof.cc
index 6b85a7b8ef0..f93b8de1245 100644
--- a/source/blender/draw/engines/workbench/workbench_effect_dof.cc
+++ b/source/blender/draw/engines/workbench/workbench_effect_dof.cc
@@ -93,9 +93,9 @@ void DofPass::setup_samples()
samples_buf.push_update();
}
-void DofPass::init(const DrawConfig &config)
+void DofPass::init(const SceneState &scene_state)
{
- enabled = config.draw_dof;
+ enabled = scene_state.draw_dof;
if (!enabled) {
source_tx.free();
@@ -103,7 +103,7 @@ void DofPass::init(const DrawConfig &config)
return;
}
- int2 half_res = config.resolution / 2;
+ int2 half_res = scene_state.resolution / 2;
half_res = {max_ii(half_res.x, 1), max_ii(half_res.y, 1)};
source_tx.ensure_2d(GPU_RGBA16F, half_res, nullptr, 3);
@@ -113,12 +113,12 @@ void DofPass::init(const DrawConfig &config)
coc_halfres_tx.ensure_mip_views();
coc_halfres_tx.filter_mode(true);
- Camera *camera = static_cast<Camera *>(config.camera_object->data);
+ Camera *camera = static_cast<Camera *>(scene_state.camera_object->data);
/* Parameters */
float fstop = camera->dof.aperture_fstop;
float sensor = BKE_camera_sensor_size(camera->sensor_fit, camera->sensor_x, camera->sensor_y);
- float focus_dist = BKE_camera_object_dof_distance(config.camera_object);
+ float focus_dist = BKE_camera_object_dof_distance(scene_state.camera_object);
float focal_len = camera->lens;
/* TODO(fclem): de-duplicate with EEVEE. */
@@ -134,7 +134,7 @@ void DofPass::init(const DrawConfig &config)
aperture_size = aperture * fabsf(focal_len_scaled / (focus_dist - focal_len_scaled));
distance = -focus_dist;
- invsensor_size = config.resolution.x / sensor_scaled;
+ invsensor_size = scene_state.resolution.x / sensor_scaled;
near = -camera->clip_start;
far = -camera->clip_end;
diff --git a/source/blender/draw/engines/workbench/workbench_engine.cc b/source/blender/draw/engines/workbench/workbench_engine.cc
index 43b466bcf1a..793740045c9 100644
--- a/source/blender/draw/engines/workbench/workbench_engine.cc
+++ b/source/blender/draw/engines/workbench/workbench_engine.cc
@@ -23,7 +23,7 @@ GPUMaterial **get_dummy_gpu_materials(int material_count);
class Instance {
public:
- DrawConfig config;
+ SceneState scene_state;
SceneResources resources;
@@ -36,20 +36,20 @@ class Instance {
void init()
{
- config.init();
- resources.init(config);
- dof_ps.init(config);
- anti_aliasing_ps.init(config);
+ scene_state.init();
+ resources.init(scene_state);
+ dof_ps.init(scene_state);
+ anti_aliasing_ps.init(scene_state);
}
void begin_sync()
{
- opaque_ps.sync(config, resources);
- transparent_ps.sync(config, resources);
- transparent_depth_ps.sync(config, resources);
+ opaque_ps.sync(scene_state, resources);
+ transparent_ps.sync(scene_state, resources);
+ transparent_depth_ps.sync(scene_state, resources);
dof_ps.sync(resources);
- anti_aliasing_ps.sync(resources, config.resolution);
+ anti_aliasing_ps.sync(resources, scene_state.resolution);
}
void end_sync()
@@ -64,14 +64,14 @@ class Instance {
return;
}
- const DrawConfig::ObjectConfig doc = config.get_object_config(ob);
+ const SceneState::ObjectState object_state = scene_state.get_object_config(ob);
/* Needed for mesh cache validation, to prevent two copies of
* of vertex color arrays from being sent to the GPU (e.g.
* when switching from eevee to workbench).
*/
if (ob_ref.object->sculpt && ob_ref.object->sculpt->pbvh) {
- BKE_pbvh_is_drawing_set(ob_ref.object->sculpt->pbvh, doc.sculpt_pbvh);
+ BKE_pbvh_is_drawing_set(ob_ref.object->sculpt->pbvh, object_state.sculpt_pbvh);
}
if (ob->type == OB_MESH && ob->modifiers.first != nullptr) {
@@ -90,7 +90,8 @@ class Instance {
if (draw_as == PART_DRAW_PATH) {
/* TODO(Miguel Pozo):
workbench_cache_hair_populate(
- wpd, ob, psys, md, doc.color_type, doc.texture_paint_mode, part->omat);
+ wpd, ob, psys, md, object_state.color_type, object_state.texture_paint_mode,
+ part->omat);
*/
}
}
@@ -98,7 +99,7 @@ class Instance {
if (!(ob->base_flag & BASE_FROM_DUPLI)) {
ModifierData *md = BKE_modifiers_findby_type(ob, eModifierType_Fluid);
- if (md && BKE_modifier_is_enabled(config.scene, md, eModifierMode_Realtime)) {
+ if (md && BKE_modifier_is_enabled(scene_state.scene, md, eModifierMode_Realtime)) {
FluidModifierData *fmd = (FluidModifierData *)md;
if (fmd->domain) {
/* TODO(Miguel Pozo):
@@ -120,38 +121,38 @@ class Instance {
}
if (ELEM(ob->type, OB_MESH, OB_POINTCLOUD)) {
- mesh_sync(manager, ob_ref, doc);
+ mesh_sync(manager, ob_ref, object_state);
}
else if (ob->type == OB_CURVES) {
/* TODO(Miguel Pozo):
DRWShadingGroup *grp = workbench_material_hair_setup(
- wpd, ob, CURVES_MATERIAL_NR, doc.color_type);
+ wpd, ob, CURVES_MATERIAL_NR, object_state.color_type);
DRW_shgroup_curves_create_sub(ob, grp, NULL);
*/
}
else if (ob->type == OB_VOLUME) {
- if (config.shading.type != OB_WIRE) {
+ if (scene_state.shading.type != OB_WIRE) {
/* TODO(Miguel Pozo):
- workbench_volume_cache_populate(vedata, wpd->scene, ob, NULL, doc.color_type);
+ workbench_volume_cache_populate(vedata, wpd->scene, ob, NULL, object_state.color_type);
*/
}
}
}
- void mesh_sync(Manager &manager, ObjectRef &ob_ref, const DrawConfig::ObjectConfig &doc)
+ void mesh_s
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list