Changeset View
Changeset View
Standalone View
Standalone View
source/blender/compositor/operations/COM_BilateralBlurOperation.h
| Show All 12 Lines | |||||
| * along with this program; if not, write to the Free Software Foundation, | * along with this program; if not, write to the Free Software Foundation, | ||||
| * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | ||||
| * | * | ||||
| * Copyright 2011, Blender Foundation. | * Copyright 2011, Blender Foundation. | ||||
| */ | */ | ||||
| #pragma once | #pragma once | ||||
| #include "COM_NodeOperation.h" | #include "COM_FullFrameBufferedOperation.h" | ||||
| #include "COM_QualityStepHelper.h" | #include "COM_QualityStepHelper.h" | ||||
| namespace blender::compositor { | namespace blender::compositor { | ||||
| class BilateralBlurOperation : public NodeOperation, public QualityStepHelper { | class BilateralBlurOperation : public FullFrameBufferedOperation, public QualityStepHelper { | ||||
| private: | private: | ||||
| SocketReader *m_inputColorProgram; | SocketReader *m_inputColorProgram; | ||||
| SocketReader *m_inputDeterminatorProgram; | SocketReader *m_inputDeterminatorProgram; | ||||
| NodeBilateralBlurData *m_data; | NodeBilateralBlurData *m_data; | ||||
| float m_space; | float m_space; | ||||
| public: | public: | ||||
| BilateralBlurOperation(); | BilateralBlurOperation(); | ||||
| /** | /** | ||||
| * The inner loop of this operation. | * The inner loop of this operation. | ||||
| */ | */ | ||||
| void executePixel(float output[4], int x, int y, void *data) override; | void executePixel(float output[4], int x, int y, void *data) override; | ||||
| void update_memory_buffer(MemoryBuffer *output_buffer, | |||||
| rcti *output_rect, | |||||
| blender::Span<MemoryBuffer *> inputs); | |||||
| /** | /** | ||||
| * Initialize the execution | * Initialize the execution | ||||
| */ | */ | ||||
| void initExecution() override; | void initExecution() override; | ||||
| /** | /** | ||||
| * Deinitialize the execution | * Deinitialize the execution | ||||
| */ | */ | ||||
| void deinitExecution() override; | void deinitExecution() override; | ||||
| bool determineDependingAreaOfInterest(rcti *input, | bool determineDependingAreaOfInterest(rcti *input, | ||||
| ReadBufferOperation *readOperation, | ReadBufferOperation *readOperation, | ||||
| rcti *output) override; | rcti *output) override; | ||||
| void get_input_area_of_interest(int input_socket_index, | |||||
| const rcti *output_rect, | |||||
| rcti *r_input_area) override; | |||||
| void setData(NodeBilateralBlurData *data) | void setData(NodeBilateralBlurData *data) | ||||
| { | { | ||||
| this->m_data = data; | this->m_data = data; | ||||
| } | } | ||||
| }; | }; | ||||
| } // namespace blender::compositor | } // namespace blender::compositor | ||||