Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/compositor/operations/COM_BlurBaseOperation.cc')
-rw-r--r--source/blender/compositor/operations/COM_BlurBaseOperation.cc93
1 files changed, 44 insertions, 49 deletions
diff --git a/source/blender/compositor/operations/COM_BlurBaseOperation.cc b/source/blender/compositor/operations/COM_BlurBaseOperation.cc
index 412632e2e22..702733498c8 100644
--- a/source/blender/compositor/operations/COM_BlurBaseOperation.cc
+++ b/source/blender/compositor/operations/COM_BlurBaseOperation.cc
@@ -19,9 +19,6 @@
#include "COM_BlurBaseOperation.h"
#include "COM_ConstantOperation.h"
-#include "BLI_math.h"
-#include "MEM_guardedalloc.h"
-
#include "RE_pipeline.h"
namespace blender::compositor {
@@ -29,52 +26,52 @@ namespace blender::compositor {
BlurBaseOperation::BlurBaseOperation(DataType data_type)
{
/* data_type is almost always DataType::Color except for alpha-blur */
- this->addInputSocket(data_type);
- this->addInputSocket(DataType::Value);
- this->addOutputSocket(data_type);
- this->flags.complex = true;
- this->m_inputProgram = nullptr;
- memset(&m_data, 0, sizeof(NodeBlurData));
- this->m_size = 1.0f;
- this->m_sizeavailable = false;
- this->m_extend_bounds = false;
+ this->add_input_socket(data_type);
+ this->add_input_socket(DataType::Value);
+ this->add_output_socket(data_type);
+ flags_.complex = true;
+ input_program_ = nullptr;
+ memset(&data_, 0, sizeof(NodeBlurData));
+ size_ = 1.0f;
+ sizeavailable_ = false;
+ extend_bounds_ = false;
use_variable_size_ = false;
}
void BlurBaseOperation::init_data()
{
if (execution_model_ == eExecutionModel::FullFrame) {
- updateSize();
+ update_size();
}
- this->m_data.image_in_width = this->getWidth();
- this->m_data.image_in_height = this->getHeight();
- if (this->m_data.relative) {
+ data_.image_in_width = this->get_width();
+ data_.image_in_height = this->get_height();
+ if (data_.relative) {
int sizex, sizey;
- switch (this->m_data.aspect) {
+ switch (data_.aspect) {
case CMP_NODE_BLUR_ASPECT_Y:
- sizex = sizey = this->m_data.image_in_width;
+ sizex = sizey = data_.image_in_width;
break;
case CMP_NODE_BLUR_ASPECT_X:
- sizex = sizey = this->m_data.image_in_height;
+ sizex = sizey = data_.image_in_height;
break;
default:
- BLI_assert(this->m_data.aspect == CMP_NODE_BLUR_ASPECT_NONE);
- sizex = this->m_data.image_in_width;
- sizey = this->m_data.image_in_height;
+ BLI_assert(data_.aspect == CMP_NODE_BLUR_ASPECT_NONE);
+ sizex = data_.image_in_width;
+ sizey = data_.image_in_height;
break;
}
- this->m_data.sizex = round_fl_to_int(this->m_data.percentx * 0.01f * sizex);
- this->m_data.sizey = round_fl_to_int(this->m_data.percenty * 0.01f * sizey);
+ data_.sizex = round_fl_to_int(data_.percentx * 0.01f * sizex);
+ data_.sizey = round_fl_to_int(data_.percenty * 0.01f * sizey);
}
}
-void BlurBaseOperation::initExecution()
+void BlurBaseOperation::init_execution()
{
- this->m_inputProgram = this->getInputSocketReader(0);
- this->m_inputSize = this->getInputSocketReader(1);
+ input_program_ = this->get_input_socket_reader(0);
+ input_size_ = this->get_input_socket_reader(1);
- QualityStepHelper::initExecution(COM_QH_MULTIPLY);
+ QualityStepHelper::init_execution(COM_QH_MULTIPLY);
}
float *BlurBaseOperation::make_gausstab(float rad, int size)
@@ -89,7 +86,7 @@ float *BlurBaseOperation::make_gausstab(float rad, int size)
sum = 0.0f;
float fac = (rad > 0.0f ? 1.0f / rad : 0.0f);
for (i = -size; i <= size; i++) {
- val = RE_filter_value(this->m_data.filtertype, (float)i * fac);
+ val = RE_filter_value(data_.filtertype, (float)i * fac);
sum += val;
gausstab[i + size] = val;
}
@@ -114,8 +111,6 @@ __m128 *BlurBaseOperation::convert_gausstab_sse(const float *gausstab, int size)
}
#endif
-/* normalized distance from the current (inverted so 1.0 is close and 0.0 is far)
- * 'ease' is applied after, looks nicer */
float *BlurBaseOperation::make_dist_fac_inverse(float rad, int size, int falloff)
{
float *dist_fac_invert, val;
@@ -166,55 +161,55 @@ float *BlurBaseOperation::make_dist_fac_inverse(float rad, int size, int falloff
return dist_fac_invert;
}
-void BlurBaseOperation::deinitExecution()
+void BlurBaseOperation::deinit_execution()
{
- this->m_inputProgram = nullptr;
- this->m_inputSize = nullptr;
+ input_program_ = nullptr;
+ input_size_ = nullptr;
}
-void BlurBaseOperation::setData(const NodeBlurData *data)
+void BlurBaseOperation::set_data(const NodeBlurData *data)
{
- memcpy(&m_data, data, sizeof(NodeBlurData));
+ memcpy(&data_, data, sizeof(NodeBlurData));
}
int BlurBaseOperation::get_blur_size(eDimension dim) const
{
switch (dim) {
case eDimension::X:
- return m_data.sizex;
+ return data_.sizex;
case eDimension::Y:
- return m_data.sizey;
+ return data_.sizey;
}
return -1;
}
-void BlurBaseOperation::updateSize()
+void BlurBaseOperation::update_size()
{
- if (this->m_sizeavailable || use_variable_size_) {
+ if (sizeavailable_ || use_variable_size_) {
return;
}
switch (execution_model_) {
case eExecutionModel::Tiled: {
float result[4];
- this->getInputSocketReader(1)->readSampled(result, 0, 0, PixelSampler::Nearest);
- this->m_size = result[0];
+ this->get_input_socket_reader(1)->read_sampled(result, 0, 0, PixelSampler::Nearest);
+ size_ = result[0];
break;
}
case eExecutionModel::FullFrame: {
NodeOperation *size_input = get_input_operation(SIZE_INPUT_INDEX);
if (size_input->get_flags().is_constant_operation) {
- m_size = *static_cast<ConstantOperation *>(size_input)->get_constant_elem();
+ size_ = *static_cast<ConstantOperation *>(size_input)->get_constant_elem();
} /* Else use default. */
break;
}
}
- this->m_sizeavailable = true;
+ sizeavailable_ = true;
}
void BlurBaseOperation::determine_canvas(const rcti &preferred_area, rcti &r_area)
{
- if (!m_extend_bounds) {
+ if (!extend_bounds_) {
NodeOperation::determine_canvas(preferred_area, r_area);
return;
}
@@ -222,8 +217,8 @@ void BlurBaseOperation::determine_canvas(const rcti &preferred_area, rcti &r_are
switch (execution_model_) {
case eExecutionModel::Tiled: {
NodeOperation::determine_canvas(preferred_area, r_area);
- r_area.xmax += 2 * m_size * m_data.sizex;
- r_area.ymax += 2 * m_size * m_data.sizey;
+ r_area.xmax += 2 * size_ * data_.sizex;
+ r_area.ymax += 2 * size_ * data_.sizey;
break;
}
case eExecutionModel::FullFrame: {
@@ -232,8 +227,8 @@ void BlurBaseOperation::determine_canvas(const rcti &preferred_area, rcti &r_are
* operations. */
set_determined_canvas_modifier([=](rcti &canvas) {
/* Rounding to even prevents jiggling in backdrop while switching size values. */
- canvas.xmax += round_to_even(2 * m_size * m_data.sizex);
- canvas.ymax += round_to_even(2 * m_size * m_data.sizey);
+ canvas.xmax += round_to_even(2 * size_ * data_.sizex);
+ canvas.ymax += round_to_even(2 * size_ * data_.sizey);
});
NodeOperation::determine_canvas(preferred_area, r_area);
break;