[Bf-blender-cvs] [aa3a485e9d1] tmp-workbench-rewrite2: tidier draw_mesh

Miguel Pozo noreply at git.blender.org
Fri Oct 28 15:11:16 CEST 2022


Commit: aa3a485e9d13a497e53f805ca417ea376fdb0d88
Author: Miguel Pozo
Date:   Mon Oct 24 12:54:28 2022 +0200
Branches: tmp-workbench-rewrite2
https://developer.blender.org/rBaa3a485e9d13a497e53f805ca417ea376fdb0d88

tidier draw_mesh

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

M	source/blender/draw/engines/workbench/workbench_engine.cc

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

diff --git a/source/blender/draw/engines/workbench/workbench_engine.cc b/source/blender/draw/engines/workbench/workbench_engine.cc
index 9b0501bdcf1..0d36b70b87f 100644
--- a/source/blender/draw/engines/workbench/workbench_engine.cc
+++ b/source/blender/draw/engines/workbench/workbench_engine.cc
@@ -465,32 +465,31 @@ class Instance {
                  ImageUser *iuser = nullptr)
   {
     const bool in_front = (ob_ref.object->dtx & OB_DRAW_IN_FRONT) != 0;
+
+    auto draw = [&](MeshPass &pass) {
+      pass.sub_pass_get(ob_ref, image, sampler_state, iuser).draw(batch, handle);
+    };
+
     if (xray_mode || material.is_transparent()) {
       if (in_front) {
-        transparent_ps.accumulation_in_front_ps_.sub_pass_get(ob_ref, image, sampler_state, iuser)
-            .draw(batch, handle);
+        draw(transparent_ps.accumulation_in_front_ps_);
         if (draw_transparent_depth) {
-          transparent_depth_ps.in_front_ps_.sub_pass_get(ob_ref, image, sampler_state, iuser)
-              .draw(batch, handle);
+          draw(transparent_depth_ps.in_front_ps_);
         }
       }
       else {
-        transparent_ps.accumulation_ps_.sub_pass_get(ob_ref, image, sampler_state, iuser)
-            .draw(batch, handle);
+        draw(transparent_ps.accumulation_ps_);
         if (draw_transparent_depth) {
-          transparent_depth_ps.main_ps_.sub_pass_get(ob_ref, image, sampler_state, iuser)
-              .draw(batch, handle);
+          draw(transparent_depth_ps.main_ps_);
         }
       }
     }
     else {
       if (in_front) {
-        opaque_ps.gbuffer_in_front_ps_.sub_pass_get(ob_ref, image, sampler_state, iuser)
-            .draw(batch, handle);
+        draw(opaque_ps.gbuffer_in_front_ps_);
       }
       else {
-        opaque_ps.gbuffer_ps_.sub_pass_get(ob_ref, image, sampler_state, iuser)
-            .draw(batch, handle);
+        draw(opaque_ps.gbuffer_ps_);
       }
     }
   }



More information about the Bf-blender-cvs mailing list