|
Blender V4.5
|
Inherits blender::compositor::NodeOperation.
Public Member Functions | |
| FileOutputOperation (Context &context, DNode node) | |
| void | execute () override |
| void | execute_single_layer () |
| void | execute_single_layer_multi_view_exr (const Result &result, const ImageFormatData &format, const char *base_path, const char *layer_name) |
| void | execute_multi_layer () |
| void | add_pass_for_result (FileOutput &file_output, const Result &result, const char *pass_name, const char *view_name) |
| float * | inflate_result (const Result &result, const int2int2 size) |
| void | add_view_for_result (FileOutput &file_output, const Result &result, const char *view_name) |
| float * | float4_to_float3_image (int2int2 size, float *float4_image) |
| void | add_meta_data_for_result (FileOutput &file_output, const Result &result, const char *name) |
| bool | get_single_layer_image_base_path (const char *base_name, char *r_base_path) |
| void | get_single_layer_image_path (const char *base_path, const ImageFormatData &format, char *r_image_path) |
| bool | get_multi_layer_exr_image_path (const char *base_path, const char *view, const bool apply_template, char *r_image_path) |
| bool | is_multi_layer () |
| const char * | get_base_path () |
| bool | use_file_extension () |
| bool | is_multi_view_exr () |
| bool | is_multi_view_scene () |
| Public Member Functions inherited from blender::compositor::NodeOperation | |
| NodeOperation (Context &context, DNode node) | |
| void | evaluate () override |
| void | compute_results_reference_counts (const Schedule &schedule) |
| Public Member Functions inherited from blender::compositor::Operation | |
| Operation (Context &context) | |
| virtual | ~Operation () |
| Result & | get_result (StringRef identifier) |
| void | map_input_to_result (StringRef identifier, Result *result) |
| void | free_results () |
Additional Inherited Members | |
| Protected Member Functions inherited from blender::compositor::NodeOperation | |
| void | compute_preview () override |
| const DNode & | node () const |
| const bNode & | bnode () const |
| bool | should_compute_output (StringRef identifier) |
| Protected Member Functions inherited from blender::compositor::Operation | |
| virtual Domain | compute_domain () |
| virtual void | add_and_evaluate_input_processors () |
| void | add_and_evaluate_input_processor (StringRef identifier, SimpleOperation *processor) |
| Result & | get_input (StringRef identifier) const |
| void | switch_result_mapped_to_input (StringRef identifier, Result *result) |
| void | populate_result (StringRef identifier, Result result) |
| void | declare_input_descriptor (StringRef identifier, InputDescriptor descriptor) |
| InputDescriptor & | get_input_descriptor (StringRef identifier) |
| Context & | context () const |
Definition at line 488 of file node_composite_file_output.cc.
|
inline |
Definition at line 490 of file node_composite_file_output.cc.
References blender::compositor::Operation::context(), input, blender::compositor::NodeOperation::node(), blender::compositor::NodeOperation::NodeOperation(), blender::compositor::OperationDomain, this, and blender::compositor::Transforms.
|
inline |
Definition at line 829 of file node_composite_file_output.cc.
References blender::compositor::FileOutput::add_meta_data(), blender::bke::cryptomatte::BKE_cryptomatte_extract_layer_name(), blender::bke::cryptomatte::BKE_cryptomatte_meta_data_key(), and result.
Referenced by execute_multi_layer(), execute_single_layer(), and execute_single_layer_multi_view_exr().
|
inline |
Definition at line 652 of file node_composite_file_output.cc.
References blender::compositor::FileOutput::add_pass(), blender::compositor::Bool, blender::compositor::Color, blender::compositor::Operation::compute_domain(), blender::compositor::Operation::context(), blender::compositor::Float, blender::compositor::Float2, blender::compositor::Float3, blender::compositor::Float4, float4_to_float3_image(), GPU_BARRIER_TEXTURE_UPDATE, GPU_DATA_FLOAT, GPU_memory_barrier(), GPU_texture_component_len(), GPU_texture_format(), GPU_texture_read(), inflate_result(), blender::compositor::Int, blender::compositor::Int2, MEM_dupallocN(), result, and size().
Referenced by execute_multi_layer(), and execute_single_layer_multi_view_exr().
|
inline |
Definition at line 764 of file node_composite_file_output.cc.
References blender::compositor::FileOutput::add_view(), BLI_assert_unreachable, blender::compositor::Bool, blender::compositor::Color, blender::compositor::Operation::context(), blender::compositor::Float, blender::compositor::Float2, blender::compositor::Float3, blender::compositor::Float4, float4_to_float3_image(), GPU_BARRIER_TEXTURE_UPDATE, GPU_DATA_FLOAT, GPU_memory_barrier(), GPU_texture_component_len(), GPU_texture_format(), GPU_texture_read(), blender::compositor::Int, blender::compositor::Int2, MEM_dupallocN(), result, and size().
Referenced by execute_single_layer().
|
inlineoverridevirtual |
Implements blender::compositor::Operation.
Definition at line 507 of file node_composite_file_output.cc.
References execute_multi_layer(), execute_single_layer(), and is_multi_layer().
|
inline |
Definition at line 611 of file node_composite_file_output.cc.
References add_meta_data_for_result(), add_pass_for_result(), blender::compositor::FileOutput::add_view(), BKE_report(), blender::compositor::NodeOperation::bnode(), blender::compositor::Operation::compute_domain(), blender::compositor::Operation::context(), FILE_MAX, get_base_path(), get_input(), get_multi_layer_exr_image_path(), input, is_multi_view_exr(), blender::compositor::is_socket_available(), blender::compositor::NodeOperation::node(), RPT_ERROR, size(), and view.
Referenced by execute().
|
inline |
Definition at line 521 of file node_composite_file_output.cc.
References add_meta_data_for_result(), add_view_for_result(), BKE_report(), BKE_scene_multiview_num_views_get(), blender::compositor::NodeOperation::bnode(), blender::compositor::Operation::context(), data, execute_single_layer_multi_view_exr(), FILE_MAX, get_input(), get_single_layer_image_base_path(), get_single_layer_image_path(), input, blender::compositor::is_socket_available(), blender::compositor::NodeOperation::node(), R_IMF_IMTYPE_OPENEXR, R_IMF_VIEWS_STEREO_3D, result, RPT_ERROR, and size().
Referenced by execute().
|
inline |
Definition at line 577 of file node_composite_file_output.cc.
References add_meta_data_for_result(), add_pass_for_result(), blender::compositor::FileOutput::add_view(), BLI_assert_unreachable, blender::compositor::Operation::context(), FILE_MAX, get_multi_layer_exr_image_path(), R_IMF_VIEWS_INDIVIDUAL, result, and size().
Referenced by execute_single_layer().
|
inline |
Definition at line 811 of file node_composite_file_output.cc.
References i, MEM_freeN(), MEM_malloc_arrayN(), blender::compositor::parallel_for(), and size().
Referenced by add_pass_for_result(), and add_view_for_result().
|
inline |
Definition at line 983 of file node_composite_file_output.cc.
References blender::compositor::NodeOperation::bnode().
Referenced by execute_multi_layer(), and get_single_layer_image_base_path().
|
inline |
Get the path of the EXR image to be saved. If the given view is not empty, its corresponding file suffix will be appended to the name.
If there are any errors processing the path, the resulting path will be empty.
| apply_template | Whether to run templating on the path or not. This is needed because this function is called from more than one place, some of which have already applied templating to the path and some of which haven't. Double-applying templating can give incorrect results. |
Definition at line 950 of file node_composite_file_output.cc.
References BKE_build_template_variables_for_render_path(), BKE_image_path_from_imtype(), BKE_main_blendfile_path_from_global(), BKE_scene_multiview_view_suffix_get(), blender::compositor::Operation::context(), blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), R_IMF_IMTYPE_MULTILAYER, use_file_extension(), and view.
Referenced by execute_multi_layer(), and execute_single_layer_multi_view_exr().
|
inline |
Get the base path of the image to be saved, based on the base path of the node. The base name is an optional initial name of the image, which will later be concatenated with other information like the frame number, view, and extension. If the base name is empty, then the base path represents a directory, so a trailing slash is ensured.
Note: this takes care of path template expansion as well.
If there are any errors processing the path, bath_base will be set to an empty string.
Definition at line 873 of file node_composite_file_output.cc.
References BKE_build_template_variables_for_render_path(), BKE_path_apply_template(), BLI_path_join, BLI_path_slash_ensure(), BLI_strncpy(), blender::compositor::Operation::context(), FILE_MAX, get_base_path(), blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), and STRNCPY().
Referenced by execute_single_layer().
|
inline |
Definition at line 916 of file node_composite_file_output.cc.
References BKE_image_path_from_imformat(), BKE_main_blendfile_path_from_global(), blender::compositor::Operation::context(), and use_file_extension().
Referenced by execute_single_layer().
|
inline |
Definition at line 724 of file node_composite_file_output.cc.
References BLI_assert, BLI_assert_unreachable, blender::compositor::Bool, blender::compositor::Color, blender::CPPType::fill_assign_n(), blender::compositor::Float, blender::compositor::Float2, blender::compositor::Float3, blender::compositor::Float4, blender::CPPType::get(), blender::GPointer::get(), blender::compositor::Int, blender::compositor::Int2, length(), MEM_malloc_arrayN(), result, size(), and blender::GPointer::type().
Referenced by add_pass_for_result().
|
inline |
Definition at line 978 of file node_composite_file_output.cc.
References blender::compositor::NodeOperation::bnode(), and R_IMF_IMTYPE_MULTILAYER.
Referenced by execute().
|
inline |
Definition at line 995 of file node_composite_file_output.cc.
References blender::compositor::NodeOperation::bnode(), is_multi_view_scene(), and R_IMF_VIEWS_MULTIVIEW.
Referenced by execute_multi_layer().
|
inline |
Definition at line 1004 of file node_composite_file_output.cc.
References blender::compositor::Operation::context(), and R_MULTIVIEW.
Referenced by is_multi_view_exr().
|
inline |
Definition at line 989 of file node_composite_file_output.cc.
References blender::compositor::Operation::context(), and R_EXTENSION.
Referenced by get_multi_layer_exr_image_path(), and get_single_layer_image_path().