Blender
V3.3
|
#include <COM_OutputFileOperation.h>
Public Member Functions | |
OutputOpenExrMultiLayerOperation (const Scene *scene, const RenderData *rd, const bNodeTree *tree, const char *path, char exr_codec, bool exr_half_float, const char *view_name) | |
void | add_layer (const char *name, DataType datatype, bool use_layer) |
void | execute_region (rcti *rect, unsigned int tile_number) override |
when a chunk is executed by a CPUDevice, this method is called More... | |
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 | 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) |
virtual void | determine_canvas (const rcti &preferred_area, rcti &r_area) |
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... | |
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) |
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)) |
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) |
Protected Attributes | |
const Scene * | scene_ |
const RenderData * | rd_ |
const bNodeTree * | tree_ |
char | path_ [FILE_MAX] |
char | exr_codec_ |
bool | exr_half_float_ |
Vector< OutputOpenExrLayer > | layers_ |
const char * | view_name_ |
![]() | |
int | num_passes_ |
int | current_pass_ |
![]() | |
eExecutionModel | execution_model_ |
rcti | canvas_ = COM_AREA_NONE |
NodeOperationFlags | flags_ |
ExecutionSystem * | exec_system_ |
Additional Inherited Members | |
![]() | |
static void | combine_hashes (size_t &combined, size_t other) |
Definition at line 75 of file COM_OutputFileOperation.h.
blender::compositor::OutputOpenExrMultiLayerOperation::OutputOpenExrMultiLayerOperation | ( | const Scene * | scene, |
const RenderData * | rd, | ||
const bNodeTree * | tree, | ||
const char * | path, | ||
char | exr_codec, | ||
bool | exr_half_float, | ||
const char * | view_name | ||
) |
Definition at line 319 of file COM_OutputFileOperation.cc.
References BLI_strncpy(), exr_codec_, exr_half_float_, path_, rd_, blender::compositor::RESOLUTION_INPUT_ANY, scene, scene_, blender::compositor::NodeOperation::set_canvas_input_index(), tree, tree_, and view_name_.
void blender::compositor::OutputOpenExrMultiLayerOperation::add_layer | ( | const char * | name, |
DataType | datatype, | ||
bool | use_layer | ||
) |
Definition at line 338 of file COM_OutputFileOperation.cc.
References blender::compositor::NodeOperation::add_input_socket(), and layers_.
|
protected |
Definition at line 346 of file COM_OutputFileOperation.cc.
References blender::bke::cryptomatte::BKE_cryptomatte_extract_layer_name(), BKE_stamp_info_from_scene_static(), BLI_strnlen(), layers_, scene_, and RenderResult::stamp_data.
Referenced by deinit_execution(), and blender::compositor::OutputOpenExrMultiLayerMultiViewOperation::get_handle().
|
overridevirtual |
Reimplemented from blender::compositor::NodeOperation.
Definition at line 393 of file COM_OutputFileOperation.cc.
References blender::compositor::add_exr_channels(), BKE_image_path_from_imtype(), BKE_main_blendfile_path_from_global(), BKE_scene_multiview_view_suffix_get(), BKE_stamp_data_free(), BLI_make_existing_file(), RenderData::cfra, create_stamp_data(), exr_codec_, exr_half_float_, FILE_MAX, blender::compositor::NodeOperation::get_height(), blender::compositor::NodeOperation::get_width(), height, blender::compositor::OutputOpenExrLayer::image_input, IMB_exr_begin_write(), IMB_exr_close(), IMB_exr_get_handle(), IMB_exr_write_channels(), layers_, MEM_freeN, path_, R_EXTENSION, R_IMF_IMTYPE_MULTILAYER, rd_, RenderData::scemode, view_name_, and width.
|
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 382 of file COM_OutputFileOperation.cc.
References blender::compositor::OutputOpenExrLayer::datatype, blender::compositor::OutputOpenExrLayer::image_input, layers_, blender::compositor::OutputOpenExrLayer::output_buffer, tree_, and blender::compositor::write_buffer_rect().
|
inlineoverridevirtual |
get the render priority of this node.
Reimplemented from blender::compositor::NodeOperation.
Definition at line 107 of file COM_OutputFileOperation.h.
References blender::compositor::Low.
|
overridevirtual |
Reimplemented from blender::compositor::NodeOperation.
Definition at line 370 of file COM_OutputFileOperation.cc.
References blender::compositor::NodeOperation::get_height(), blender::compositor::NodeOperation::get_input_socket_reader(), blender::compositor::NodeOperation::get_width(), blender::compositor::init_buffer(), and layers_.
|
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 101 of file COM_OutputFileOperation.h.
|
overridevirtual |
Executes operation updating a memory buffer area. Multi-threaded calls.
Implements blender::compositor::MultiThreadedOperation.
Definition at line 452 of file COM_OutputFileOperation.cc.
References blender::compositor::area(), blender::compositor::COM_data_type_num_channels(), blender::compositor::MemoryBuffer::copy_from(), blender::compositor::OutputOpenExrLayer::datatype, inputs, layers_, and blender::compositor::OutputOpenExrLayer::output_buffer.
|
protected |
Definition at line 82 of file COM_OutputFileOperation.h.
Referenced by deinit_execution(), blender::compositor::OutputOpenExrMultiLayerMultiViewOperation::get_handle(), and OutputOpenExrMultiLayerOperation().
|
protected |
|
protected |
Definition at line 84 of file COM_OutputFileOperation.h.
Referenced by add_layer(), create_stamp_data(), blender::compositor::OutputOpenExrMultiLayerMultiViewOperation::deinit_execution(), deinit_execution(), execute_region(), blender::compositor::OutputOpenExrMultiLayerMultiViewOperation::get_handle(), init_execution(), and update_memory_buffer_partial().
|
protected |
Definition at line 81 of file COM_OutputFileOperation.h.
Referenced by blender::compositor::OutputOpenExrMultiLayerMultiViewOperation::deinit_execution(), deinit_execution(), and OutputOpenExrMultiLayerOperation().
|
protected |
|
protected |
Definition at line 77 of file COM_OutputFileOperation.h.
Referenced by create_stamp_data(), and OutputOpenExrMultiLayerOperation().
|
protected |
Definition at line 79 of file COM_OutputFileOperation.h.
Referenced by execute_region(), and OutputOpenExrMultiLayerOperation().
|
protected |