|
Blender V4.3
|
#include <algorithm>#include "MEM_guardedalloc.h"#include "DNA_material_types.h"#include "DNA_node_types.h"#include "DNA_text_types.h"#include "DNA_world_types.h"#include "BKE_callbacks.hh"#include "BKE_context.hh"#include "BKE_global.hh"#include "BKE_image.hh"#include "BKE_lib_id.hh"#include "BKE_main.hh"#include "BKE_material.h"#include "BKE_node.hh"#include "BKE_node_runtime.hh"#include "BKE_node_tree_update.hh"#include "BKE_report.hh"#include "BKE_scene.hh"#include "BKE_scene_runtime.hh"#include "BLI_string.h"#include "BLI_string_utf8.h"#include "BLT_translation.hh"#include "DEG_depsgraph.hh"#include "DEG_depsgraph_build.hh"#include "DEG_depsgraph_debug.hh"#include "DEG_depsgraph_query.hh"#include "RE_engine.h"#include "RE_pipeline.h"#include "ED_image.hh"#include "ED_node.hh"#include "ED_render.hh"#include "ED_screen.hh"#include "ED_viewer_path.hh"#include "RNA_access.hh"#include "RNA_define.hh"#include "RNA_prototypes.hh"#include "WM_api.hh"#include "WM_types.hh"#include "UI_view2d.hh"#include "GPU_capabilities.hh"#include "GPU_material.hh"#include "IMB_imbuf_types.hh"#include "NOD_composite.hh"#include "NOD_geometry.hh"#include "NOD_shader.h"#include "NOD_socket.hh"#include "NOD_texture.h"#include "node_intern.hh"#include "COM_profiler.hh"Go to the source code of this file.
Classes | |
| struct | blender::ed::space_node::CompoJob |
| struct | blender::ed::space_node::NodeSizeWidget |
Namespaces | |
| namespace | blender |
| namespace | blender::ed |
| namespace | blender::ed::space_node |
Macros | |
| #define | USE_ESC_COMPO |
| #define USE_ESC_COMPO |
Definition at line 76 of file node_edit.cc.
Assumes nothing being done in ntree yet, sets the default in/out node. Called from shading buttons or header.
Definition at line 618 of file node_edit.cc.
References BKE_ntree_update_main_tree(), CTX_data_main(), G, G_DEBUG, Scene::id, blender::bke::bNodeTreeType::idname, blender::bke::node_add_link(), blender::bke::node_add_static_node(), blender::bke::node_set_active(), blender::bke::node_tree_add_tree_embedded(), Scene::nodetree, ntreeType_Composite, and printf.
Referenced by blender::bke::tests::CompositorTestData::setup(), and blender::bke::tests::IDSubDataTestData::setup().
| scene_owner | is the owner of the job, we don't use it for anything else currently so could also be a void pointer, but for now keep it an 'Scene' for consistency. |
refresh callbacks, not direct! - use with care. Definition at line 375 of file node_edit.cc.
References BKE_image_backup_render(), BKE_image_ensure_viewer(), blender::ed::space_node::CompoJob::bmain, CTX_data_main(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_manager(), CTX_wm_window(), G, IMA_TYPE_R_RESULT, is_compositing_possible(), NC_SCENE, ND_COMPO_RESULT, blender::ed::space_node::CompoJob::ntree, blender::ed::space_node::CompoJob::recalc_flags, blender::ed::space_node::CompoJob::scene, scene, blender::ed::space_node::CompoJob::view_layer, WM_JOB_EXCL_RENDER, WM_JOB_PROGRESS, WM_JOB_TYPE_COMPOSITE, WM_jobs_callbacks_ex(), WM_jobs_customdata_set(), WM_jobs_get(), WM_jobs_start(), and WM_jobs_timer().
Referenced by image_refresh(), and blender::ed::space_node::node_area_refresh().
| bool ED_node_is_compositor | ( | const SpaceNode * | snode | ) |
Definition at line 523 of file node_edit.cc.
References blender::bke::bNodeTreeType::idname, ntreeType_Composite, STREQ, and SpaceNode::tree_idname.
Referenced by blender::ed::space_node::composite_node_active(), blender::ed::space_node::composite_node_editable(), blender::ed::space_node::draw_nodespace_back_pix(), blender::draw::color_management::drw_color_management_type_for_space_node(), ED_node_supports_preview(), ED_screen_stereo3d_required(), ED_space_node_color_sample(), ED_space_node_get_position(), blender::ed::space_node::viewer_linking::get_default_viewer_type(), blender::ed::space_node::node_active_link_viewer_poll(), blender::ed::space_node::node_area_listener(), blender::ed::space_node::node_area_tag_tree_recalc(), blender::ed::space_node::node_group_idname(), blender::ed::space_node::node_group_operator_editable(), blender::ed::space_node::sample_invoke(), and wm_draw_region_stereo_set().
| bool ED_node_is_geometry | ( | SpaceNode * | snode | ) |
Definition at line 538 of file node_edit.cc.
References blender::bke::bNodeTreeType::idname, ntreeType_Geometry, STREQ, and SpaceNode::tree_idname.
Referenced by blender::ed::space_node::node_active_link_viewer_poll(), blender::ed::space_node::node_area_listener(), blender::ed::space_node::node_group_idname(), and blender::ed::space_node::node_group_operator_editable().
| bool ED_node_is_shader | ( | SpaceNode * | snode | ) |
Definition at line 528 of file node_edit.cc.
References blender::bke::bNodeTreeType::idname, ntreeType_Shader, STREQ, and SpaceNode::tree_idname.
Referenced by ED_node_supports_preview(), blender::ed::space_node::node_area_listener(), blender::ed::space_node::node_group_idname(), and blender::ed::space_node::node_group_operator_editable().
| bool ED_node_is_texture | ( | SpaceNode * | snode | ) |
Definition at line 533 of file node_edit.cc.
References blender::bke::bNodeTreeType::idname, ntreeType_Texture, STREQ, and SpaceNode::tree_idname.
Referenced by blender::ed::space_node::node_area_listener(), blender::ed::space_node::node_group_idname(), and blender::ed::space_node::node_group_operator_editable().
Definition at line 871 of file node_edit.cc.
Referenced by blender::ed::space_node::node_resize_modal(), and blender::ed::transform::special_aftertrans_update__node().
| void ED_node_set_active | ( | Main * | bmain, |
| SpaceNode * | snode, | ||
| bNodeTree * | ntree, | ||
| bNode * | node, | ||
| bool * | r_active_texture_changed ) |
Definition at line 722 of file node_edit.cc.
References blender::ed::viewer_path::activate_geometry_node(), BKE_image_ensure_viewer(), BKE_ntree_update_tag_active_output_changed(), ED_node_tree_propagate_change(), ED_space_image_sync(), ELEM, Image::flag, GPU_material_free(), GS, Image::id, ID_IM, IMA_TYPE_COMPOSITE, LISTBASE_FOREACH, Main::materials, NC_IMAGE, NC_MATERIAL, ND_NODES, NODE_ACTIVE_TEXTURE, NODE_DO_OUTPUT, NODE_GROUP, NODE_GROUP_OUTPUT, blender::bke::node_set_active(), blender::bke::node_tree_contains_tree(), NTREE_COMPOSIT, NTREE_GEOMETRY, NTREE_SHADER, SH_NODE_OUTPUT_LIGHT, SH_NODE_OUTPUT_LINESTYLE, SH_NODE_OUTPUT_MATERIAL, SH_NODE_OUTPUT_WORLD, bNodeTree::type, WM_main_add_notifier(), and Main::worlds.
Referenced by blender::ed::space_node::add_node(), blender::ed::space_node::add_static_node(), blender::ed::space_node::node_add_file_exec(), blender::nodes::node_geo_viewer_cc::node_gather_link_searches(), blender::ed::space_node::node_mouse_select(), blender::ed::space_node::node_select_single(), and template_texture_select().
| void ED_node_set_tree_type | ( | SpaceNode * | snode, |
| blender::bke::bNodeTreeType * | typeinfo ) |
Definition at line 513 of file node_edit.cc.
References blender::bke::bNodeTreeType::idname, STRNCPY, and SpaceNode::tree_idname.
Referenced by blender::ed::space_node::node_space_subtype_set().
Assumes nothing being done in ntree yet, sets the default in/out node. Called from shading buttons or header.
Definition at line 549 of file node_edit.cc.
References BKE_material_default_surface(), BKE_material_default_volume(), BKE_ntree_update_main_tree(), copy_v3_v3(), CTX_data_active_object(), CTX_data_main(), DATA_, bNodeSocket::default_value, ELEM, GS, Material::id, ID_LA, ID_MA, ID_WO, blender::bke::bNodeTreeType::idname, blender::bke::node_add_link(), blender::bke::node_add_static_node(), blender::bke::node_find_socket(), blender::bke::node_set_active(), blender::bke::node_tree_add_tree_embedded(), blender::bke::node_tree_copy_tree(), blender::bke::node_unique_name(), Material::nodetree, ntreeType_Shader, OB_VOLUME, output, bNodeTree::owner_id, printf, SH_NODE_OUTPUT_LIGHT, SH_NODE_OUTPUT_WORLD, SOCK_IN, SOCK_OUT, STRNCPY_UTF8, and Object::type.
Referenced by new_material_exec(), new_world_exec(), and proj_paint_add_slot().
| bool ED_node_supports_preview | ( | SpaceNode * | snode | ) |
Definition at line 543 of file node_edit.cc.
References ED_node_is_compositor(), and ED_node_is_shader().
Referenced by blender::ed::space_node::node_previewable().
Assumes nothing being done in ntree yet, sets the default in/out node. Called from shading buttons or header.
Definition at line 648 of file node_edit.cc.
References BKE_ntree_update_main_tree(), CTX_data_main(), G, G_DEBUG, Tex::id, blender::bke::bNodeTreeType::idname, blender::bke::node_add_link(), blender::bke::node_add_static_node(), blender::bke::node_set_active(), blender::bke::node_tree_add_tree_embedded(), Tex::nodetree, ntreeType_Texture, printf, and tex.
Call after one or more node trees have been changed and tagged accordingly.
This function will make sure that other parts of Blender update accordingly. For example, if the node group interface changed, parent node groups have to be updated as well.
Additionally, this will send notifiers and tag the depsgraph based on the changes. Depsgraph relation updates have to be triggered by the caller.
| C | Context if available. This can be null. |
| bmain | Main whose data-blocks should be updated based on the changes. |
| ntree | Under some circumstances the caller knows that only one node tree has changed since the last update. In this case the function may be able to skip scanning #bmain for other things that have to be changed. It may still scan #bmain if the interface of the node tree has changed. |
Definition at line 492 of file node_edit.cc.
References BKE_ntree_update_main_tree(), CTX_wm_space_node(), DEG_id_tag_update(), SpaceNode::id, ID_RECALC_NTREE_OUTPUT, ID_RECALC_SYNC_TO_EVAL, params, and blender::ed::space_node::send_notifiers_after_tree_change().
Referenced by blender::ed::space_node::add_dragged_links_to_tree(), blender::ed::space_node::add_group_input_node_fn(), blender::ed::space_node::add_node(), blender::ed::space_node::add_node_group_asset(), blender::ed::space_node::add_reroute_exec(), blender::ed::space_node::add_static_node(), blender::ed::space_node::attribute_search_exec_fn(), blender::ed::space_node::clear_viewer_border_exec(), blender::ed::space_node::cut_links_exec(), blender::ed::space_node::detach_links_exec(), ED_node_set_active(), ED_object_assign_active_image(), blender::ed::curves::ensure_surface_deformation_node_exists(), blender::ed::space_node::viewer_linking::finalize_viewer_link(), blender::ed::space_node::link_drag_search_exec_fn(), blender::ed::space_node::mute_links_exec(), blender::ed::space_node::node_active_link_viewer_exec(), blender::ed::space_node::node_add_collection_exec(), blender::ed::space_node::node_add_file_exec(), blender::ed::space_node::node_add_group_exec(), blender::ed::space_node::node_add_mask_exec(), blender::ed::space_node::node_add_material_exec(), blender::ed::space_node::node_add_object_exec(), blender::ed::space_node::node_clipboard_paste_exec(), blender::ed::space_node::node_cryptomatte_add_socket_exec(), blender::ed::space_node::node_cryptomatte_remove_socket_exec(), blender::ed::space_node::node_deactivate_viewer_exec(), blender::ed::space_node::node_delete_exec(), blender::ed::space_node::node_delete_reconnect_exec(), blender::ed::space_node::node_duplicate_exec(), blender::ed::space_node::node_group_make_insert_selected(), blender::ed::space_node::node_group_separate_exec(), blender::ed::space_node::node_group_ungroup_exec(), blender::ed::space_node::node_insert_on_link_flags(), blender::ed::space_node::node_join_exec(), blender::ed::space_node::node_link_cancel(), blender::ed::space_node::node_make_link_exec(), blender::ed::space_node::node_mute_exec(), blender::ed::space_node::node_output_file_add_socket_exec(), blender::ed::space_node::node_output_file_move_active_socket_exec(), blender::ed::space_node::node_output_file_remove_active_socket_exec(), blender::ed::space_node::node_panel_toggle_button_cb(), blender::ed::space_node::node_preview_toggle_exec(), blender::ed::space_node::node_property_update_default(), blender::ed::space_node::node_read_viewlayers_exec(), blender::ed::space_node::node_socket_add_replace(), blender::ed::space_node::node_socket_disconnect(), blender::ed::space_node::node_socket_remove(), blender::ed::space_node::node_socket_toggle_exec(), blender::ed::outliner::outliner_delete_exec(), blender::ed::outliner::outliner_id_operation_exec(), blender::ed::outliner::outliner_lib_operation_exec(), paste_material_exec(), proj_paint_add_slot(), render_view_add_exec(), render_view_remove_exec(), blender::ed::transform::special_aftertrans_update__node(), blender::nodes::socket_items::ops::update_after_node_change(), blender::ed::space_node::viewer_border_exec(), and blender::ed::view3d::geometry_nodes_gizmos::WIDGETGROUP_geometry_nodes_refresh().
|
static |
Definition at line 352 of file node_edit.cc.
References BKE_render_resolution(), CTX_data_scene(), GPU_max_texture_size(), RPT_ERROR, SCE_COMPOSITOR_DEVICE_GPU, and WM_report().
Referenced by ED_node_composite_job().