Blender  V3.3
Protected Member Functions | Protected Attributes | List of all members
blender::compositor::MultiThreadedOperation Class Referenceabstract

#include <COM_MultiThreadedOperation.h>

Inheritance diagram for blender::compositor::MultiThreadedOperation:
blender::compositor::NodeOperation blender::compositor::AntiAliasOperation blender::compositor::BaseImageOperation blender::compositor::BaseScaleOperation blender::compositor::BilateralBlurOperation blender::compositor::BlurBaseOperation blender::compositor::BokehBlurOperation blender::compositor::BokehImageOperation blender::compositor::BoxMaskOperation blender::compositor::BrightnessOperation blender::compositor::CalculateMeanOperation blender::compositor::ChangeHSVOperation blender::compositor::ChannelMatteOperation blender::compositor::ChromaMatteOperation blender::compositor::ColorMatteOperation blender::compositor::ColorRampOperation blender::compositor::ColorSpillOperation blender::compositor::CombineChannelsOperation blender::compositor::CompositorOperation blender::compositor::ConvertBaseOperation blender::compositor::ConvertColorSpaceOperation blender::compositor::ConvertDepthToRadiusOperation blender::compositor::ConvolutionFilterOperation blender::compositor::CropBaseOperation blender::compositor::CryptomatteOperation blender::compositor::CurveBaseOperation blender::compositor::DespeckleOperation blender::compositor::DifferenceMatteOperation blender::compositor::DilateDistanceOperation blender::compositor::DilateErodeThresholdOperation blender::compositor::DilateStepOperation blender::compositor::DirectionalBlurOperation blender::compositor::DisplaceOperation blender::compositor::DisplaceSimpleOperation blender::compositor::DistanceRGBMatteOperation blender::compositor::DotproductOperation blender::compositor::EllipseMaskOperation blender::compositor::FastGaussianBlurValueOperation blender::compositor::FlipOperation blender::compositor::GammaCorrectOperation blender::compositor::GammaUncorrectOperation blender::compositor::GlareThresholdOperation blender::compositor::IDMaskOperation blender::compositor::InvertOperation blender::compositor::KeyingBlurOperation blender::compositor::KeyingClipOperation blender::compositor::KeyingDespillOperation blender::compositor::KeyingOperation blender::compositor::KeyingScreenOperation blender::compositor::LuminanceMatteOperation blender::compositor::MapRangeOperation blender::compositor::MapUVOperation blender::compositor::MapValueOperation blender::compositor::MaskOperation blender::compositor::MathBaseOperation blender::compositor::MixBaseOperation blender::compositor::MovieClipBaseOperation blender::compositor::MovieDistortionOperation blender::compositor::MultiThreadedRowOperation blender::compositor::NormalizeOperation blender::compositor::OutputOpenExrMultiLayerOperation blender::compositor::OutputSingleLayerOperation blender::compositor::PlaneDistortBaseOperation blender::compositor::PosterizeOperation blender::compositor::PreviewOperation blender::compositor::ProjectorLensDistortionOperation blender::compositor::RenderLayersProg blender::compositor::RotateOperation blender::compositor::SMAABlendingWeightCalculationOperation blender::compositor::SMAAEdgeDetectionOperation blender::compositor::SMAANeighborhoodBlendingOperation blender::compositor::ScreenLensDistortionOperation blender::compositor::SeparateChannelOperation blender::compositor::SetAlphaMultiplyOperation blender::compositor::SetAlphaReplaceOperation blender::compositor::SplitOperation blender::compositor::SunBeamsOperation blender::compositor::TextureBaseOperation blender::compositor::TonemapOperation blender::compositor::TransformOperation blender::compositor::TranslateOperation blender::compositor::VariableSizeBokehBlurOperation blender::compositor::ViewerOperation blender::compositor::ZCombineMaskOperation blender::compositor::ZCombineOperation

Protected Member Functions

 MultiThreadedOperation ()
 
virtual void update_memory_buffer_started (MemoryBuffer *UNUSED(output), const rcti &UNUSED(area), Span< MemoryBuffer * > UNUSED(inputs))
 
virtual void update_memory_buffer_partial (MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs)=0
 
virtual void update_memory_buffer_finished (MemoryBuffer *UNUSED(output), const rcti &UNUSED(area), Span< MemoryBuffer * > UNUSED(inputs))
 
- Protected Member Functions inherited from blender::compositor::NodeOperation
 NodeOperation ()
 
virtual void hash_output_params ()
 
template<typename T >
void hash_param (T param)
 
template<typename T1 , typename T2 >
void hash_params (T1 param1, T2 param2)
 
template<typename T1 , typename T2 , typename T3 >
void hash_params (T1 param1, T2 param2, T3 param3)
 
void add_input_socket (DataType datatype, ResizeMode resize_mode=ResizeMode::Center)
 
void add_output_socket (DataType datatype)
 
void set_width (unsigned int width)
 
void set_height (unsigned int height)
 
SocketReaderget_input_socket_reader (unsigned int index)
 
void deinit_mutex ()
 
void init_mutex ()
 
void lock_mutex ()
 
void unlock_mutex ()
 
void set_complex (bool complex)
 set whether this operation is complex More...
 
virtual void execute_pixel_sampled (float[4], float, float, PixelSampler)
 calculate a single pixel More...
 
virtual void execute_pixel (float output[4], int x, int y, void *)
 calculate a single pixel More...
 
virtual void execute_pixel_filtered (float[4], float, float, float[2], float[2])
 calculate a single pixel using an EWA filter More...
 

Protected Attributes

int num_passes_
 
int current_pass_
 
- Protected Attributes inherited from blender::compositor::NodeOperation
eExecutionModel execution_model_
 
rcti canvas_ = COM_AREA_NONE
 
NodeOperationFlags flags_
 
ExecutionSystemexec_system_
 

Additional Inherited Members

- Public Member Functions inherited from blender::compositor::NodeOperation
virtual ~NodeOperation ()
 
void set_name (const std::string name)
 
const std::string get_name () const
 
void set_id (const int id)
 
const int get_id () const
 
float get_constant_value_default (float default_value)
 
const floatget_constant_elem_default (const float *default_elem)
 
const NodeOperationFlags get_flags () const
 
std::optional< NodeOperationHashgenerate_hash ()
 
unsigned int get_number_of_input_sockets () const
 
unsigned int get_number_of_output_sockets () const
 
NodeOperationOutputget_output_socket (unsigned int index=0)
 
NodeOperationInputget_input_socket (unsigned int index)
 
NodeOperationget_input_operation (int index)
 
virtual void determine_canvas (const rcti &preferred_area, rcti &r_area)
 
virtual bool is_output_operation (bool) const
 is_output_operation determines whether this operation is an output of the ExecutionSystem during rendering or editing. More...
 
void set_execution_model (const eExecutionModel model)
 
void set_bnodetree (const bNodeTree *tree)
 
void set_execution_system (ExecutionSystem *system)
 
virtual void init_data ()
 
virtual void init_execution ()
 
virtual void execute_region (rcti *, unsigned int)
 when a chunk is executed by a CPUDevice, this method is called More...
 
virtual void execute_opencl_region (OpenCLDevice *, rcti *, unsigned int, MemoryBuffer **, MemoryBuffer *)
 when a chunk is executed by an OpenCLDevice, this method is called More...
 
virtual void execute_opencl (OpenCLDevice *, MemoryBuffer *, cl_mem, MemoryBuffer **, std::list< cl_mem > *, std::list< cl_kernel > *)
 custom handle to add new tasks to the OpenCL command queue in order to execute a chunk on an GPUDevice. More...
 
virtual void deinit_execution ()
 
void set_canvas (const rcti &canvas_area)
 
const rctiget_canvas () const
 
void unset_canvas ()
 
virtual bool is_active_viewer_output () const
 is this operation the active viewer output user can select an ViewerNode to be active (the result of this node will be drawn on the backdrop). More...
 
virtual bool determine_depending_area_of_interest (rcti *input, ReadBufferOperation *read_operation, rcti *output)
 
void set_canvas_input_index (unsigned int index)
 set the index of the input socket that will determine the canvas of this operation More...
 
void set_determined_canvas_modifier (std::function< void(rcti &canvas)> fn)
 
virtual eCompositorPriority get_render_priority () const
 get the render priority of this node. More...
 
bool is_braked () const
 
void update_draw ()
 
unsigned int get_width () const
 
unsigned int get_height () const
 
void read_sampled (float result[4], float x, float y, PixelSampler sampler)
 
void read_filtered (float result[4], float x, float y, float dx[2], float dy[2])
 
void read (float result[4], int x, int y, void *chunk_data)
 
virtual voidinitialize_tile_data (rcti *)
 
virtual void deinitialize_tile_data (rcti *, void *)
 
virtual MemoryBufferget_input_memory_buffer (MemoryBuffer **)
 
virtual std::unique_ptr< MetaDataget_meta_data ()
 
void render (MemoryBuffer *output_buf, Span< rcti > areas, Span< MemoryBuffer * > inputs_bufs)
 
virtual void update_memory_buffer (MemoryBuffer *UNUSED(output), const rcti &UNUSED(area), Span< MemoryBuffer * > UNUSED(inputs))
 
virtual void get_area_of_interest (int input_idx, const rcti &output_area, rcti &r_input_area)
 Get input operation area being read by this operation on rendering given output area. More...
 
void get_area_of_interest (NodeOperation *input_op, const rcti &output_area, rcti &r_input_area)
 
- Static Protected Member Functions inherited from blender::compositor::NodeOperation
static void combine_hashes (size_t &combined, size_t other)
 

Detailed Description

Definition at line 10 of file COM_MultiThreadedOperation.h.

Constructor & Destructor Documentation

◆ MultiThreadedOperation()

blender::compositor::MultiThreadedOperation::MultiThreadedOperation ( )
protected

Member Function Documentation

◆ update_memory_buffer_finished()

virtual void blender::compositor::MultiThreadedOperation::update_memory_buffer_finished ( MemoryBuffer UNUSEDoutput,
const rcti UNUSEDarea,
Span< MemoryBuffer * >   UNUSEDinputs 
)
inlineprotectedvirtual

Called after an update memory buffer pass is executed. Single-threaded calls.

Definition at line 43 of file COM_MultiThreadedOperation.h.

◆ update_memory_buffer_partial()

virtual void blender::compositor::MultiThreadedOperation::update_memory_buffer_partial ( MemoryBuffer output,
const rcti area,
Span< MemoryBuffer * >  inputs 
)
protectedpure virtual

Executes operation updating a memory buffer area. Multi-threaded calls.

Implemented in blender::compositor::ZCombineMaskOperation, blender::compositor::ZCombineOperation, blender::compositor::ViewerOperation, blender::compositor::VectorCurveOperation, blender::compositor::VariableSizeBokehBlurOperation, blender::compositor::TranslateOperation, blender::compositor::TransformOperation, blender::compositor::PhotoreceptorTonemapOperation, blender::compositor::TonemapOperation, blender::compositor::TextureAlphaOperation, blender::compositor::TextureBaseOperation, blender::compositor::SunBeamsOperation, blender::compositor::SplitOperation, blender::compositor::SMAANeighborhoodBlendingOperation, blender::compositor::SMAABlendingWeightCalculationOperation, blender::compositor::SMAAEdgeDetectionOperation, blender::compositor::SetAlphaReplaceOperation, blender::compositor::SetAlphaMultiplyOperation, blender::compositor::ScreenLensDistortionOperation, blender::compositor::ScaleFixedSizeOperation, blender::compositor::ScaleOperation, blender::compositor::RotateOperation, blender::compositor::RenderLayersDepthProg, blender::compositor::RenderLayersAlphaProg, blender::compositor::RenderLayersAOOperation, blender::compositor::RenderLayersProg, blender::compositor::ProjectorLensDistortionOperation, blender::compositor::PreviewOperation, blender::compositor::PosterizeOperation, blender::compositor::PlaneDistortMaskOperation, blender::compositor::PlaneDistortWarpImageOperation, blender::compositor::OutputOpenExrMultiLayerOperation, blender::compositor::OutputSingleLayerOperation, blender::compositor::NormalizeOperation, blender::compositor::MultilayerBaseOperation, blender::compositor::MovieDistortionOperation, blender::compositor::MovieClipAlphaOperation, blender::compositor::MovieClipBaseOperation, blender::compositor::MaskOperation, blender::compositor::MapValueOperation, blender::compositor::MapUVOperation, blender::compositor::MapRangeOperation, blender::compositor::LuminanceMatteOperation, blender::compositor::KeyingScreenOperation, blender::compositor::KeyingOperation, blender::compositor::KeyingDespillOperation, blender::compositor::KeyingClipOperation, blender::compositor::KeyingBlurOperation, blender::compositor::InvertOperation, blender::compositor::ImageDepthOperation, blender::compositor::ImageAlphaOperation, blender::compositor::ImageOperation, blender::compositor::IDMaskOperation, blender::compositor::HueSaturationValueCorrectOperation, blender::compositor::GlareThresholdOperation, blender::compositor::GaussianBlurReferenceOperation, blender::compositor::GaussianBokehBlurOperation, blender::compositor::GaussianBlurBaseOperation, blender::compositor::GammaUncorrectOperation, blender::compositor::GammaCorrectOperation, blender::compositor::FlipOperation, blender::compositor::FastGaussianBlurValueOperation, blender::compositor::EllipseMaskOperation, blender::compositor::DotproductOperation, blender::compositor::DistanceRGBMatteOperation, blender::compositor::DisplaceSimpleOperation, blender::compositor::DisplaceOperation, blender::compositor::DirectionalBlurOperation, blender::compositor::ErodeStepOperation, blender::compositor::DilateStepOperation, blender::compositor::ErodeDistanceOperation, blender::compositor::DilateDistanceOperation, blender::compositor::DilateErodeThresholdOperation, blender::compositor::DifferenceMatteOperation, blender::compositor::DespeckleOperation, blender::compositor::CryptomatteOperation, blender::compositor::CropImageOperation, blender::compositor::CropOperation, blender::compositor::ConvolutionFilterOperation, blender::compositor::ConvolutionEdgeFilterOperation, blender::compositor::CombineChannelsOperation, blender::compositor::SeparateChannelOperation, blender::compositor::ConvertDepthToRadiusOperation, blender::compositor::ConvertColorSpaceOperation, blender::compositor::CompositorOperation, blender::compositor::ColorSpillOperation, blender::compositor::ColorRampOperation, blender::compositor::ColorMatteOperation, blender::compositor::ConstantLevelColorCurveOperation, blender::compositor::ColorCurveOperation, blender::compositor::ChromaMatteOperation, blender::compositor::ChannelMatteOperation, blender::compositor::ChangeHSVOperation, blender::compositor::CalculateStandardDeviationOperation, blender::compositor::CalculateMeanOperation, blender::compositor::BrightnessOperation, blender::compositor::BoxMaskOperation, blender::compositor::BokehImageOperation, blender::compositor::BokehBlurOperation, blender::compositor::BilateralBlurOperation, blender::compositor::AntiAliasOperation, blender::compositor::MixBaseOperation, blender::compositor::MathBaseOperation, blender::compositor::GaussianAlphaBlurBaseOperation, and blender::compositor::ConvertBaseOperation.

◆ update_memory_buffer_started()

virtual void blender::compositor::MultiThreadedOperation::update_memory_buffer_started ( MemoryBuffer UNUSEDoutput,
const rcti UNUSEDarea,
Span< MemoryBuffer * >   UNUSEDinputs 
)
inlineprotectedvirtual

Called before an update memory buffer pass is executed. Single-threaded calls.

Definition at line 27 of file COM_MultiThreadedOperation.h.

Member Data Documentation

◆ current_pass_

int blender::compositor::MultiThreadedOperation::current_pass_
protected

Current execution pass.

Definition at line 19 of file COM_MultiThreadedOperation.h.

Referenced by MultiThreadedOperation().

◆ num_passes_

int blender::compositor::MultiThreadedOperation::num_passes_
protected

Number of execution passes.

Definition at line 15 of file COM_MultiThreadedOperation.h.

Referenced by MultiThreadedOperation().


The documentation for this class was generated from the following files: