Blender
V3.3
|
#include <COM_PreviewOperation.h>
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 |
![]() | |
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 float * | get_constant_elem_default (const float *default_elem) |
const NodeOperationFlags | get_flags () const |
std::optional< NodeOperationHash > | generate_hash () |
unsigned int | get_number_of_input_sockets () const |
unsigned int | get_number_of_output_sockets () const |
NodeOperationOutput * | get_output_socket (unsigned int index=0) |
NodeOperationInput * | get_input_socket (unsigned int index) |
NodeOperation * | get_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 rcti & | get_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 void * | initialize_tile_data (rcti *) |
virtual void | deinitialize_tile_data (rcti *, void *) |
virtual MemoryBuffer * | get_input_memory_buffer (MemoryBuffer **) |
virtual std::unique_ptr< MetaData > | get_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_ |
bNodePreview * | preview_ |
holds reference to the SDNA bNode, where this nodes will render the preview image for More... | |
SocketReader * | input_ |
float | divider_ |
unsigned int | default_width_ |
unsigned int | default_height_ |
const ColorManagedViewSettings * | view_settings_ |
const ColorManagedDisplaySettings * | display_settings_ |
![]() | |
int | num_passes_ |
int | current_pass_ |
![]() | |
eExecutionModel | execution_model_ |
rcti | canvas_ = COM_AREA_NONE |
NodeOperationFlags | flags_ |
ExecutionSystem * | exec_system_ |
Definition at line 14 of file COM_PreviewOperation.h.
blender::compositor::PreviewOperation::PreviewOperation | ( | const ColorManagedViewSettings * | view_settings, |
const ColorManagedDisplaySettings * | display_settings, | ||
unsigned int | default_width, | ||
unsigned int | default_height | ||
) |
Definition at line 11 of file COM_PreviewOperation.cc.
References blender::compositor::NodeOperation::add_input_socket(), blender::compositor::Align, blender::compositor::Color, default_height_, default_width_, display_settings_, divider_, blender::compositor::NodeOperation::flags_, input_, blender::compositor::NodeOperationFlags::is_preview_operation, output_buffer_, preview_, blender::compositor::NodeOperationFlags::use_viewer_border, and view_settings_.
|
overridevirtual |
Reimplemented from blender::compositor::NodeOperation.
Definition at line 59 of file COM_PreviewOperation.cc.
References input_, and output_buffer_.
|
overridevirtual |
Reimplemented from blender::compositor::NodeOperation.
Definition at line 105 of file COM_PreviewOperation.cc.
References BLI_assert, BLI_rcti_init(), BLI_rcti_size_x(), BLI_rcti_size_y(), blender::compositor::COM_PREVIEW_SIZE, default_height_, default_width_, blender::compositor::NodeOperation::determine_canvas(), divider_, float(), height, width, rcti::xmin, and rcti::ymin.
|
overridevirtual |
Reimplemented from blender::compositor::NodeOperation.
Definition at line 92 of file COM_PreviewOperation.cc.
References blender::compositor::NodeOperation::determine_depending_area_of_interest(), divider_, input, output, rcti::xmax, rcti::xmin, rcti::ymax, and rcti::ymin.
|
overridevirtual |
when a chunk is executed by a CPUDevice, this method is called
rect | the rectangle of the chunk (location and size) |
chunk_number | the chunk_number to be calculated |
memory_buffers | all input MemoryBuffer's needed |
Reimplemented from blender::compositor::NodeOperation.
Definition at line 65 of file COM_PreviewOperation.cc.
References color, display_settings_, divider_, blender::math::floor(), blender::compositor::NodeOperation::get_width(), IMB_colormanagement_display_processor_new(), IMB_colormanagement_processor_apply_v4(), IMB_colormanagement_processor_free(), input_, blender::compositor::Nearest, offset, output_buffer_, blender::compositor::NodeOperation::read_sampled(), rgba_float_to_uchar(), view_settings_, x, rcti::xmin, y, and rcti::ymin.
|
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).
input_idx | Input operation index for which we want to calculate the area being read. |
output_area | Area being rendered by this operation. |
r_input_area | Returned 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.
|
overridevirtual |
get the render priority of this node.
Reimplemented from blender::compositor::NodeOperation.
Definition at line 140 of file COM_PreviewOperation.cc.
References blender::compositor::Low.
|
overridevirtual |
Reimplemented from blender::compositor::NodeOperation.
Definition at line 38 of file COM_PreviewOperation.cc.
References blender::compositor::NodeOperation::get_height(), blender::compositor::NodeOperation::get_input_socket_reader(), blender::compositor::NodeOperation::get_width(), input_, MEM_callocN, MEM_freeN, output_buffer_, preview_, bNodePreview::rect, bNodePreview::xsize, and bNodePreview::ysize.
|
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.
rendering | [true false] true: rendering false: editing |
Reimplemented from blender::compositor::NodeOperation.
Definition at line 37 of file COM_PreviewOperation.h.
References G.
|
overridevirtual |
Executes operation updating a memory buffer area. Multi-threaded calls.
Implements blender::compositor::MultiThreadedOperation.
Definition at line 158 of file COM_PreviewOperation.cc.
References blender::compositor::area(), BLI_rcti_init(), blender::compositor::BuffersIteratorBuilder< T >::build(), blender::compositor::Color, color, blender::compositor::COM_data_type_num_channels(), display_settings_, divider_, blender::compositor::NodeOperation::get_height(), blender::compositor::NodeOperation::get_width(), IMB_colormanagement_display_processor_new(), IMB_colormanagement_processor_apply_v4(), IMB_colormanagement_processor_free(), input, inputs, blender::compositor::BuffersIteratorBuilder< T >::Iterator::is_end(), output_buffer_, rgba_float_to_uchar(), and view_settings_.
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_.
|
protected |
Definition at line 25 of file COM_PreviewOperation.h.
Referenced by determine_canvas(), and PreviewOperation().
|
protected |
Definition at line 24 of file COM_PreviewOperation.h.
Referenced by determine_canvas(), and PreviewOperation().
|
protected |
Definition at line 28 of file COM_PreviewOperation.h.
Referenced by execute_region(), PreviewOperation(), and update_memory_buffer_partial().
|
protected |
Definition at line 23 of file COM_PreviewOperation.h.
Referenced by determine_canvas(), determine_depending_area_of_interest(), execute_region(), get_area_of_interest(), PreviewOperation(), and update_memory_buffer_partial().
|
protected |
Definition at line 22 of file COM_PreviewOperation.h.
Referenced by deinit_execution(), execute_region(), init_execution(), and PreviewOperation().
|
protected |
Definition at line 16 of file COM_PreviewOperation.h.
Referenced by deinit_execution(), execute_region(), init_execution(), PreviewOperation(), and update_memory_buffer_partial().
|
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().
|
protected |
Definition at line 27 of file COM_PreviewOperation.h.
Referenced by execute_region(), PreviewOperation(), and update_memory_buffer_partial().