Blender V4.3
blender::compositor::MaskOperation Class Reference

#include <COM_MaskOperation.h>

Inherits blender::compositor::MultiThreadedOperation.

Public Member Functions

 MaskOperation ()
 
void init_execution () override
 
void deinit_execution () override
 
void set_mask (Mask *mask)
 
void set_mask_width (int width)
 
void set_mask_height (int height)
 
int get_mask_width ()
 
int get_mask_height ()
 
void set_framenumber (int frame_number)
 
void set_feather (bool feather)
 
void set_motion_blur_samples (int samples)
 
void set_motion_blur_shutter (float shutter)
 
void update_memory_buffer_partial (MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
 
- 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
 
const void set_node_instance_key (const bNodeInstanceKey &node_instance_key)
 
const bNodeInstanceKey get_node_instance_key () 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 bool is_output_operation (bool) const
 is_output_operation determines whether this operation is an output of the ExecutionSystem during rendering or editing.
 
void set_bnodetree (const bNodeTree *tree)
 
void set_execution_system (ExecutionSystem *system)
 
virtual void init_data ()
 
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).
 
void set_canvas_input_index (unsigned int index)
 set the index of the input socket that will determine the canvas of this operation
 
void set_determined_canvas_modifier (std::function< void(rcti &canvas)> fn)
 
virtual eCompositorPriority get_render_priority () const
 get the render priority of this node.
 
bool is_braked () const
 
void update_draw ()
 
unsigned int get_width () const
 
unsigned int get_height () const
 
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 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.
 
void get_area_of_interest (NodeOperation *input_op, const rcti &output_area, rcti &r_input_area)
 

Protected Member Functions

void determine_canvas (const rcti &preferred_area, rcti &r_area) override
 
- Protected Member Functions inherited from blender::compositor::MultiThreadedOperation
 MultiThreadedOperation ()
 
virtual void update_memory_buffer_started (MemoryBuffer *, const rcti &, Span< MemoryBuffer * >)
 
virtual void update_memory_buffer_finished (MemoryBuffer *, const rcti &, Span< MemoryBuffer * >)
 
- 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)
 
SocketReaderget_input_socket_reader (unsigned int index)
 

Protected Attributes

Maskmask_
 
int mask_width_
 
int mask_height_
 
float mask_width_inv_
 
float mask_height_inv_
 
float mask_px_ofs_ [2]
 
float frame_shutter_
 
int frame_number_
 
bool do_feather_
 
struct MaskRasterHandleraster_mask_handles_ [CMP_NODE_MASK_MBLUR_SAMPLES_MAX]
 
unsigned int raster_mask_handle_tot_
 
- Protected Attributes inherited from blender::compositor::MultiThreadedOperation
int num_passes_
 
int current_pass_
 
- Protected Attributes inherited from blender::compositor::NodeOperation
rcti canvas_ = COM_AREA_NONE
 
NodeOperationFlags flags_
 
ExecutionSystemexec_system_
 

Additional Inherited Members

- Static Protected Member Functions inherited from blender::compositor::NodeOperation
static void combine_hashes (size_t &combined, size_t other)
 

Detailed Description

Class with implementation of mask rasterization

Definition at line 20 of file COM_MaskOperation.h.

Constructor & Destructor Documentation

◆ MaskOperation()

Member Function Documentation

◆ deinit_execution()

void blender::compositor::MaskOperation::deinit_execution ( )
overridevirtual

◆ determine_canvas()

void blender::compositor::MaskOperation::determine_canvas ( const rcti & preferred_area,
rcti & r_area )
overrideprotectedvirtual

Determine the output resolution. The resolution is retrieved from the Renderer

Reimplemented from blender::compositor::NodeOperation.

Definition at line 85 of file COM_MaskOperation.cc.

References blender::compositor::COM_AREA_NONE, mask_, mask_height_, mask_width_, rcti::xmax, rcti::xmin, rcti::ymax, and rcti::ymin.

◆ get_mask_height()

int blender::compositor::MaskOperation::get_mask_height ( )
inline

Definition at line 71 of file COM_MaskOperation.h.

References mask_height_.

Referenced by blender::compositor::MaskNode::convert_to_operations().

◆ get_mask_width()

int blender::compositor::MaskOperation::get_mask_width ( )
inline

Definition at line 67 of file COM_MaskOperation.h.

References mask_width_.

Referenced by blender::compositor::MaskNode::convert_to_operations().

◆ init_execution()

◆ set_feather()

void blender::compositor::MaskOperation::set_feather ( bool feather)
inline

Definition at line 79 of file COM_MaskOperation.h.

References do_feather_.

Referenced by blender::compositor::MaskNode::convert_to_operations().

◆ set_framenumber()

void blender::compositor::MaskOperation::set_framenumber ( int frame_number)
inline

Definition at line 75 of file COM_MaskOperation.h.

References frame_number_.

Referenced by blender::compositor::MaskNode::convert_to_operations().

◆ set_mask()

void blender::compositor::MaskOperation::set_mask ( Mask * mask)
inline

Definition at line 51 of file COM_MaskOperation.h.

References mask(), and mask_.

Referenced by blender::compositor::MaskNode::convert_to_operations().

◆ set_mask_height()

void blender::compositor::MaskOperation::set_mask_height ( int height)
inline

◆ set_mask_width()

void blender::compositor::MaskOperation::set_mask_width ( int width)
inline

◆ set_motion_blur_samples()

void blender::compositor::MaskOperation::set_motion_blur_samples ( int samples)
inline

◆ set_motion_blur_shutter()

void blender::compositor::MaskOperation::set_motion_blur_shutter ( float shutter)
inline

Definition at line 88 of file COM_MaskOperation.h.

References frame_shutter_.

Referenced by blender::compositor::MaskNode::convert_to_operations().

◆ update_memory_buffer_partial()

void blender::compositor::MaskOperation::update_memory_buffer_partial ( MemoryBuffer * output,
const rcti & area,
Span< MemoryBuffer * > inputs )
overridevirtual

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

Implements blender::compositor::MultiThreadedOperation.

Definition at line 97 of file COM_MaskOperation.cc.

References BKE_maskrasterize_handle_sample(), blender::compositor::COM_VALUE_ZERO, handles, mask_height_inv_, mask_px_ofs_, mask_width_inv_, raster_mask_handle_tot_, and xy.

Member Data Documentation

◆ do_feather_

bool blender::compositor::MaskOperation::do_feather_
protected

Definition at line 35 of file COM_MaskOperation.h.

Referenced by init_execution(), and set_feather().

◆ frame_number_

int blender::compositor::MaskOperation::frame_number_
protected

Definition at line 33 of file COM_MaskOperation.h.

Referenced by init_execution(), MaskOperation(), and set_framenumber().

◆ frame_shutter_

float blender::compositor::MaskOperation::frame_shutter_
protected

Definition at line 32 of file COM_MaskOperation.h.

Referenced by init_execution(), MaskOperation(), and set_motion_blur_shutter().

◆ mask_

Mask* blender::compositor::MaskOperation::mask_
protected

Definition at line 22 of file COM_MaskOperation.h.

Referenced by determine_canvas(), init_execution(), MaskOperation(), and set_mask().

◆ mask_height_

int blender::compositor::MaskOperation::mask_height_
protected

◆ mask_height_inv_

float blender::compositor::MaskOperation::mask_height_inv_
protected

◆ mask_px_ofs_

float blender::compositor::MaskOperation::mask_px_ofs_[2]
protected

◆ mask_width_

int blender::compositor::MaskOperation::mask_width_
protected

◆ mask_width_inv_

float blender::compositor::MaskOperation::mask_width_inv_
protected

Definition at line 28 of file COM_MaskOperation.h.

Referenced by MaskOperation(), set_mask_width(), and update_memory_buffer_partial().

◆ raster_mask_handle_tot_

unsigned int blender::compositor::MaskOperation::raster_mask_handle_tot_
protected

◆ raster_mask_handles_

struct MaskRasterHandle* blender::compositor::MaskOperation::raster_mask_handles_[CMP_NODE_MASK_MBLUR_SAMPLES_MAX]
protected

Definition at line 37 of file COM_MaskOperation.h.

Referenced by deinit_execution(), init_execution(), and MaskOperation().


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