[Bf-blender-cvs] [f5e76aa39e3] master: Cleanup: Array types, const, math API in workbench code

Hans Goudey noreply at git.blender.org
Fri Jan 27 18:35:20 CET 2023


Commit: f5e76aa39e3ff40a4c85e79ff70e8e6b02fcfaa7
Author: Hans Goudey
Date:   Fri Jan 27 11:33:40 2023 -0600
Branches: master
https://developer.blender.org/rBf5e76aa39e3ff40a4c85e79ff70e8e6b02fcfaa7

Cleanup: Array types, const, math API in workbench code

Some miscellaneous cleanups left over from a fix/cleanup combo:
- Use const variables
- Use the C++ `math` namespace functions
- Use `std::array` for arrays with size known at compile time
- Use `MutableSpan` instead of reference to array

Differential Revision: https://developer.blender.org/D17094

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

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

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

diff --git a/source/blender/draw/engines/workbench/workbench_effect_antialiasing.cc b/source/blender/draw/engines/workbench/workbench_effect_antialiasing.cc
index 75be8279037..e00d67d4d0f 100644
--- a/source/blender/draw/engines/workbench/workbench_effect_antialiasing.cc
+++ b/source/blender/draw/engines/workbench/workbench_effect_antialiasing.cc
@@ -8,25 +8,23 @@
 namespace blender::workbench {
 
 class TaaSamples {
-  void init_samples(Array<float2> &samples, const int size)
+  void init_samples(MutableSpan<float2> samples)
   {
-    samples = Array<float2>(size);
-    BLI_jitter_init((float(*)[2])samples.begin(), size);
+    BLI_jitter_init(reinterpret_cast<float(*)[2]>(samples.data()), samples.size());
 
     /* Find closest element to center */
     int closest_index = 0;
     float closest_squared_distance = 1.0f;
-
     for (int i : samples.index_range()) {
-      float2 sample = samples[i];
-      const float squared_dist = len_squared_v2(sample);
+      const float2 sample = samples[i];
+      const float squared_dist = math::length_squared(sample);
       if (squared_dist < closest_squared_distance) {
         closest_squared_distance = squared_dist;
         closest_index = i;
       }
     }
 
-    float2 closest_sample = samples[closest_index];
+    const float2 closest_sample = samples[closest_index];
 
     for (float2 &sample : samples) {
       /* Move jitter samples so that closest sample is in center */
@@ -43,11 +41,11 @@ class TaaSamples {
     }
 
     /* Sort list based on farthest distance with previous. */
-    for (int i = 0; i < size - 2; i++) {
+    for (int i = 0; i < samples.size() - 2; i++) {
       float squared_dist = 0.0;
       int index = i;
-      for (int j = i + 1; j < size; j++) {
-        const float _squared_dist = len_squared_v2(samples[i] - samples[j]);
+      for (int j = i + 1; j < samples.size(); j++) {
+        const float _squared_dist = math::length_squared(samples[i] - samples[j]);
         if (_squared_dist > squared_dist) {
           squared_dist = _squared_dist;
           index = j;
@@ -58,19 +56,19 @@ class TaaSamples {
   }
 
  public:
-  Array<float2> x5;
-  Array<float2> x8;
-  Array<float2> x11;
-  Array<float2> x16;
-  Array<float2> x32;
+  std::array<float2, 5> x5;
+  std::array<float2, 8> x8;
+  std::array<float2, 11> x11;
+  std::array<float2, 16> x16;
+  std::array<float2, 32> x32;
 
   TaaSamples()
   {
-    init_samples(x5, 5);
-    init_samples(x8, 8);
-    init_samples(x11, 11);
-    init_samples(x16, 16);
-    init_samples(x32, 32);
+    init_samples(x5);
+    init_samples(x8);
+    init_samples(x11);
+    init_samples(x16);
+    init_samples(x32);
   }
 };



More information about the Bf-blender-cvs mailing list