From 05315af81dec2dd503c73f92680d2d6d72cd2b28 Mon Sep 17 00:00:00 2001 From: Manuel Castilla Date: Mon, 26 Jul 2021 22:44:10 +0200 Subject: Fix compile error on macos introduced in last commit std::optional::value() is not available on macos. --- .../compositor/operations/COM_ScaleOperation.cc | 23 +++++++--------------- .../compositor/operations/COM_ScaleOperation.h | 1 + 2 files changed, 8 insertions(+), 16 deletions(-) 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 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(); + return 1.0f; } float ScaleOperation::get_constant_scale_x() { - std::optional 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 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); -- cgit v1.2.3