[Bf-blender-cvs] [05315af81de] master: Fix compile error on macos introduced in last commit

Manuel Castilla noreply at git.blender.org
Mon Jul 26 22:46:05 CEST 2021


Commit: 05315af81dec2dd503c73f92680d2d6d72cd2b28
Author: Manuel Castilla
Date:   Mon Jul 26 22:44:10 2021 +0200
Branches: master
https://developer.blender.org/rB05315af81dec2dd503c73f92680d2d6d72cd2b28

Fix compile error on macos introduced in last commit

std::optional::value() is not available on macos.

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

M	source/blender/compositor/operations/COM_ScaleOperation.cc
M	source/blender/compositor/operations/COM_ScaleOperation.h

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

diff --git a/source/blender/compositor/operations/COM_ScaleOperation.cc b/source/blender/compositor/operations/COM_ScaleOperation.cc
index 2cb61ae746b..5410b2c832a 100644
--- a/source/blender/compositor/operations/COM_ScaleOperation.cc
+++ b/source/blender/compositor/operations/COM_ScaleOperation.cc
@@ -54,33 +54,24 @@ ScaleOperation::ScaleOperation(DataType data_type) : BaseScaleOperation()
   this->m_inputYOperation = nullptr;
 }
 
-static std::optional<float> get_constant_scale(NodeOperation *op)
+float ScaleOperation::get_constant_scale(const int input_op_idx, const float factor)
 {
-  if (op->get_flags().is_constant_operation) {
-    return ((ConstantOperation *)op)->get_constant_elem()[0];
+  const bool is_constant = getInputOperation(input_op_idx)->get_flags().is_constant_operation;
+  if (is_constant) {
+    return ((ConstantOperation *)getInputOperation(input_op_idx))->get_constant_elem()[0] * factor;
   }
 
-  return std::optional<float>();
+  return 1.0f;
 }
 
 float ScaleOperation::get_constant_scale_x()
 {
-  std::optional<float> scale_x = get_constant_scale(getInputOperation(1));
-  if (scale_x.has_value()) {
-    return scale_x.value() * get_relative_scale_x_factor();
-  }
-
-  return 1.0f;
+  return get_constant_scale(1, get_relative_scale_x_factor());
 }
 
 float ScaleOperation::get_constant_scale_y()
 {
-  std::optional<float> scale_y = get_constant_scale(getInputOperation(2));
-  if (scale_y.has_value()) {
-    return scale_y.value() * get_relative_scale_y_factor();
-  }
-
-  return 1.0f;
+  return get_constant_scale(2, get_relative_scale_y_factor());
 }
 
 BLI_INLINE float scale_coord(const int coord, const float center, const float relative_scale)
diff --git a/source/blender/compositor/operations/COM_ScaleOperation.h b/source/blender/compositor/operations/COM_ScaleOperation.h
index b2f41a1e98a..62a2cabc8e6 100644
--- a/source/blender/compositor/operations/COM_ScaleOperation.h
+++ b/source/blender/compositor/operations/COM_ScaleOperation.h
@@ -71,6 +71,7 @@ class ScaleOperation : public BaseScaleOperation {
   virtual float get_relative_scale_y_factor() = 0;
 
  private:
+  float get_constant_scale(int input_op_idx, float factor);
   float get_constant_scale_x();
   float get_constant_scale_y();
   void scale_area(rcti &rect, float scale_x, float scale_y);



More information about the Bf-blender-cvs mailing list