[Bf-blender-cvs] [7aa3f60fb3d] temp-eevee-next-cryptomatte: Reduce repeating code blocks.
Jeroen Bakker
noreply at git.blender.org
Tue Aug 23 13:57:23 CEST 2022
Commit: 7aa3f60fb3d517111cb793beece235589cca4f50
Author: Jeroen Bakker
Date: Tue Aug 23 13:38:45 2022 +0200
Branches: temp-eevee-next-cryptomatte
https://developer.blender.org/rB7aa3f60fb3d517111cb793beece235589cca4f50
Reduce repeating code blocks.
===================================================================
M source/blender/draw/engines/eevee_next/eevee_film.cc
===================================================================
diff --git a/source/blender/draw/engines/eevee_next/eevee_film.cc b/source/blender/draw/engines/eevee_next/eevee_film.cc
index 0871c678c9d..9661acdda4c 100644
--- a/source/blender/draw/engines/eevee_next/eevee_film.cc
+++ b/source/blender/draw/engines/eevee_next/eevee_film.cc
@@ -318,34 +318,23 @@ void Film::init(const int2 &extent, const rcti *output_rect)
data_.color_len += data_.aov_color_len;
data_.value_len += data_.aov_value_len;
- data_.cryptomatte_object_id = data_.cryptomatte_asset_id = data_.cryptomatte_material_id = -1;
int cryptomatte_id = 0;
- if (enabled_passes_ & EEVEE_RENDER_PASS_CRYPTOMATTE_OBJECT) {
- data_.cryptomatte_object_id = cryptomatte_id;
- cryptomatte_id += data_.cryptomatte_samples_len / 2;
- if (inst_.is_viewport() &&
- inst_.v3d->shading.render_pass == EEVEE_RENDER_PASS_CRYPTOMATTE_OBJECT) {
- data_.display_id = data_.cryptomatte_object_id;
- data_.display_mode = DISPLAY_MODE_CRYPTOMATTE;
- }
- }
- if (enabled_passes_ & EEVEE_RENDER_PASS_CRYPTOMATTE_ASSET) {
- data_.cryptomatte_asset_id = cryptomatte_id;
- cryptomatte_id += data_.cryptomatte_samples_len / 2;
- if (inst_.is_viewport() &&
- inst_.v3d->shading.render_pass == EEVEE_RENDER_PASS_CRYPTOMATTE_ASSET) {
- data_.display_id = data_.cryptomatte_asset_id;
- data_.display_mode = DISPLAY_MODE_CRYPTOMATTE;
- }
- }
- if (enabled_passes_ & EEVEE_RENDER_PASS_CRYPTOMATTE_MATERIAL) {
- data_.cryptomatte_material_id = cryptomatte_id;
- if (inst_.is_viewport() &&
- inst_.v3d->shading.render_pass == EEVEE_RENDER_PASS_CRYPTOMATTE_MATERIAL) {
- data_.display_id = data_.cryptomatte_material_id;
- data_.display_mode = DISPLAY_MODE_CRYPTOMATTE;
+ auto cryptomatte_index_get = [&](eViewLayerEEVEEPassType pass_type) {
+ int index = -1;
+ if (enabled_passes_ & pass_type) {
+ index = cryptomatte_id;
+ cryptomatte_id += data_.cryptomatte_samples_len / 2;
+
+ if (inst_.is_viewport() && inst_.v3d->shading.render_pass == pass_type) {
+ data_.display_id = index;
+ data_.display_mode = DISPLAY_MODE_CRYPTOMATTE;
+ }
}
- }
+ return index;
+ };
+ data_.cryptomatte_object_id = cryptomatte_index_get(EEVEE_RENDER_PASS_CRYPTOMATTE_OBJECT);
+ data_.cryptomatte_asset_id = cryptomatte_index_get(EEVEE_RENDER_PASS_CRYPTOMATTE_ASSET);
+ data_.cryptomatte_material_id = cryptomatte_index_get(EEVEE_RENDER_PASS_CRYPTOMATTE_MATERIAL);
}
{
/* TODO(@fclem): Over-scans. */
More information about the Bf-blender-cvs
mailing list