Blender  V3.3
Public Member Functions | Protected Attributes | List of all members
blender::compositor::PreviewOperation Class Reference

#include <COM_PreviewOperation.h>

Inheritance diagram for blender::compositor::PreviewOperation:
blender::compositor::MultiThreadedOperation blender::compositor::NodeOperation

Public Member Functions

 PreviewOperation (const ColorManagedViewSettings *view_settings, const ColorManagedDisplaySettings *display_settings, unsigned int default_width, unsigned int default_height)
 
void verify_preview (bNodeInstanceHash *previews, bNodeInstanceKey key)
 
bool is_output_operation (bool) const override
 is_output_operation determines whether this operation is an output of the ExecutionSystem during rendering or editing. More...
 
void init_execution () override
 
void deinit_execution () override
 
eCompositorPriority get_render_priority () const override
 get the render priority of this node. More...
 
void execute_region (rcti *rect, unsigned int tile_number) override
 when a chunk is executed by a CPUDevice, this method is called More...
 
void determine_canvas (const rcti &preferred_area, rcti &r_area) override
 
bool determine_depending_area_of_interest (rcti *input, ReadBufferOperation *read_operation, rcti *output) override
 
void get_area_of_interest (int input_idx, const rcti &output_area, rcti &r_input_area) override
 Get input operation area being read by this operation on rendering given output area. More...
 
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
 
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)
 
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 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...
 
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...
 
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)
 
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))
 
void get_area_of_interest (NodeOperation *input_op, const rcti &output_area, rcti &r_input_area)
 

Protected Attributes

unsigned char * output_buffer_
 
bNodePreviewpreview_
 holds reference to the SDNA bNode, where this nodes will render the preview image for More...
 
SocketReaderinput_
 
float divider_
 
unsigned int default_width_
 
unsigned int default_height_
 
const ColorManagedViewSettingsview_settings_
 
const ColorManagedDisplaySettingsdisplay_settings_
 
- Protected Attributes inherited from blender::compositor::MultiThreadedOperation
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

- Protected Member Functions inherited from blender::compositor::MultiThreadedOperation
 MultiThreadedOperation ()
 
virtual void update_memory_buffer_started (MemoryBuffer *UNUSED(output), const rcti &UNUSED(area), Span< MemoryBuffer * > UNUSED(inputs))
 
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...
 
- Static Protected Member Functions inherited from blender::compositor::NodeOperation
static void combine_hashes (size_t &combined, size_t other)
 

Detailed Description

Definition at line 14 of file COM_PreviewOperation.h.

Constructor & Destructor Documentation

◆ PreviewOperation()

blender::compositor::PreviewOperation::PreviewOperation ( const ColorManagedViewSettings view_settings,
const ColorManagedDisplaySettings display_settings,
unsigned int  default_width,
unsigned int  default_height 
)

Member Function Documentation

◆ deinit_execution()

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

Reimplemented from blender::compositor::NodeOperation.

Definition at line 59 of file COM_PreviewOperation.cc.

References input_, and output_buffer_.

◆ determine_canvas()

void blender::compositor::PreviewOperation::determine_canvas ( const rcti preferred_area,
rcti r_area 
)
overridevirtual

◆ determine_depending_area_of_interest()

bool blender::compositor::PreviewOperation::determine_depending_area_of_interest ( rcti input,
ReadBufferOperation read_operation,
rcti output 
)
overridevirtual

◆ execute_region()

void blender::compositor::PreviewOperation::execute_region ( rcti ,
unsigned int   
)
overridevirtual

◆ get_area_of_interest()

void blender::compositor::PreviewOperation::get_area_of_interest ( int  input_idx,
const rcti output_area,
rcti r_input_area 
)
overridevirtual

Get input operation area being read by this operation on rendering given output area.

Implementation don't need to ensure r_input_area is within input operation bounds. The caller must clamp it. TODO: See if it's possible to use parameter overloading (input_id for example).

Parameters
input_idxInput operation index for which we want to calculate the area being read.
output_areaArea being rendered by this operation.
r_input_areaReturned input operation area that needs to be read in order to render given output area.

Reimplemented from blender::compositor::NodeOperation.

Definition at line 145 of file COM_PreviewOperation.cc.

References BLI_assert, divider_, UNUSED_VARS_NDEBUG, rcti::xmax, rcti::xmin, rcti::ymax, and rcti::ymin.

◆ get_render_priority()

eCompositorPriority blender::compositor::PreviewOperation::get_render_priority ( ) const
overridevirtual

get the render priority of this node.

Note
only applicable for output operations like ViewerOperation
Returns
eCompositorPriority

Reimplemented from blender::compositor::NodeOperation.

Definition at line 140 of file COM_PreviewOperation.cc.

References blender::compositor::Low.

◆ init_execution()

void blender::compositor::PreviewOperation::init_execution ( )
overridevirtual

◆ is_output_operation()

bool blender::compositor::PreviewOperation::is_output_operation ( bool  ) const
inlineoverridevirtual

is_output_operation determines whether this operation is an output of the ExecutionSystem during rendering or editing.

Default behavior if not overridden, this operation will not be evaluated as being an output of the ExecutionSystem.

See also
ExecutionSystem
Parameters
rendering[true false] true: rendering false: editing
Returns
bool the result of this method

Reimplemented from blender::compositor::NodeOperation.

Definition at line 37 of file COM_PreviewOperation.h.

References G.

◆ update_memory_buffer_partial()

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

◆ verify_preview()

void blender::compositor::PreviewOperation::verify_preview ( bNodeInstanceHash previews,
bNodeInstanceKey  key 
)

Definition at line 30 of file COM_PreviewOperation.cc.

References BKE_node_preview_verify(), and preview_.

Member Data Documentation

◆ default_height_

unsigned int blender::compositor::PreviewOperation::default_height_
protected

Definition at line 25 of file COM_PreviewOperation.h.

Referenced by determine_canvas(), and PreviewOperation().

◆ default_width_

unsigned int blender::compositor::PreviewOperation::default_width_
protected

Definition at line 24 of file COM_PreviewOperation.h.

Referenced by determine_canvas(), and PreviewOperation().

◆ display_settings_

const ColorManagedDisplaySettings* blender::compositor::PreviewOperation::display_settings_
protected

◆ divider_

float blender::compositor::PreviewOperation::divider_
protected

◆ input_

SocketReader* blender::compositor::PreviewOperation::input_
protected

◆ output_buffer_

unsigned char* blender::compositor::PreviewOperation::output_buffer_
protected

◆ preview_

bNodePreview* blender::compositor::PreviewOperation::preview_
protected

holds reference to the SDNA bNode, where this nodes will render the preview image for

Definition at line 21 of file COM_PreviewOperation.h.

Referenced by init_execution(), PreviewOperation(), and verify_preview().

◆ view_settings_

const ColorManagedViewSettings* blender::compositor::PreviewOperation::view_settings_
protected

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