Blender V4.3
blender::ed::space_node Namespace Reference

Namespaces

namespace  viewer_linking
 

Classes

struct  AttributeSearchData
 
struct  bNodeLinkDrag
 
struct  ClipboardLink
 
struct  CompoJob
 
struct  ImageSampleInfo
 
struct  LinkAndPosition
 
struct  LinkDragSearchStorage
 
struct  LocationUpdateState
 
struct  NamedAttributeTooltipArg
 
struct  NestedTreePreviews
 
struct  NodeClipboard
 
struct  NodeClipboardItem
 
struct  NodeClipboardItemIDInfo
 
struct  NodeCornerPinWidgetGroup
 
struct  NodeCropWidgetGroup
 
struct  NodeDetachstate
 
struct  NodeErrorsTooltipData
 
struct  NodeInterfaceItemData
 
struct  NodeJoinState
 
struct  NodeLinkArg
 
struct  NodeLinkDrawConfig
 
struct  NodeLinkItem
 
struct  NodeSizeWidget
 
struct  NodeStackAnimationData
 
struct  NodeSunBeamsWidgetGroup
 
struct  NodeViewMove
 
struct  ObjectAndModifier
 
struct  RerouteCutsForSocket
 
struct  ShaderNodesPreviewJob
 
struct  SpaceNode_Runtime
 
struct  VisibilityUpdateState
 

Typedefs

using SocketColorFn = void (*)(bContext *C, PointerRNA *ptr, PointerRNA *node_ptr, float *r_color)
 
using ItemIterator = Vector<NodeInterfaceItemData>::const_iterator
 
Local Structs
using NodeSocketPair = std::pair<bNode *, bNodeSocket *>
 

Enumerations

enum  NodeResizeDirection {
  NODE_RESIZE_NONE = 0 , NODE_RESIZE_TOP = (1 << 0) , NODE_RESIZE_BOTTOM = (1 << 1) , NODE_RESIZE_RIGHT = (1 << 2) ,
  NODE_RESIZE_LEFT = (1 << 3)
}
 

Functions

void snode_set_context (const bContext &C)
 
void node_socket_draw (bNodeSocket *sock, const rcti *rect, const float color[4], float scale)
 
std::optional< int32_tfind_nested_node_id_in_root (const SpaceNode &snode, const bNode &node)
 
std::optional< ObjectAndModifierget_modifier_for_node_editor (const SpaceNode &snode)
 
bool push_compute_context_for_tree_path (const SpaceNode &snode, ComputeContextBuilder &compute_context_builder)
 
void ui_template_node_asset_menu_items (uiLayout &layout, const bContext &C, StringRef catalog_path)
 
static bool node_add_menu_poll (const bContext *C, MenuType *)
 
static bool all_loading_finished ()
 
static asset::AssetItemTree build_catalog_tree (const bContext &C, const bNodeTree &node_tree)
 
static Set< StringRefget_builtin_menus (const int tree_type)
 
static void node_add_catalog_assets_draw (const bContext *C, Menu *menu)
 
static void node_add_unassigned_assets_draw (const bContext *C, Menu *menu)
 
static void add_root_catalogs_draw (const bContext *C, Menu *menu)
 
MenuType add_catalog_assets_menu_type ()
 
MenuType add_unassigned_assets_menu_type ()
 
MenuType add_root_catalogs_menu_type ()
 
static NodeClipboardget_node_clipboard ()
 
static void node_socket_button_label (bContext *, uiLayout *layout, PointerRNA *, PointerRNA *, const char *text)
 
static void node_buts_value (uiLayout *layout, bContext *, PointerRNA *ptr)
 
static void node_buts_rgb (uiLayout *layout, bContext *, PointerRNA *ptr)
 
static void node_buts_mix_rgb (uiLayout *layout, bContext *, PointerRNA *ptr)
 
static void node_buts_time (uiLayout *layout, bContext *, PointerRNA *ptr)
 
static void node_buts_colorramp (uiLayout *layout, bContext *, PointerRNA *ptr)
 
static void node_buts_curvevec (uiLayout *layout, bContext *, PointerRNA *ptr)
 
static void node_buts_curvefloat (uiLayout *layout, bContext *, PointerRNA *ptr)
 
static void node_buts_curvecol (uiLayout *layout, bContext *, PointerRNA *ptr)
 
static void node_buts_normal (uiLayout *layout, bContext *, PointerRNA *ptr)
 
static void node_buts_texture (uiLayout *layout, bContext *C, PointerRNA *ptr)
 
static void node_buts_math (uiLayout *layout, bContext *, PointerRNA *ptr)
 
static void node_buts_combsep_color (uiLayout *layout, bContext *, PointerRNA *ptr)
 
NodeResizeDirection node_get_resize_direction (const SpaceNode &snode, const bNode *node, const int x, const int y)
 
static void node_draw_buttons_group (uiLayout *layout, bContext *C, PointerRNA *ptr)
 
static void node_buts_frame_ex (uiLayout *layout, bContext *, PointerRNA *ptr)
 
static void node_common_set_butfunc (blender::bke::bNodeType *ntype)
 
static void node_buts_image_user (uiLayout *layout, bContext *C, PointerRNA *ptr, PointerRNA *imaptr, PointerRNA *iuserptr, const bool show_layer_selection, const bool show_color_management)
 
static void node_shader_buts_tex_image (uiLayout *layout, bContext *C, PointerRNA *ptr)
 
static void node_shader_buts_tex_image_ex (uiLayout *layout, bContext *C, PointerRNA *ptr)
 
static void node_shader_buts_tex_environment (uiLayout *layout, bContext *C, PointerRNA *ptr)
 
static void node_shader_buts_tex_environment_ex (uiLayout *layout, bContext *C, PointerRNA *ptr)
 
static void node_shader_buts_displacement (uiLayout *layout, bContext *, PointerRNA *ptr)
 
static void node_shader_buts_glossy (uiLayout *layout, bContext *, PointerRNA *ptr)
 
static void node_buts_output_shader (uiLayout *layout, bContext *, PointerRNA *ptr)
 
static void node_shader_buts_scatter (uiLayout *layout, bContext *, PointerRNA *ptr)
 
static void node_shader_set_butfunc (blender::bke::bNodeType *ntype)
 
static void node_buts_image_views (uiLayout *layout, bContext *, PointerRNA *ptr, PointerRNA *imaptr)
 
static void node_composit_buts_image (uiLayout *layout, bContext *C, PointerRNA *ptr)
 
static void node_composit_buts_image_ex (uiLayout *layout, bContext *C, PointerRNA *ptr)
 
static void node_composit_buts_huecorrect (uiLayout *layout, bContext *, PointerRNA *ptr)
 
static void node_composit_buts_ycc (uiLayout *layout, bContext *, PointerRNA *ptr)
 
static void node_composit_buts_combsep_color (uiLayout *layout, bContext *, PointerRNA *ptr)
 
static void node_composit_backdrop_boxmask (SpaceNode *snode, ImBuf *backdrop, bNode *node, int x, int y)
 
static void node_composit_backdrop_ellipsemask (SpaceNode *snode, ImBuf *backdrop, bNode *node, int x, int y)
 
static void node_composit_buts_cryptomatte_legacy (uiLayout *layout, bContext *, PointerRNA *ptr)
 
static void node_composit_buts_cryptomatte_legacy_ex (uiLayout *layout, bContext *, PointerRNA *)
 
static void node_composit_buts_cryptomatte (uiLayout *layout, bContext *C, PointerRNA *ptr)
 
static void node_composit_set_butfunc (blender::bke::bNodeType *ntype)
 
static void node_texture_buts_bricks (uiLayout *layout, bContext *, PointerRNA *ptr)
 
static void node_texture_buts_proc (uiLayout *layout, bContext *, PointerRNA *ptr)
 
static void node_texture_buts_image (uiLayout *layout, bContext *C, PointerRNA *ptr)
 
static void node_texture_buts_image_ex (uiLayout *layout, bContext *C, PointerRNA *ptr)
 
static void node_texture_buts_output (uiLayout *layout, bContext *, PointerRNA *ptr)
 
static void node_texture_buts_combsep_color (uiLayout *layout, bContext *, PointerRNA *ptr)
 
static void node_texture_set_butfunc (blender::bke::bNodeType *ntype)
 
template<int socket_type>
void std_node_socket_color_fn (bContext *, PointerRNA *, PointerRNA *, float *r_color)
 
static void std_node_socket_color_simple_fn (const bke::bNodeSocketType *type, float *r_color)
 
static void node_file_output_socket_draw (bContext *C, uiLayout *layout, PointerRNA *ptr, PointerRNA *node_ptr)
 
static bool socket_needs_attribute_search (bNode &node, bNodeSocket &socket)
 
static void draw_gizmo_pin_icon (uiLayout *layout, PointerRNA *socket_ptr)
 
static void draw_node_socket_name_editable (uiLayout *layout, bNodeSocket *sock, const char *text)
 
static void draw_node_socket_without_value (uiLayout *layout, bNodeSocket *sock, const char *text)
 
static void std_node_socket_draw (bContext *C, uiLayout *layout, PointerRNA *ptr, PointerRNA *node_ptr, const char *text)
 
static void std_node_socket_interface_draw (ID *id, bNodeTreeInterfaceSocket *interface_socket, bContext *, uiLayout *layout)
 
static void node_socket_virtual_draw_color (bContext *, PointerRNA *, PointerRNA *, float *r_color)
 
static void node_socket_virtual_draw_color_simple (const bke::bNodeSocketType *, float *r_color)
 
void draw_nodespace_back_pix (const bContext &C, ARegion &region, SpaceNode &snode, bNodeInstanceKey parent_key)
 
static float2 socket_link_connection_location (const bNode &node, const bNodeSocket &socket, const bNodeLink &link)
 
static void calculate_inner_link_bezier_points (std::array< float2, 4 > &points)
 
static std::array< float2, 4 > node_link_bezier_points (const bNodeLink &link)
 
static bool node_link_draw_is_visible (const View2D &v2d, const std::array< float2, 4 > &points)
 
void node_link_bezier_points_evaluated (const bNodeLink &link, std::array< float2, NODE_LINK_RESOL+1 > &coords)
 
static void nodelink_batch_reset ()
 
static void set_nodelink_vertex (gpu::VertBuf *vbo, uint uv_id, uint pos_id, uint exp_id, uint v, const uchar uv[2], const float pos[2], const float exp[2])
 
static void nodelink_batch_init ()
 
static char nodelink_get_color_id (int th_col)
 
static void nodelink_batch_draw (const SpaceNode &snode)
 
void nodelink_batch_start (SpaceNode &)
 
void nodelink_batch_end (SpaceNode &snode)
 
static void nodelink_batch_add_link (const SpaceNode &snode, const std::array< float2, 4 > &points, const NodeLinkDrawConfig &draw_config)
 
static void node_draw_link_end_marker (const float2 center, const float radius, const ColorTheme4f &color)
 
static void node_draw_link_end_markers (const bNodeLink &link, const NodeLinkDrawConfig &draw_config, const std::array< float2, 4 > &points, const bool outline)
 
static bool node_link_is_field_link (const SpaceNode &snode, const bNodeLink &link)
 
static bool node_link_is_gizmo_link (const SpaceNode &snode, const bNodeLink &link)
 
static NodeLinkDrawConfig nodelink_get_draw_config (const bContext &C, const View2D &v2d, const SpaceNode &snode, const bNodeLink &link, const int th_col1, const int th_col2, const int th_col3, const bool selected)
 
static void node_draw_link_bezier_ex (const SpaceNode &snode, const NodeLinkDrawConfig &draw_config, const std::array< float2, 4 > &points)
 
void node_draw_link_bezier (const bContext &C, const View2D &v2d, const SpaceNode &snode, const bNodeLink &link, const int th_col1, const int th_col2, const int th_col3, const bool selected)
 
void node_draw_link (const bContext &C, const View2D &v2d, const SpaceNode &snode, const bNodeLink &link, const bool selected)
 
std::array< float2, 4 > node_link_bezier_points_dragged (const SpaceNode &snode, const bNodeLink &link)
 
void node_draw_link_dragged (const bContext &C, const View2D &v2d, const SpaceNode &snode, const bNodeLink &link)
 
static void link_drag_search_listen_fn (const wmRegionListenerParams *params, void *arg)
 
static void add_reroute_node_fn (nodes::LinkSearchOpParams &params)
 
static void add_group_input_node_fn (nodes::LinkSearchOpParams &params)
 
static void add_existing_group_input_fn (nodes::LinkSearchOpParams &params, const bNodeTreeInterfaceSocket &interface_socket)
 
static void search_link_ops_for_asset_metadata (const bNodeTree &node_tree, const bNodeSocket &socket, const asset_system::AssetRepresentation &asset, Vector< SocketLinkOperation > &search_link_ops)
 
static void gather_search_link_ops_for_all_assets (const bContext &C, const bNodeTree &node_tree, const bNodeSocket &socket, Vector< SocketLinkOperation > &search_link_ops)
 
static void gather_socket_link_operations (const bContext &C, bNodeTree &node_tree, const bNodeSocket &socket, Vector< SocketLinkOperation > &search_link_ops)
 
static void link_drag_search_update_fn (const bContext *C, void *arg, const char *str, uiSearchItems *items, const bool is_first)
 
static void link_drag_search_exec_fn (bContext *C, void *arg1, void *arg2)
 
static void link_drag_search_free_fn (void *arg)
 
static uiBlockcreate_search_popup_block (bContext *C, ARegion *region, void *arg_op)
 
void invoke_node_link_drag_add_menu (bContext &C, bNode &node, bNodeSocket &socket, const float2 &cursor)
 
static void context_path_add_object_data (Vector< ui::ContextPathItem > &path, Object &object)
 
static void context_path_add_node_tree_and_node_groups (const SpaceNode &snode, Vector< ui::ContextPathItem > &path, const bool skip_base=false)
 
static void get_context_path_node_shader (const bContext &C, SpaceNode &snode, Vector< ui::ContextPathItem > &path)
 
static void get_context_path_node_compositor (const bContext &C, SpaceNode &snode, Vector< ui::ContextPathItem > &path)
 
static void get_context_path_node_geometry (const bContext &C, SpaceNode &snode, Vector< ui::ContextPathItem > &path)
 
Vector< ui::ContextPathItemcontext_path_for_space_node (const bContext &C)
 
static std::string node_socket_get_tooltip (const SpaceNode *snode, const bNodeTree &ntree, const bNodeSocket &socket)
 
static const char * node_socket_get_translation_context (const bNodeSocket &socket)
 
static void node_socket_add_tooltip_in_node_editor (const bNodeSocket &sock, uiLayout &layout)
 
static bool compare_node_depth (const bNode *a, const bNode *b)
 
void tree_draw_order_update (bNodeTree &ntree)
 
Array< bNode * > tree_draw_order_calc_nodes (bNodeTree &ntree)
 
Array< bNode * > tree_draw_order_calc_nodes_reversed (bNodeTree &ntree)
 
static Array< uiBlock * > node_uiblocks_init (const bContext &C, const Span< bNode * > nodes)
 
float2 node_to_view (const bNode &node, const float2 &co)
 
void node_to_updated_rect (const bNode &node, rctf &r_rect)
 
float2 node_from_view (const bNode &node, const float2 &co)
 
static bool is_node_panels_supported (const bNode &node)
 
static bool node_update_basis_buttons (const bContext &C, bNodeTree &ntree, bNode &node, nodes::PanelDrawButtonsFunction draw_buttons, uiBlock &block, int &dy)
 
const char * node_socket_get_label (const bNodeSocket *socket, const char *panel_label)
 
static bool node_update_basis_socket (const bContext &C, bNodeTree &ntree, bNode &node, const char *panel_label, bNodeSocket *input_socket, bNodeSocket *output_socket, uiBlock &block, const int &locx, int &locy)
 
static Vector< NodeInterfaceItemDatanode_build_item_data (bNode &node)
 
static void node_update_panel_items_visibility_recursive (int num_items, const bool is_parent_collapsed, bNodePanelState &parent_state, VisibilityUpdateState &state)
 
static void add_panel_items_recursive (const bContext &C, bNodeTree &ntree, bNode &node, uiBlock &block, const int locx, int &locy, int num_items, const bool is_parent_collapsed, const char *parent_label, bke::bNodePanelRuntime *parent_runtime, LocationUpdateState &state)
 
static void node_update_basis_from_declaration (const bContext &C, bNodeTree &ntree, bNode &node, uiBlock &block, const int locx, int &locy)
 
static void node_update_basis_from_socket_lists (const bContext &C, bNodeTree &ntree, bNode &node, uiBlock &block, const int locx, int &locy)
 
static void node_update_basis (const bContext &C, const TreeDrawContext &, bNodeTree &ntree, bNode &node, uiBlock &block)
 
static void node_update_hidden (bNode &node, uiBlock &block)
 
static int node_get_colorid (TreeDrawContext &tree_draw_ctx, const bNode &node)
 
static void node_draw_mute_line (const bContext &C, const View2D &v2d, const SpaceNode &snode, const bNode &node)
 
static void node_socket_draw (const bNodeSocket &sock, const float color[4], const float color_outline[4], const float size, const float locx, const float locy, uint pos_id, uint col_id, uint shape_id, uint size_id, uint outline_col_id)
 
static void node_socket_tooltip_set (uiBlock &block, const int socket_index_in_tree, const float2 location, const float2 size)
 
static void node_socket_draw_multi_input (uiBlock &block, const int index_in_tree, const float2 location, const float2 draw_size, const float color[4], const float color_outline[4], const float2 tooltip_size)
 
static void node_socket_outline_color_get (const bool selected, const int socket_type, float r_outline_color[4])
 
void node_socket_color_get (const bContext &C, const bNodeTree &ntree, PointerRNA &node_ptr, const bNodeSocket &sock, float r_color[4])
 
static void create_inspection_string_for_generic_value (const bNodeSocket &socket, const GPointer value, fmt::memory_buffer &buf)
 
static void create_inspection_string_for_field_info (const bNodeSocket &socket, const geo_log::FieldInfoLog &value_log, fmt::memory_buffer &buf)
 
static void create_inspection_string_for_geometry_info (const geo_log::GeometryInfoLog &value_log, fmt::memory_buffer &buf)
 
static void create_inspection_string_for_geometry_socket (fmt::memory_buffer &buf, const nodes::decl::Geometry *socket_decl)
 
static void create_inspection_string_for_default_socket_value (const bNodeSocket &socket, fmt::memory_buffer &buf)
 
static std::optional< std::string > create_description_inspection_string (const bNodeSocket &socket)
 
static std::optional< std::string > create_log_inspection_string (geo_log::GeoTreeLog *geo_tree_log, const bNodeSocket &socket)
 
static std::optional< std::string > create_declaration_inspection_string (const bNodeSocket &socket)
 
static geo_log::GeoTreeLoggeo_tree_log_for_socket (const bNodeTree &ntree, const bNodeSocket &socket, TreeDrawContext &tree_draw_ctx)
 
static Vector< std::string > lines_of_text (std::string text)
 
static std::optional< std::string > create_multi_input_log_inspection_string (const bNodeTree &ntree, const bNodeSocket &socket, TreeDrawContext &tree_draw_ctx)
 
static std::optional< std::string > create_default_value_inspection_string (const bNodeSocket &socket)
 
static const bNodeSockettarget_for_reroute (const bNodeSocket &reroute_output)
 
static std::optional< std::string > create_dangling_reroute_inspection_string (const bNodeTree &ntree, const bNodeSocket &socket)
 
void node_socket_add_tooltip (const bNodeTree &ntree, const bNodeSocket &sock, uiLayout &layout)
 
static void node_socket_draw_nested (const bContext &C, const bNodeTree &ntree, PointerRNA &node_ptr, uiBlock &block, const bNodeSocket &sock, const uint pos_id, const uint col_id, const uint shape_id, const uint size_id, const uint outline_col_id, const float size, const bool selected)
 
static float node_tree_view_scale (const SpaceNode &snode)
 
static void node_draw_preview_background (rctf *rect)
 
static void node_draw_preview (const Scene *scene, ImBuf *preview, const rctf *prv)
 
static void node_toggle_button_cb (bContext *C, void *node_argv, void *op_argv)
 
static void node_draw_shadow (const SpaceNode &snode, const bNode &node, const float radius, const float alpha)
 
static void node_draw_sockets (const View2D &v2d, const bContext &C, const bNodeTree &ntree, const bNode &node, uiBlock &block, const bool draw_outputs, const bool select_all)
 
static void node_panel_toggle_button_cb (bContext *C, void *panel_state_argv, void *ntree_argv)
 
static void node_draw_panels_background (const bNode &node, uiBlock &block)
 
static void node_draw_panels (bNodeTree &ntree, const bNode &node, uiBlock &block)
 
static geo_log::NodeWarningType node_error_highest_priority (Span< geo_log::NodeWarning > warnings)
 
static std::string node_errors_tooltip_fn (bContext *, void *argN, const char *)
 
static void node_add_unsupported_compositor_operation_error_message_button (const bNode &node, uiBlock &block, const rctf &rect, float &icon_offset)
 
static void node_add_error_message_button (const TreeDrawContext &tree_draw_ctx, const bNode &node, uiBlock &block, const rctf &rect, float &icon_offset)
 
static std::optional< std::chrono::nanoseconds > geo_node_get_execution_time (const TreeDrawContext &tree_draw_ctx, const SpaceNode &snode, const bNode &node)
 
static bNodeInstanceKey current_node_instance_key (const SpaceNode &snode, const bNode &node)
 
static std::optional< std::chrono::nanoseconds > compositor_accumulate_frame_node_execution_time (const TreeDrawContext &tree_draw_ctx, const SpaceNode &snode, const bNode &node)
 
static std::optional< std::chrono::nanoseconds > compositor_node_get_execution_time (const TreeDrawContext &tree_draw_ctx, const SpaceNode &snode, const bNode &node)
 
static std::optional< std::chrono::nanoseconds > node_get_execution_time (const TreeDrawContext &tree_draw_ctx, const SpaceNode &snode, const bNode &node)
 
static std::string node_get_execution_time_label (TreeDrawContext &tree_draw_ctx, const SpaceNode &snode, const bNode &node)
 
static std::string named_attribute_tooltip (bContext *, void *argN, const char *)
 
static NodeExtraInfoRow row_from_used_named_attribute (const Map< StringRefNull, geo_log::NamedAttributeUsage > &usage_by_attribute_name)
 
static std::optional< NodeExtraInfoRownode_get_accessed_attributes_row (TreeDrawContext &tree_draw_ctx, const bNode &node)
 
static std::optional< NodeExtraInfoRownode_get_execution_time_label_row (TreeDrawContext &tree_draw_ctx, const SpaceNode &snode, const bNode &node)
 
static void node_get_compositor_extra_info (TreeDrawContext &tree_draw_ctx, const SpaceNode &snode, const bNode &node, Vector< NodeExtraInfoRow > &rows)
 
static void node_get_invalid_links_extra_info (const SpaceNode &snode, const bNode &node, Vector< NodeExtraInfoRow > &rows)
 
static Vector< NodeExtraInfoRownode_get_extra_info (const bContext &C, TreeDrawContext &tree_draw_ctx, const SpaceNode &snode, const bNode &node)
 
static void node_draw_extra_info_row (const bNode &node, uiBlock &block, const rctf &rect, const int row, const NodeExtraInfoRow &extra_info_row)
 
static void node_draw_extra_info_panel_back (const bNode &node, const rctf &extra_info_rect)
 
static void node_draw_extra_info_panel (const bContext &C, TreeDrawContext &tree_draw_ctx, const SpaceNode &snode, const bNode &node, ImBuf *preview, uiBlock &block)
 
static void node_draw_basis (const bContext &C, TreeDrawContext &tree_draw_ctx, const View2D &v2d, const SpaceNode &snode, bNodeTree &ntree, const bNode &node, uiBlock &block, bNodeInstanceKey key)
 
static void node_draw_hidden (const bContext &C, TreeDrawContext &tree_draw_ctx, const View2D &v2d, const SpaceNode &snode, bNodeTree &ntree, bNode &node, uiBlock &block)
 
int node_get_resize_cursor (NodeResizeDirection directions)
 
static const bNodefind_node_under_cursor (SpaceNode &snode, const float2 &cursor)
 
void node_set_cursor (wmWindow &win, ARegion &region, SpaceNode &snode, const float2 &cursor)
 
static void count_multi_input_socket_links (bNodeTree &ntree, SpaceNode &snode)
 
static float frame_node_label_height (const NodeFrame &frame_data)
 
static void frame_node_prepare_for_draw (bNode &node, Span< bNode * > nodes)
 
static void reroute_node_prepare_for_draw (bNode &node)
 
static void node_update_nodetree (const bContext &C, TreeDrawContext &tree_draw_ctx, bNodeTree &ntree, Span< bNode * > nodes, Span< uiBlock * > blocks)
 
static void frame_node_draw_label (TreeDrawContext &tree_draw_ctx, const bNodeTree &ntree, const bNode &node, const SpaceNode &snode)
 
static void frame_node_draw_background (const ARegion &region, const SpaceNode &snode, const bNode &node)
 
static void frame_node_draw_overlay (const bContext &C, TreeDrawContext &tree_draw_ctx, const ARegion &region, const SpaceNode &snode, const bNodeTree &ntree, const bNode &node, uiBlock &block)
 
static Set< const bNodeSocket * > find_sockets_on_active_gizmo_paths (const bContext &C, const SpaceNode &snode)
 
static const bNodereroute_node_get_linked_reroute (const bNode &reroute)
 
static StringRefNull reroute_node_get_auto_label (TreeDrawContext &tree_draw_ctx, const bNode &src_reroute)
 
static void reroute_node_draw_label (TreeDrawContext &tree_draw_ctx, const SpaceNode &snode, const bNode &node, uiBlock &block)
 
static void reroute_node_draw (const bContext &C, TreeDrawContext &tree_draw_ctx, ARegion &region, const SpaceNode &snode, bNodeTree &ntree, const bNode &node, uiBlock &block)
 
static void node_draw (const bContext &C, TreeDrawContext &tree_draw_ctx, ARegion &region, const SpaceNode &snode, bNodeTree &ntree, bNode &node, uiBlock &block, bNodeInstanceKey key)
 
static void add_rect_corner_positions (Vector< float2 > &positions, const rctf &rect)
 
static void find_bounds_by_zone_recursive (const SpaceNode &snode, const bNodeTreeZone &zone, const Span< std::unique_ptr< bNodeTreeZone > > all_zones, MutableSpan< Vector< float2 > > r_bounds_by_zone)
 
static void node_draw_zones_and_frames (const bContext &C, TreeDrawContext &tree_draw_ctx, const ARegion &region, const SpaceNode &snode, const bNodeTree &ntree, Span< uiBlock * > blocks)
 
static void node_draw_nodetree (const bContext &C, TreeDrawContext &tree_draw_ctx, ARegion &region, SpaceNode &snode, bNodeTree &ntree, Span< bNode * > nodes, Span< uiBlock * > blocks, bNodeInstanceKey parent_key)
 
static void draw_tree_path (const bContext &C, ARegion &region)
 
static void snode_setup_v2d (SpaceNode &snode, ARegion &region, const float2 &center)
 
static bool realtime_compositor_is_in_use (const bContext &context)
 
static void draw_nodetree (const bContext &C, ARegion &region, bNodeTree &ntree, bNodeInstanceKey parent_key)
 
static void draw_background_color (const SpaceNode &snode)
 
void node_draw_space (const bContext &C, ARegion &region)
 
 BLI_STATIC_ASSERT (std::is_trivially_destructible_v< AttributeSearchData >, "")
 
static Vector< const GeometryAttributeInfo * > get_attribute_info_from_context (const bContext &C, AttributeSearchData &data)
 
static void attribute_search_update_fn (const bContext *C, void *arg, const char *str, uiSearchItems *items, const bool is_first)
 
static eCustomDataType data_type_in_attribute_input_node (const eCustomDataType type)
 
static void attribute_search_exec_fn (bContext *C, void *data_v, void *item_v)
 
void node_geometry_add_attribute_search_button (const bContext &, const bNode &node, PointerRNA &socket_ptr, uiLayout &layout, const StringRefNull placeholder)
 
 ENUM_OPERATORS (NodeResizeDirection, NODE_RESIZE_LEFT)
 
float2 space_node_group_offset (const SpaceNode &snode)
 
void node_operatortypes ()
 
void node_keymap (wmKeyConfig *keyconf)
 
void NODE_OT_backimage_sample (wmOperatorType *ot)
 
static void clear_picking_highlight (ListBase *links)
 
static bool has_workbench_in_texture_color (const wmWindowManager *wm, const Scene *scene, const Object *ob)
 
static void node_link_item_init (NodeLinkItem &item)
 
static bool node_link_item_compare (bNode *node, NodeLinkItem *item)
 
static void node_link_item_apply (bNodeTree *ntree, bNode *node, NodeLinkItem *item)
 
static void node_tag_recursive (bNode *node)
 
static void node_clear_recursive (bNode *node)
 
static void node_remove_linked (Main *bmain, bNodeTree *ntree, bNode *rem_node)
 
static void node_socket_disconnect (Main *bmain, bNodeTree *ntree, bNode *node_to, bNodeSocket *sock_to)
 
static void node_socket_remove (Main *bmain, bNodeTree *ntree, bNode *node_to, bNodeSocket *sock_to)
 
static void node_socket_add_replace (const bContext *C, bNodeTree *ntree, bNode *node_to, bNodeSocket *sock_to, int type, NodeLinkItem *item)
 
static Vector< NodeLinkItemui_node_link_items (NodeLinkArg *arg, int in_out, std::optional< NodeDeclaration > &r_node_decl)
 
static void ui_node_link (bContext *C, void *arg_p, void *event_p)
 
static void ui_node_sock_name (const bNodeTree *ntree, bNodeSocket *sock, char name[UI_MAX_NAME_STR])
 
static int ui_compatible_sockets (int typeA, int typeB)
 
static int ui_node_item_name_compare (const void *a, const void *b)
 
static bool ui_node_item_special_poll (const bNodeTree *, const bke::bNodeType *ntype)
 
static void ui_node_menu_column (NodeLinkArg *arg, int nclass, const char *cname)
 
static void node_menu_column_foreach_cb (void *calldata, int nclass, const char *name)
 
static void ui_template_node_link_menu (bContext *C, uiLayout *layout, void *but_p)
 
static void ui_node_draw_input (uiLayout &layout, bContext &C, bNodeTree &ntree, bNode &node, bNodeSocket &input, int depth, const char *panel_label)
 
static void node_panel_toggle_button_cb (bContext *C, void *panel_state_argv, void *ntree_argv)
 
static void ui_node_draw_panel (uiLayout &layout, bContext &C, bNodeTree &ntree, const nodes::PanelDeclaration &panel_decl, bNodePanelState &panel_state, PointerRNA nodeptr)
 
static void ui_node_draw_node (uiLayout &layout, bContext &C, bNodeTree &ntree, bNode &node, int depth)
 
static void sample_apply (bContext *C, wmOperator *op, const wmEvent *event)
 
static void sample_exit (bContext *C, wmOperator *op)
 
static int sample_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static int sample_modal (bContext *C, wmOperator *op, const wmEvent *event)
 
static void sample_cancel (bContext *C, wmOperator *op)
 
static const bNodegroup_node_by_name (const bNodeTree &ntree, StringRef name)
 
static SpaceLinknode_create (const ScrArea *, const Scene *)
 
static void node_free (SpaceLink *sl)
 
static void node_init (wmWindowManager *, ScrArea *area)
 
static void node_exit (wmWindowManager *wm, ScrArea *area)
 
static bool any_node_uses_id (const bNodeTree *ntree, const ID *id)
 
static void node_area_tag_tree_recalc (SpaceNode *snode, ScrArea *area)
 
static void node_area_listener (const wmSpaceTypeListenerParams *params)
 
static bool is_compositor_viewer_image_visible (const bContext *C)
 
static void node_area_refresh (const bContext *C, ScrArea *area)
 
static SpaceLinknode_duplicate (SpaceLink *sl)
 
static void node_buttons_region_init (wmWindowManager *wm, ARegion *region)
 
static void node_buttons_region_draw (const bContext *C, ARegion *region)
 
static void node_toolbar_region_init (wmWindowManager *wm, ARegion *region)
 
static void node_toolbar_region_draw (const bContext *C, ARegion *region)
 
static void node_cursor (wmWindow *win, ScrArea *area, ARegion *region)
 
static void node_main_region_init (wmWindowManager *wm, ARegion *region)
 
static void node_main_region_draw (const bContext *C, ARegion *region)
 
static bool node_group_drop_poll (bContext *C, wmDrag *drag, const wmEvent *)
 
static bool node_object_drop_poll (bContext *C, wmDrag *drag, const wmEvent *)
 
static bool node_collection_drop_poll (bContext *C, wmDrag *drag, const wmEvent *)
 
static bool node_id_im_drop_poll (bContext *, wmDrag *drag, const wmEvent *)
 
static bool node_mask_drop_poll (bContext *, wmDrag *drag, const wmEvent *)
 
static bool node_material_drop_poll (bContext *C, wmDrag *drag, const wmEvent *)
 
static void node_group_drop_copy (bContext *C, wmDrag *drag, wmDropBox *drop)
 
static void node_id_drop_copy (bContext *C, wmDrag *drag, wmDropBox *drop)
 
static void node_id_im_drop_copy (bContext *C, wmDrag *drag, wmDropBox *drop)
 
static void node_dropboxes ()
 
static void node_header_region_init (wmWindowManager *, ARegion *region)
 
static void node_header_region_draw (const bContext *C, ARegion *region)
 
static void node_region_listener (const wmRegionListenerParams *params)
 
static int node_context (const bContext *C, const char *member, bContextDataResult *result)
 
static void node_widgets ()
 
static void node_id_remap (ID *old_id, ID *new_id, SpaceNode *snode)
 
static void node_id_remap (ScrArea *, SpaceLink *slink, const blender::bke::id::IDRemapper &mappings)
 
static void node_foreach_id (SpaceLink *space_link, LibraryForeachIDData *data)
 
static int node_space_subtype_get (ScrArea *area)
 
static void node_space_subtype_set (ScrArea *area, int value)
 
static void node_space_subtype_item_extend (bContext *C, EnumPropertyItem **item, int *totitem)
 
static blender::StringRefNull node_space_name_get (const ScrArea *area)
 
static int node_space_icon_get (const ScrArea *area)
 
static void node_space_blend_read_data (BlendDataReader *reader, SpaceLink *sl)
 
static void node_space_blend_write (BlendWriter *writer, SpaceLink *sl)
 
Public Node Selection API
VectorSet< bNode * > get_selected_nodes (bNodeTree &node_tree)
 
rctf node_frame_rect_inside (const SpaceNode &snode, const bNode &node)
 
bool node_or_socket_isect_event (const bContext &C, const wmEvent &event)
 
bool node_deselect_all (bNodeTree &node_tree)
 
void node_socket_select (bNode *node, bNodeSocket &sock)
 
void node_socket_deselect (bNode *node, bNodeSocket &sock, bool deselect_node)
 
void node_deselect_all_input_sockets (bNodeTree &node_tree, bool deselect_nodes)
 
void node_deselect_all_output_sockets (bNodeTree &node_tree, bool deselect_nodes)
 
void node_select_paired (bNodeTree &node_tree)
 
static bool is_event_over_node_or_socket (const bContext &C, const wmEvent &event)
 
static bool node_frame_select_isect_mouse (const SpaceNode &snode, const bNode &node, const float2 &mouse)
 
static bNodenode_under_mouse_select (const SpaceNode &snode, const float2 mouse)
 
static bool node_under_mouse_tweak (const SpaceNode &snode, const float2 &mouse)
 
static bool is_position_over_node_or_socket (SpaceNode &snode, ARegion &region, const float2 &mouse)
 
static void node_socket_toggle (bNode *node, bNodeSocket &sock, bool deselect_node)
 
Automatic Node Insert on Dragging
void node_insert_on_link_flags_set (SpaceNode &snode, const ARegion &region, bool attach_enabled, bool is_new_node)
 
void node_insert_on_link_flags (Main &bmain, SpaceNode &snode, bool is_new_node)
 
void node_insert_on_link_flags_clear (bNodeTree &node_tree)
 
static bNodeget_selected_node_for_insertion (bNodeTree &node_tree)
 
static bool node_can_be_inserted_on_link (bNodeTree &tree, bNode &node, const bNodeLink &link)
 
Preview job management
void free_previews (wmWindowManager &wm, SpaceNode &snode)
 
static void update_needed_flag (NestedTreePreviews &tree_previews, const bNodeTree &nt, ePreviewType preview_type)
 
static void shader_preview_startjob (void *customdata, wmJobWorkerStatus *worker_status)
 
static void shader_preview_free (void *customdata)
 
Preview rendering
ImBufnode_preview_acquire_ibuf (bNodeTree &ntree, NestedTreePreviews &tree_previews, const bNode &node)
 
void node_release_preview_ibuf (NestedTreePreviews &tree_previews)
 
static bNodeSocketnode_find_preview_socket (bNodeTree &ntree, bNode &node)
 
static bool socket_use_aov (const bNodeSocket *socket)
 
static bool node_use_aov (bNodeTree &ntree, const bNode *node)
 
static ImBufget_image_from_viewlayer_and_pass (RenderResult &rr, const char *layer_name, const char *pass_name)
 
static void connect_nested_node_to_node (const Span< bNodeTreePath * > treepath, bNode &nested_node, bNodeSocket &nested_socket, bNode &final_node, bNodeSocket &final_socket, const char *route_name)
 
static void connect_node_to_surface_output (const Span< bNodeTreePath * > treepath, NodeSocketPair nodesocket, bNode &output_node)
 
static void connect_nodes_to_aovs (const Span< bNodeTreePath * > treepath, const Span< NodeSocketPair > nodesocket_span)
 
static bool nodetree_previews_break (void *spv)
 
static bool prepare_viewlayer_update (void *pvl_data, ViewLayer *vl, Depsgraph *depsgraph)
 
static void all_nodes_preview_update (void *npv, RenderResult *rr, rcti *)
 
static void preview_render (ShaderNodesPreviewJob &job_data)
 
Compute Context functions
NestedTreePreviewsget_nested_previews (const bContext &C, SpaceNode &snode)
 
static void ensure_nodetree_previews (const bContext &C, NestedTreePreviews &tree_previews, Material &material, ListBase &treepath)
 
static std::optional< ComputeContextHashget_compute_context_hash_for_node_editor (const SpaceNode &snode)
 
Copy
static int node_clipboard_copy_exec (bContext *C, wmOperator *)
 
void NODE_OT_clipboard_copy (wmOperatorType *ot)
 
Paste
static int node_clipboard_paste_exec (bContext *C, wmOperator *op)
 
static int node_clipboard_paste_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void NODE_OT_clipboard_paste (wmOperatorType *ot)
 
Init Draw Callbacks For All Tree Types

Only called on node initialization, once.

static void node_property_update_default (Main *bmain, Scene *, PointerRNA *ptr)
 
static void node_socket_template_properties_update (blender::bke::bNodeType *ntype, blender::bke::bNodeSocketTemplate *stemp)
 
static void node_template_properties_update (blender::bke::bNodeType *ntype)
 
static void node_socket_undefined_draw (bContext *, uiLayout *layout, PointerRNA *, PointerRNA *, const char *)
 
static void node_socket_undefined_draw_color (bContext *, PointerRNA *, PointerRNA *, float *r_color)
 
static void node_socket_undefined_draw_color_simple (const bke::bNodeSocketType *, float *r_color)
 
static void node_socket_undefined_interface_draw (ID *, bNodeTreeInterfaceSocket *, bContext *, uiLayout *layout)
 
Utilities
static void position_node_based_on_mouse (bNode &node, const float2 &location)
 
bNodeadd_node (const bContext &C, const StringRef idname, const float2 &location)
 
bNodeadd_static_node (const bContext &C, int type, const float2 &location)
 
Add Reroute Operator
std::optional< float2link_path_intersection (const bNodeLink &link, const Span< float2 > path)
 
static int add_reroute_exec (bContext *C, wmOperator *op)
 
void NODE_OT_add_reroute (wmOperatorType *ot)
 
Add Node Group Operator
static bool node_group_add_poll (const bNodeTree &node_tree, const bNodeTree &node_group, ReportList &reports)
 
static int node_add_group_exec (bContext *C, wmOperator *op)
 
static bool node_add_group_poll (bContext *C)
 
static int node_add_group_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void NODE_OT_add_group (wmOperatorType *ot)
 
Add Node Group Asset Operator
static bool add_node_group_asset (const bContext &C, const asset_system::AssetRepresentation &asset, ReportList &reports)
 
static int node_add_group_asset_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static std::string node_add_group_asset_get_description (bContext *C, wmOperatorType *, PointerRNA *ptr)
 
void NODE_OT_add_group_asset (wmOperatorType *ot)
 
Add Node Object Operator
static int node_add_object_exec (bContext *C, wmOperator *op)
 
static int node_add_object_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static bool node_add_object_poll (bContext *C)
 
void NODE_OT_add_object (wmOperatorType *ot)
 
Add Node Collection Operator
static int node_add_collection_exec (bContext *C, wmOperator *op)
 
static int node_add_collection_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static bool node_add_collection_poll (bContext *C)
 
void NODE_OT_add_collection (wmOperatorType *ot)
 
Add File Node Operator
static bool node_add_file_poll (bContext *C)
 
static int node_add_file_modal (bContext *C, wmOperator *op, const wmEvent *event)
 
static int node_add_file_exec (bContext *C, wmOperator *op)
 
static int node_add_file_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void NODE_OT_add_file (wmOperatorType *ot)
 
Add Mask Node Operator
static bool node_add_mask_poll (bContext *C)
 
static int node_add_mask_exec (bContext *C, wmOperator *op)
 
void NODE_OT_add_mask (wmOperatorType *ot)
 
Add Material Operator
static int node_add_material_exec (bContext *C, wmOperator *op)
 
static int node_add_material_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static bool node_add_material_poll (bContext *C)
 
void NODE_OT_add_material (wmOperatorType *ot)
 
New Node Tree Operator
static int new_node_tree_exec (bContext *C, wmOperator *op)
 
static const EnumPropertyItemnew_node_tree_type_itemf (bContext *, PointerRNA *, PropertyRNA *, bool *r_free)
 
void NODE_OT_new_node_tree (wmOperatorType *ot)
 
Composite Poll & Utility Functions
bool composite_node_active (bContext *C)
 
bool composite_node_editable (bContext *C)
 
static void send_notifiers_after_tree_change (ID *id, bNodeTree *ntree)
 
Node Generic
static bool socket_is_occluded (const float2 &location, const bNode &node_the_socket_belongs_to, const Span< bNode * > sorted_nodes)
 
Node Size Widget Operator
static void node_resize_init (bContext *C, wmOperator *op, const float2 &cursor, const bNode *node, NodeResizeDirection dir)
 
static void node_resize_exit (bContext *C, wmOperator *op, bool cancel)
 
static int node_resize_modal (bContext *C, wmOperator *op, const wmEvent *event)
 
static int node_resize_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static void node_resize_cancel (bContext *C, wmOperator *op)
 
void NODE_OT_resize (wmOperatorType *ot)
 
Node Hidden Sockets
bool node_has_hidden_sockets (bNode *node)
 
void node_set_hidden_sockets (bNode *node, int set)
 
bool node_is_previewable (const SpaceNode &snode, const bNodeTree &ntree, const bNode &node)
 
static bool cursor_isect_multi_input_socket (const float2 &cursor, const bNodeSocket &socket)
 
bNodeSocketnode_find_indicated_socket (SpaceNode &snode, ARegion &region, const float2 &cursor, const eNodeSocketInOut in_out)
 
Node Link Dimming
float node_link_dim_factor (const View2D &v2d, const bNodeLink &link)
 
bool node_link_is_hidden_or_dimmed (const View2D &v2d, const bNodeLink &link)
 
Node Duplicate Operator
static void node_duplicate_reparent_recursive (bNodeTree *ntree, const Map< bNode *, bNode * > &node_map, bNode *node)
 
void remap_node_pairing (bNodeTree &dst_tree, const Map< const bNode *, bNode * > &node_map)
 
static int node_duplicate_exec (bContext *C, wmOperator *op)
 
void NODE_OT_duplicate (wmOperatorType *ot)
 
static int node_read_viewlayers_exec (bContext *C, wmOperator *)
 
void NODE_OT_read_viewlayers (wmOperatorType *ot)
 
int node_render_changed_exec (bContext *C, wmOperator *)
 
void NODE_OT_render_changed (wmOperatorType *ot)
 
Node Hide Operator
static void node_flag_toggle_exec (SpaceNode *snode, int toggle_flag)
 
static int node_hide_toggle_exec (bContext *C, wmOperator *)
 
void NODE_OT_hide_toggle (wmOperatorType *ot)
 
static int node_preview_toggle_exec (bContext *C, wmOperator *)
 
static bool node_previewable (bContext *C)
 
void NODE_OT_preview_toggle (wmOperatorType *ot)
 
static int node_deactivate_viewer_exec (bContext *C, wmOperator *)
 
void NODE_OT_deactivate_viewer (wmOperatorType *ot)
 
static int node_options_toggle_exec (bContext *C, wmOperator *)
 
void NODE_OT_options_toggle (wmOperatorType *ot)
 
static int node_socket_toggle_exec (bContext *C, wmOperator *)
 
void NODE_OT_hide_socket_toggle (wmOperatorType *ot)
 
Node Mute Operator
static int node_mute_exec (bContext *C, wmOperator *)
 
void NODE_OT_mute_toggle (wmOperatorType *ot)
 
Node Delete Operator
static int node_delete_exec (bContext *C, wmOperator *)
 
void NODE_OT_delete (wmOperatorType *ot)
 
Node Delete with Reconnect Operator
static int node_delete_reconnect_exec (bContext *C, wmOperator *)
 
void NODE_OT_delete_reconnect (wmOperatorType *ot)
 
Node File Output Add Socket Operator
static int node_output_file_add_socket_exec (bContext *C, wmOperator *op)
 
void NODE_OT_output_file_add_socket (wmOperatorType *ot)
 
Node Multi File Output Remove Socket Operator
static int node_output_file_remove_active_socket_exec (bContext *C, wmOperator *)
 
void NODE_OT_output_file_remove_active_socket (wmOperatorType *ot)
 
Node Multi File Output Move Socket Node
static int node_output_file_move_active_socket_exec (bContext *C, wmOperator *op)
 
void NODE_OT_output_file_move_active_socket (wmOperatorType *ot)
 
Node Copy Node Color Operator
static int node_copy_color_exec (bContext *C, wmOperator *)
 
void NODE_OT_node_copy_color (wmOperatorType *ot)
 
Node Shader Script Update
static bool node_shader_script_update_poll (bContext *C)
 
static bool node_shader_script_update_text_recursive (RenderEngine *engine, RenderEngineType *type, bNodeTree *ntree, Text *text, VectorSet< bNodeTree * > &done_trees)
 
static int node_shader_script_update_exec (bContext *C, wmOperator *op)
 
void NODE_OT_shader_script_update (wmOperatorType *ot)
 
Node Viewer Border
static void viewer_border_corner_to_backdrop (SpaceNode *snode, ARegion *region, int x, int y, int backdrop_width, int backdrop_height, float *fx, float *fy)
 
static int viewer_border_exec (bContext *C, wmOperator *op)
 
void NODE_OT_viewer_border (wmOperatorType *ot)
 
static int clear_viewer_border_exec (bContext *C, wmOperator *)
 
void NODE_OT_clear_viewer_border (wmOperatorType *ot)
 
Cryptomatte Add Socket
static int node_cryptomatte_add_socket_exec (bContext *C, wmOperator *)
 
void NODE_OT_cryptomatte_layer_add (wmOperatorType *ot)
 
Cryptomatte Remove Socket
static int node_cryptomatte_remove_socket_exec (bContext *C, wmOperator *)
 
void NODE_OT_cryptomatte_layer_remove (wmOperatorType *ot)
 
Local Utilities
static void node_gizmo_calc_matrix_space (const SpaceNode *snode, const ARegion *region, float matrix_space[4][4])
 
static void node_gizmo_calc_matrix_space_with_image_dims (const SpaceNode *snode, const ARegion *region, const float2 &image_dims, const float2 &image_offset, float matrix_space[4][4])
 
static bool node_group_operator_active_poll (bContext *C)
 
static bool node_group_operator_editable (bContext *C)
 
static const char * group_ntree_idname (bContext *C)
 
const char * node_group_idname (bContext *C)
 
static bNodenode_group_get_active (bContext *C, const char *node_idname)
 
static void remap_pairing (bNodeTree &dst_tree, Span< bNode * > nodes, const Map< int32_t, int32_t > &identifier_map)
 
Backdrop Gizmo
static void gizmo_node_backdrop_prop_matrix_get (const wmGizmo *, wmGizmoProperty *gz_prop, void *value_p)
 
static void gizmo_node_backdrop_prop_matrix_set (const wmGizmo *, wmGizmoProperty *gz_prop, const void *value_p)
 
static bool WIDGETGROUP_node_transform_poll (const bContext *C, wmGizmoGroupType *)
 
static void WIDGETGROUP_node_transform_setup (const bContext *, wmGizmoGroup *gzgroup)
 
static void WIDGETGROUP_node_transform_refresh (const bContext *C, wmGizmoGroup *gzgroup)
 
void NODE_GGT_backdrop_transform (wmGizmoGroupType *gzgt)
 
Crop Gizmo
static void gizmo_node_crop_update (NodeCropWidgetGroup *crop_group)
 
static void two_xy_to_rect (const NodeTwoXYs *nxy, const float2 &dims, const float2 offset, bool is_relative, rctf *r_rect)
 
static void two_xy_from_rect (NodeTwoXYs *nxy, const rctf *rect, const float2 &dims, const float2 &offset, bool is_relative)
 
static void gizmo_node_crop_prop_matrix_get (const wmGizmo *gz, wmGizmoProperty *gz_prop, void *value_p)
 
static void gizmo_node_crop_prop_matrix_set (const wmGizmo *gz, wmGizmoProperty *gz_prop, const void *value_p)
 
static bool WIDGETGROUP_node_crop_poll (const bContext *C, wmGizmoGroupType *)
 
static void WIDGETGROUP_node_crop_setup (const bContext *, wmGizmoGroup *gzgroup)
 
static void WIDGETGROUP_node_crop_draw_prepare (const bContext *C, wmGizmoGroup *gzgroup)
 
static void WIDGETGROUP_node_crop_refresh (const bContext *C, wmGizmoGroup *gzgroup)
 
void NODE_GGT_backdrop_crop (wmGizmoGroupType *gzgt)
 
Sun Beams
static bool WIDGETGROUP_node_sbeam_poll (const bContext *C, wmGizmoGroupType *)
 
static void WIDGETGROUP_node_sbeam_setup (const bContext *, wmGizmoGroup *gzgroup)
 
static void WIDGETGROUP_node_sbeam_draw_prepare (const bContext *C, wmGizmoGroup *gzgroup)
 
static void WIDGETGROUP_node_sbeam_refresh (const bContext *C, wmGizmoGroup *gzgroup)
 
void NODE_GGT_backdrop_sun_beams (wmGizmoGroupType *gzgt)
 
Corner Pin
static bool WIDGETGROUP_node_corner_pin_poll (const bContext *C, wmGizmoGroupType *)
 
static void WIDGETGROUP_node_corner_pin_setup (const bContext *, wmGizmoGroup *gzgroup)
 
static void WIDGETGROUP_node_corner_pin_draw_prepare (const bContext *C, wmGizmoGroup *gzgroup)
 
static void WIDGETGROUP_node_corner_pin_refresh (const bContext *C, wmGizmoGroup *gzgroup)
 
void NODE_GGT_backdrop_corner_pin (wmGizmoGroupType *gzgt)
 
Edit Group Operator
static int node_group_edit_exec (bContext *C, wmOperator *op)
 
void NODE_OT_group_edit (wmOperatorType *ot)
 
Ungroup Operator
static AnimationBasePathChangeanimation_basepath_change_new (const StringRef src_basepath, const StringRef dst_basepath)
 
static void animation_basepath_change_free (AnimationBasePathChange *basepath_change)
 
static void update_nested_node_refs_after_ungroup (bNodeTree &ntree, const bNodeTree &ngroup, const bNode &gnode, const Map< int32_t, int32_t > &node_identifier_map)
 
static void node_group_ungroup (Main *bmain, bNodeTree *ntree, bNode *gnode)
 
static int node_group_ungroup_exec (bContext *C, wmOperator *)
 
void NODE_OT_group_ungroup (wmOperatorType *ot)
 
Make Group Operator
static VectorSet< bNode * > get_nodes_to_group (bNodeTree &node_tree, bNode *group_node)
 
static bool node_group_make_test_selected (bNodeTree &ntree, const VectorSet< bNode * > &nodes_to_group, const char *ntree_idname, ReportList &reports)
 
static void get_min_max_of_nodes (const Span< bNode * > nodes, const bool use_size, float2 &min, float2 &max)
 
static const bNodeSocketfind_socket_to_use_for_interface (const bNodeTree &node_tree, const bNodeSocket &socket)
 
static bool prefer_node_for_interface_name (const bNode &node)
 
static bNodeTreeInterfaceSocketadd_interface_from_socket (const bNodeTree &original_tree, bNodeTree &tree_for_interface, const bNodeSocket &socket)
 
static void update_nested_node_refs_after_moving_nodes_into_group (bNodeTree &ntree, bNodeTree &group, bNode &gnode, const Map< int32_t, int32_t > &node_identifier_map)
 
static void node_group_make_insert_selected (const bContext &C, bNodeTree &ntree, bNode *gnode, const VectorSet< bNode * > &nodes_to_move)
 
static bNodenode_group_make_from_nodes (const bContext &C, bNodeTree &ntree, const VectorSet< bNode * > &nodes_to_group, const char *ntype, const char *ntreetype)
 
static int node_group_make_exec (bContext *C, wmOperator *op)
 
void NODE_OT_group_make (wmOperatorType *ot)
 
Group Insert Operator
static int node_group_insert_exec (bContext *C, wmOperator *op)
 
void NODE_OT_group_insert (wmOperatorType *ot)
 
Set Default Group Width Operator
static bool node_default_group_width_set_poll (bContext *C)
 
static int node_default_group_width_set_exec (bContext *C, wmOperator *)
 
void NODE_OT_default_group_width_set (wmOperatorType *ot)
 
Select (Cursor Pick) Operator
void node_select_single (bContext &C, bNode &node)
 
void NODE_OT_select (wmOperatorType *ot)
 
static bool node_mouse_select (bContext *C, wmOperator *op, const int2 mval, SelectPick_Params *params)
 
static int node_select_exec (bContext *C, wmOperator *op)
 
static int node_select_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
(De)select All Operator
void NODE_OT_select_all (wmOperatorType *ot)
 
static bool any_node_selected (const bNodeTree &node_tree)
 
static int node_select_all_exec (bContext *C, wmOperator *op)
 
Select Linked To Operator
void NODE_OT_select_linked_to (wmOperatorType *ot)
 
static int node_select_linked_to_exec (bContext *C, wmOperator *)
 
Select Linked From Operator
void NODE_OT_select_linked_from (wmOperatorType *ot)
 
static int node_select_linked_from_exec (bContext *C, wmOperator *)
 
Box Select Operator
void NODE_OT_select_box (wmOperatorType *ot)
 
static int node_box_select_exec (bContext *C, wmOperator *op)
 
static int node_box_select_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
Circle Select Operator
void NODE_OT_select_circle (wmOperatorType *ot)
 
static int node_circleselect_exec (bContext *C, wmOperator *op)
 
Lasso Select Operator
void NODE_OT_select_lasso (wmOperatorType *ot)
 
static int node_lasso_select_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static bool do_lasso_select_node (bContext *C, const Span< int2 > mcoords, eSelectOp sel_op)
 
static int node_lasso_select_exec (bContext *C, wmOperator *op)
 
Select Same Type Step Operator
void NODE_OT_select_same_type_step (wmOperatorType *ot)
 
static bool nodes_are_same_type_for_select (const bNode &a, const bNode &b)
 
static int node_select_same_type_step_exec (bContext *C, wmOperator *op)
 
Find Node by Name Operator
void NODE_OT_find_node (wmOperatorType *ot)
 
static void node_find_create_label (const bNode *node, char *str, int str_maxncpy)
 
static void node_find_update_fn (const bContext *C, void *, const char *str, uiSearchItems *items, const bool)
 
static void node_find_exec_fn (bContext *C, void *, void *arg2)
 
static uiBlocknode_find_menu (bContext *C, ARegion *region, void *arg_optype)
 
static int node_find_node_invoke (bContext *C, wmOperator *op, const wmEvent *)
 
View All Operator
bool space_node_view_flag (bContext &C, SpaceNode &snode, ARegion &region, int node_flag, int smooth_viewtx)
 
void NODE_OT_view_all (wmOperatorType *ot)
 
static int node_view_all_exec (bContext *C, wmOperator *op)
 
View Selected Operator
void NODE_OT_view_selected (wmOperatorType *ot)
 
static int node_view_selected_exec (bContext *C, wmOperator *op)
 
Background Image Operators
void NODE_OT_backimage_move (wmOperatorType *ot)
 
static int snode_bg_viewmove_modal (bContext *C, wmOperator *op, const wmEvent *event)
 
static int snode_bg_viewmove_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static void snode_bg_viewmove_cancel (bContext *, wmOperator *op)
 
Background Image Zoom
void NODE_OT_backimage_zoom (wmOperatorType *ot)
 
static int backimage_zoom_exec (bContext *C, wmOperator *op)
 
Background Image Fit
void NODE_OT_backimage_fit (wmOperatorType *ot)
 
static int backimage_fit_exec (bContext *C, wmOperator *)
 
Add Node
void update_multi_input_indices_for_removed_links (bNode &node)
 
static bNodeLink create_drag_link (bNode &node, bNodeSocket &socket)
 
static void pick_link (bNodeLinkDrag &nldrag, SpaceNode &snode, bNode *node, bNodeLink &link_to_pick)
 
static void pick_input_link_by_link_intersect (const bContext &C, wmOperator &op, bNodeLinkDrag &nldrag, const float2 &cursor)
 
static bool socket_is_available (bNodeTree *, bNodeSocket *sock, const bool allow_used)
 
static bNodeSocketbest_socket_output (bNodeTree *ntree, bNode *node, bNodeSocket *sock_target, const bool allow_multiple)
 
static bNodeSocketbest_socket_input (bNodeTree *ntree, bNode *node, int num, int replace)
 
static bool snode_autoconnect_input (SpaceNode &snode, bNode *node_fr, bNodeSocket *sock_fr, bNode *node_to, bNodeSocket *sock_to, int replace)
 
static void sort_multi_input_socket_links_with_drag (bNodeSocket &socket, bNodeLink &drag_link, const float2 &cursor)
 
static void snode_autoconnect (SpaceNode &snode, const bool allow_multiple, const bool replace)
 
Mute Links Operator
bool all_links_muted (const bNodeSocket &socket)
 
void NODE_OT_links_mute (wmOperatorType *ot)
 
static int mute_links_exec (bContext *C, wmOperator *op)
 
Node Insert Offset Operator
bNodeSocketget_main_socket (bNodeTree &ntree, bNode &node, eNodeSocketInOut in_out)
 
void NODE_OT_insert_offset (wmOperatorType *ot)
 
static int get_main_socket_priority (const bNodeSocket *socket)
 
static bool node_parents_offset_flag_enable_cb (bNode *parent, void *)
 
static void node_offset_apply (bNode &node, const float offset_x)
 
static void node_parent_offset_apply (NodeInsertOfsData *data, bNode *parent, const float offset_x)
 
static bool node_link_insert_offset_frame_chain_cb (bNode *fromnode, bNode *tonode, void *userdata, const bool reversed)
 
static void node_link_insert_offset_frame_chains (bNodeTree *ntree, const bNode *parent, NodeInsertOfsData *data, const bool reversed)
 
static bool node_link_insert_offset_chain_cb (bNode *fromnode, bNode *tonode, void *userdata, const bool reversed)
 
static void node_link_insert_offset_ntree (NodeInsertOfsData *iofsd, ARegion *region, const int mouse_xy[2], const bool right_alignment)
 
static int node_insert_offset_modal (bContext *C, wmOperator *op, const wmEvent *event)
 
static int node_insert_offset_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
Make Link Operator
void NODE_OT_link_make (wmOperatorType *ot)
 
static int node_make_link_exec (bContext *C, wmOperator *op)
 
Cut Link Operator
void NODE_OT_links_cut (wmOperatorType *ot)
 
static int cut_links_exec (bContext *C, wmOperator *op)
 
Detach Links Operator
void NODE_OT_links_detach (wmOperatorType *ot)
 
static int detach_links_exec (bContext *C, wmOperator *)
 
Set Parent Operator
void NODE_OT_parent_set (wmOperatorType *ot)
 
static int node_parent_set_exec (bContext *C, wmOperator *)
 
Join Nodes Operator
void NODE_OT_join (wmOperatorType *ot)
 
static void node_join_attach_recursive (bNodeTree &ntree, MutableSpan< NodeJoinState > join_states, bNode *node, bNode *frame, const VectorSet< bNode * > &selected_nodes)
 
static Vector< const bNode * > get_sorted_node_parents (const bNode &node)
 
static const bNodefind_common_parent_node (const Span< const bNode * > nodes)
 
static int node_join_exec (bContext *C, wmOperator *)
 
Attach Operator
void NODE_OT_attach (wmOperatorType *ot)
 
static bNodenode_find_frame_to_attach (ARegion &region, bNodeTree &ntree, const int2 mouse_xy)
 
static int node_attach_invoke (bContext *C, wmOperator *, const wmEvent *event)
 
Detach Operator
void NODE_OT_detach (wmOperatorType *ot)
 
static void node_detach_recursive (bNodeTree &ntree, MutableSpan< NodeDetachstate > detach_states, bNode *node)
 
static int node_detach_exec (bContext *C, wmOperator *)
 
Link to Viewer Node Operator
void NODE_OT_link_viewer (wmOperatorType *ot)
 
static int node_active_link_viewer_exec (bContext *C, wmOperator *)
 
static bool node_active_link_viewer_poll (bContext *C)
 
Preview scene
static Materialduplicate_material (const Material &mat)
 
static Scenepreview_prepare_scene (const Main *bmain, const Scene *scene_orig, Main *pr_main, Material *mat_copy, ePreviewType preview_type)
 
Local Functions
static bool space_node_active_view_poll (bContext *C)
 
static bool space_node_composite_active_view_poll (bContext *C)
 
Sample Backdrop Operator
static void sample_draw (const bContext *C, ARegion *region, void *arg_info)
 

Variables

static const float virtual_node_socket_color [4] = {0.2, 0.2, 0.2, 1.0}
 
static const float std_node_socket_colors [][4]
 
static const SocketColorFn std_node_socket_color_funcs []
 
static float arrow_verts [3][2] = {{-1.0f, 1.0f}, {0.0f, 0.0f}, {-1.0f, -1.0f}}
 
static float arrow_expand_axis [3][2] = {{0.7071f, 0.7071f}, {M_SQRT2, 0.0f}, {0.7071f, -0.7071f}}
 
static float mute_verts [3][2] = {{0.7071f, 1.0f}, {0.7071f, 0.0f}, {0.7071f, -1.0f}}
 
static float mute_expand_axis [3][2] = {{1.0f, 0.0f}, {1.0f, 0.0f}, {1.0f, -0.0f}}
 
struct { 
 
   gpu::Batch *   blender::ed::space_node::batch 
 
   gpu::Batch *   blender::ed::space_node::batch_single 
 
   gpu::VertBuf *   blender::ed::space_node::inst_vbo 
 
   uint   blender::ed::space_node::p0_id 
 
   uint   blender::ed::space_node::p1_id 
 
   uint   blender::ed::space_node::p2_id 
 
   uint   blender::ed::space_node::p3_id 
 
   uint   blender::ed::space_node::colid_id 
 
   uint   blender::ed::space_node::muted_id 
 
   uint   blender::ed::space_node::start_color_id 
 
   uint   blender::ed::space_node::end_color_id 
 
   uint   blender::ed::space_node::dim_factor_id 
 
   uint   blender::ed::space_node::thickness_id 
 
   uint   blender::ed::space_node::dash_params_id 
 
   uint   blender::ed::space_node::has_back_link_id 
 
   GPUVertBufRaw   blender::ed::space_node::p0_step 
 
   GPUVertBufRaw   blender::ed::space_node::p1_step 
 
   GPUVertBufRaw   blender::ed::space_node::p2_step 
 
   GPUVertBufRaw   blender::ed::space_node::p3_step 
 
   GPUVertBufRaw   blender::ed::space_node::colid_step 
 
   GPUVertBufRaw   blender::ed::space_node::muted_step 
 
   GPUVertBufRaw   blender::ed::space_node::start_color_step 
 
   GPUVertBufRaw   blender::ed::space_node::end_color_step 
 
   GPUVertBufRaw   blender::ed::space_node::dim_factor_step 
 
   GPUVertBufRaw   blender::ed::space_node::thickness_step 
 
   GPUVertBufRaw   blender::ed::space_node::dash_params_step 
 
   GPUVertBufRaw   blender::ed::space_node::has_back_link_step 
 
   uint   blender::ed::space_node::count 
 
   bool   blender::ed::space_node::enabled 
 
g_batch_link 
 
static const float virtual_node_socket_outline_color [4] = {0.5, 0.5, 0.5, 1.0}
 

Composite Job Manager

enum  { COM_RECALC_COMPOSITE = 1 , COM_RECALC_VIEWER = 2 }
 
float node_socket_calculate_height (const bNodeSocket &socket)
 
float2 node_link_calculate_multi_input_position (const float2 &socket_position, const int index, const int total_inputs)
 
static void compo_tag_output_nodes (bNodeTree *nodetree, int recalc_flags)
 
static int compo_get_recalc_flags (const bContext *C)
 
static bool compo_breakjob (void *cjv)
 
static void compo_statsdrawjob (void *cjv, const char *)
 
static void compo_redrawjob (void *cjv)
 
static void compo_freejob (void *cjv)
 
static void compo_initjob (void *cjv)
 
static void compo_updatejob (void *)
 
static void compo_progressjob (void *cjv, float progress)
 
static void compo_startjob (void *cjv, wmJobWorkerStatus *worker_status)
 
static void compo_canceljob (void *cjv)
 
static void compo_completejob (void *cjv)
 

Separate Operator

enum  eNodeGroupSeparateType { NODE_GS_COPY , NODE_GS_MOVE }
 
static const EnumPropertyItem node_group_separate_types []
 
static bool node_group_separate_selected (Main &bmain, bNodeTree &ntree, bNodeTree &ngroup, const float2 &offset, const bool make_copy)
 
static int node_group_separate_exec (bContext *C, wmOperator *op)
 
static int node_group_separate_invoke (bContext *C, wmOperator *, const wmEvent *)
 
void NODE_OT_group_separate (wmOperatorType *ot)
 

Add Link Operator

enum class  NodeLinkAction : int { Begin = 0 , Cancel = 1 , Swap = 2 , Confirm = 3 }
 
void NODE_OT_link (wmOperatorType *ot)
 
wmKeyMapnode_link_modal_keymap (wmKeyConfig *keyconf)
 
static bool dragged_links_are_detached (const bNodeLinkDrag &nldrag)
 
static bool should_create_drag_link_search_menu (const bNodeTree &node_tree, const bNodeLinkDrag &nldrag)
 
static bool need_drag_link_tooltip (const bNodeTree &node_tree, const bNodeLinkDrag &nldrag)
 
static void draw_draglink_tooltip (const bContext *, ARegion *, void *arg)
 
static void draw_draglink_tooltip_activate (const ARegion &region, bNodeLinkDrag &nldrag)
 
static void draw_draglink_tooltip_deactivate (const ARegion &region, bNodeLinkDrag &nldrag)
 
static int node_socket_count_links (const bNodeTree &ntree, const bNodeSocket &socket)
 
static bNodeSocketnode_find_linkable_socket (const bNodeTree &ntree, const bNode *node, bNodeSocket *socket_to_match)
 
static void displace_links (bNodeTree *ntree, const bNode *node, bNodeLink *inserted_link)
 
static void node_displace_existing_links (bNodeLinkDrag &nldrag, bNodeTree &ntree)
 
static void node_swap_links (bNodeLinkDrag &nldrag, bNodeTree &ntree)
 
static void node_remove_existing_links_if_needed (bNodeLinkDrag &nldrag, bNodeTree &ntree)
 
static void add_dragged_links_to_tree (bContext &C, bNodeLinkDrag &nldrag)
 
static void node_link_cancel (bContext *C, wmOperator *op)
 
static void node_link_find_socket (bContext &C, wmOperator &op, const float2 &cursor)
 
static int node_link_modal (bContext *C, wmOperator *op, const wmEvent *event)
 
static std::unique_ptr< bNodeLinkDragnode_link_init (ARegion &region, SpaceNode &snode, const float2 cursor, const bool detach)
 
static int node_link_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 

Select Grouped Operator

enum  { NODE_SELECT_GROUPED_TYPE = 0 , NODE_SELECT_GROUPED_COLOR = 1 , NODE_SELECT_GROUPED_PREFIX = 2 , NODE_SELECT_GROUPED_SUFIX = 3 }
 
void NODE_OT_select_grouped (wmOperatorType *ot)
 
static bool node_select_grouped_type (bNodeTree &node_tree, bNode &node_act)
 
static bool node_select_grouped_color (bNodeTree &node_tree, bNode &node_act)
 
static bool node_select_grouped_name (bNodeTree &node_tree, bNode &node_act, const bool from_right)
 
static int node_select_grouped_exec (bContext *C, wmOperator *op)
 

Typedef Documentation

◆ ItemIterator

Definition at line 695 of file node_draw.cc.

◆ NodeSocketPair

Definition at line 61 of file node_shader_preview.cc.

◆ SocketColorFn

using blender::ed::space_node::SocketColorFn = void (*)(bContext *C, PointerRNA *ptr, PointerRNA *node_ptr, float *r_color)

Definition at line 1146 of file drawnode.cc.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
COM_RECALC_COMPOSITE 
COM_RECALC_VIEWER 

Definition at line 82 of file node_edit.cc.

◆ anonymous enum

anonymous enum
Enumerator
NODE_SELECT_GROUPED_TYPE 
NODE_SELECT_GROUPED_COLOR 
NODE_SELECT_GROUPED_PREFIX 
NODE_SELECT_GROUPED_SUFIX 

Definition at line 422 of file node_select.cc.

◆ eNodeGroupSeparateType

Enumerator
NODE_GS_COPY 
NODE_GS_MOVE 

Definition at line 621 of file node_group.cc.

◆ NodeLinkAction

Enumerator
Begin 
Cancel 
Swap 
Confirm 

Definition at line 1341 of file node_relationships.cc.

◆ NodeResizeDirection

Enumerator
NODE_RESIZE_NONE 
NODE_RESIZE_TOP 
NODE_RESIZE_BOTTOM 
NODE_RESIZE_RIGHT 
NODE_RESIZE_LEFT 

Definition at line 122 of file node_intern.hh.

Function Documentation

◆ add_catalog_assets_menu_type()

MenuType blender::ed::space_node::add_catalog_assets_menu_type ( )

◆ add_dragged_links_to_tree()

◆ add_existing_group_input_fn()

◆ add_group_input_node_fn()

◆ add_interface_from_socket()

static bNodeTreeInterfaceSocket * blender::ed::space_node::add_interface_from_socket ( const bNodeTree & original_tree,
bNodeTree & tree_for_interface,
const bNodeSocket & socket )
static

◆ add_node()

◆ add_node_group_asset()

◆ add_panel_items_recursive()

static void blender::ed::space_node::add_panel_items_recursive ( const bContext & C,
bNodeTree & ntree,
bNode & node,
uiBlock & block,
const int locx,
int & locy,
int num_items,
const bool is_parent_collapsed,
const char * parent_label,
bke::bNodePanelRuntime * parent_runtime,
LocationUpdateState & state )
static

◆ add_rect_corner_positions()

static void blender::ed::space_node::add_rect_corner_positions ( Vector< float2 > & positions,
const rctf & rect )
static

◆ add_reroute_exec()

static int blender::ed::space_node::add_reroute_exec ( bContext * C,
wmOperator * op )
static

Definition at line 143 of file node_add.cc.

References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::BaseIteratorRange< SubIterator >::begin(), BKE_ntree_update_tag_link_changed(), BLI_rctf_isect_pt_v(), CTX_data_main(), CTX_wm_manager(), CTX_wm_region(), CTX_wm_space_node(), ED_node_tree_propagate_change(), ED_preview_kill_jobs(), SpaceNode::edittree, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::BaseIteratorRange< SubIterator >::end(), ListBase::first, blender::ed::space_node::RerouteCutsForSocket::from_node, blender::Vector< T, InlineBufferCapacity, Allocator >::index_range(), bNode::inputs, blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::items(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::keys(), blender::Vector< T, InlineBufferCapacity, Allocator >::last(), link_path_intersection(), blender::ed::space_node::RerouteCutsForSocket::links, bNodeTree::links, LISTBASE_FOREACH, bNode::locx, bNode::locy, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_or_add_default(), blender::bke::node_add_link(), blender::bke::node_add_static_node(), blender::bke::node_attach_node(), node_deselect_all(), node_link_is_hidden_or_dimmed(), NODE_REROUTE, OPERATOR_CANCELLED, OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, bNode::outputs, wmOperator::ptr, RNA_BEGIN, RNA_END, RNA_float_get_array(), bNode::runtime, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::size(), blender::Vector< T, InlineBufferCapacity, Allocator >::size(), UI_SCALE_FAC, UI_view2d_region_to_view(), and blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::values().

Referenced by NODE_OT_add_reroute().

◆ add_reroute_node_fn()

static void blender::ed::space_node::add_reroute_node_fn ( nodes::LinkSearchOpParams & params)
static

◆ add_root_catalogs_draw()

◆ add_root_catalogs_menu_type()

MenuType blender::ed::space_node::add_root_catalogs_menu_type ( )

◆ add_static_node()

◆ add_unassigned_assets_menu_type()

MenuType blender::ed::space_node::add_unassigned_assets_menu_type ( )

◆ all_links_muted()

bool blender::ed::space_node::all_links_muted ( const bNodeSocket & socket)

Definition at line 1739 of file node_relationships.cc.

References NODE_LINK_MUTED.

Referenced by mute_links_exec(), and std_node_socket_draw().

◆ all_loading_finished()

static bool blender::ed::space_node::all_loading_finished ( )
static

◆ all_nodes_preview_update()

◆ animation_basepath_change_free()

static void blender::ed::space_node::animation_basepath_change_free ( AnimationBasePathChange * basepath_change)
static

◆ animation_basepath_change_new()

static AnimationBasePathChange * blender::ed::space_node::animation_basepath_change_new ( const StringRef src_basepath,
const StringRef dst_basepath )
static

The given paths will be owned by the returned instance. Both pointers are allowed to point to the same string.

Definition at line 226 of file node_group.cc.

References AT, BLI_strdupn(), blender::StringRefBase::data(), AnimationBasePathChange::dst_basepath, MEM_callocN, blender::StringRefBase::size(), and AnimationBasePathChange::src_basepath.

Referenced by node_group_make_insert_selected(), node_group_separate_selected(), and node_group_ungroup().

◆ any_node_selected()

static bool blender::ed::space_node::any_node_selected ( const bNodeTree & node_tree)
static

Definition at line 1085 of file node_select.cc.

References NODE_SELECT, and node_tree.

Referenced by node_select_all_exec().

◆ any_node_uses_id()

static bool blender::ed::space_node::any_node_uses_id ( const bNodeTree * ntree,
const ID * id )
static

Definition at line 489 of file space_node.cc.

References ELEM.

Referenced by node_area_listener().

◆ attribute_search_exec_fn()

◆ attribute_search_update_fn()

static void blender::ed::space_node::attribute_search_update_fn ( const bContext * C,
void * arg,
const char * str,
uiSearchItems * items,
const bool is_first )
static

◆ backimage_fit_exec()

◆ backimage_zoom_exec()

static int blender::ed::space_node::backimage_zoom_exec ( bContext * C,
wmOperator * op )
static

◆ best_socket_input()

static bNodeSocket * blender::ed::space_node::best_socket_input ( bNodeTree * ntree,
bNode * node,
int num,
int replace )
static

Definition at line 230 of file node_relationships.cc.

References LISTBASE_FOREACH, max_ii(), and socket_is_available().

Referenced by snode_autoconnect().

◆ best_socket_output()

static bNodeSocket * blender::ed::space_node::best_socket_output ( bNodeTree * ntree,
bNode * node,
bNodeSocket * sock_target,
const bool allow_multiple )
static

◆ BLI_STATIC_ASSERT()

blender::ed::space_node::BLI_STATIC_ASSERT ( std::is_trivially_destructible_v< AttributeSearchData > ,
""  )

◆ build_catalog_tree()

◆ calculate_inner_link_bezier_points()

static void blender::ed::space_node::calculate_inner_link_bezier_points ( std::array< float2, 4 > & points)
static

◆ clear_picking_highlight()

static void blender::ed::space_node::clear_picking_highlight ( ListBase * links)
static

◆ clear_viewer_border_exec()

static int blender::ed::space_node::clear_viewer_border_exec ( bContext * C,
wmOperator *  )
static

◆ compare_node_depth()

static bool blender::ed::space_node::compare_node_depth ( const bNode * a,
const bNode * b )
static

Return true when a should be behind b and false otherwise.

Definition at line 240 of file node_draw.cc.

References b, NODE_ACTIVE, NODE_BACKGROUND, NODE_SELECT, and bNode::parent.

Referenced by tree_draw_order_update().

◆ compo_breakjob()

static bool blender::ed::space_node::compo_breakjob ( void * cjv)
static

Definition at line 181 of file node_edit.cc.

References G, and blender::ed::space_node::CompoJob::stop.

Referenced by compo_startjob().

◆ compo_canceljob()

◆ compo_completejob()

◆ compo_freejob()

◆ compo_get_recalc_flags()

◆ compo_initjob()

◆ compo_progressjob()

static void blender::ed::space_node::compo_progressjob ( void * cjv,
float progress )
static

Definition at line 271 of file node_edit.cc.

References blender::ed::space_node::CompoJob::progress.

Referenced by compo_startjob().

◆ compo_redrawjob()

static void blender::ed::space_node::compo_redrawjob ( void * cjv)
static

Definition at line 202 of file node_edit.cc.

References blender::ed::space_node::CompoJob::do_update.

Referenced by compo_startjob().

◆ compo_startjob()

◆ compo_statsdrawjob()

static void blender::ed::space_node::compo_statsdrawjob ( void * cjv,
const char *  )
static

Definition at line 194 of file node_edit.cc.

References blender::ed::space_node::CompoJob::do_update.

Referenced by compo_startjob().

◆ compo_tag_output_nodes()

static void blender::ed::space_node::compo_tag_output_nodes ( bNodeTree * nodetree,
int recalc_flags )
static

◆ compo_updatejob()

static void blender::ed::space_node::compo_updatejob ( void * )
static

Definition at line 266 of file node_edit.cc.

References NC_SCENE, ND_COMPO_RESULT, and WM_main_add_notifier().

◆ composite_node_active()

◆ composite_node_editable()

◆ compositor_accumulate_frame_node_execution_time()

static std::optional< std::chrono::nanoseconds > blender::ed::space_node::compositor_accumulate_frame_node_execution_time ( const TreeDrawContext & tree_draw_ctx,
const SpaceNode & snode,
const bNode & node )
static

◆ compositor_node_get_execution_time()

static std::optional< std::chrono::nanoseconds > blender::ed::space_node::compositor_node_get_execution_time ( const TreeDrawContext & tree_draw_ctx,
const SpaceNode & snode,
const bNode & node )
static

◆ connect_nested_node_to_node()

static void blender::ed::space_node::connect_nested_node_to_node ( const Span< bNodeTreePath * > treepath,
bNode & nested_node,
bNodeSocket & nested_socket,
bNode & final_node,
bNodeSocket & final_socket,
const char * route_name )
static

Get a link to the node outside the nested node-groups by creating a new output socket for each nested node-group. To do so we cover all nested node-trees starting from the farthest, and update the nested_node_iter pointer to the current node-group instance used for linking. We stop before getting to the main node-tree because the output type is different.

Definition at line 354 of file node_shader_preview.cc.

References BKE_ntree_update_main_tree(), BKE_ntree_update_tag_node_property(), blender::Span< T >::first(), bNode::flag, G, bNodeSocket::idname, blender::bke::node_add_link(), blender::bke::node_add_static_node(), NODE_DO_OUTPUT, blender::bke::node_find_enabled_input_socket(), blender::bke::node_find_enabled_output_socket(), blender::bke::node_find_node_by_name(), NODE_GROUP_OUTPUT, NODE_INTERFACE_SOCKET_OUTPUT, bNodeTreePath::node_name, bNodeTreePath::nodetree, blender::Span< T >::size(), and bNodeTree::tree_interface.

Referenced by connect_node_to_surface_output(), and connect_nodes_to_aovs().

◆ connect_node_to_surface_output()

◆ connect_nodes_to_aovs()

◆ context_path_add_node_tree_and_node_groups()

static void blender::ed::space_node::context_path_add_node_tree_and_node_groups ( const SpaceNode & snode,
Vector< ui::ContextPathItem > & path,
const bool skip_base = false )
static

◆ context_path_add_object_data()

static void blender::ed::space_node::context_path_add_object_data ( Vector< ui::ContextPathItem > & path,
Object & object )
static

◆ context_path_for_space_node()

◆ count_multi_input_socket_links()

static void blender::ed::space_node::count_multi_input_socket_links ( bNodeTree & ntree,
SpaceNode & snode )
static

◆ create_dangling_reroute_inspection_string()

static std::optional< std::string > blender::ed::space_node::create_dangling_reroute_inspection_string ( const bNodeTree & ntree,
const bNodeSocket & socket )
static

◆ create_declaration_inspection_string()

static std::optional< std::string > blender::ed::space_node::create_declaration_inspection_string ( const bNodeSocket & socket)
static

◆ create_default_value_inspection_string()

static std::optional< std::string > blender::ed::space_node::create_default_value_inspection_string ( const bNodeSocket & socket)
static

Definition at line 1863 of file node_draw.cc.

References create_inspection_string_for_default_socket_value(), and str.

Referenced by node_socket_get_tooltip().

◆ create_description_inspection_string()

static std::optional< std::string > blender::ed::space_node::create_description_inspection_string ( const bNodeSocket & socket)
static

◆ create_drag_link()

static bNodeLink blender::ed::space_node::create_drag_link ( bNode & node,
bNodeSocket & socket )
static

◆ create_inspection_string_for_default_socket_value()

static void blender::ed::space_node::create_inspection_string_for_default_socket_value ( const bNodeSocket & socket,
fmt::memory_buffer & buf )
static

◆ create_inspection_string_for_field_info()

static void blender::ed::space_node::create_inspection_string_for_field_info ( const bNodeSocket & socket,
const geo_log::FieldInfoLog & value_log,
fmt::memory_buffer & buf )
static

◆ create_inspection_string_for_generic_value()

◆ create_inspection_string_for_geometry_info()

◆ create_inspection_string_for_geometry_socket()

◆ create_log_inspection_string()

◆ create_multi_input_log_inspection_string()

◆ create_search_popup_block()

◆ current_node_instance_key()

static bNodeInstanceKey blender::ed::space_node::current_node_instance_key ( const SpaceNode & snode,
const bNode & node )
static

◆ cursor_isect_multi_input_socket()

static bool blender::ed::space_node::cursor_isect_multi_input_socket ( const float2 & cursor,
const bNodeSocket & socket )
static

◆ cut_links_exec()

◆ data_type_in_attribute_input_node()

static eCustomDataType blender::ed::space_node::data_type_in_attribute_input_node ( const eCustomDataType type)
static

Some custom data types don't correspond to node types and therefore can't be used by the named attribute input node. Find the best option or fallback to float.

Definition at line 151 of file node_geometry_attribute_search.cc.

References CD_PROP_BOOL, CD_PROP_BYTE_COLOR, CD_PROP_COLOR, CD_PROP_FLOAT, CD_PROP_FLOAT2, CD_PROP_FLOAT3, CD_PROP_FLOAT4X4, CD_PROP_INT32, CD_PROP_INT32_2D, CD_PROP_INT8, CD_PROP_QUATERNION, and CD_PROP_STRING.

Referenced by attribute_search_exec_fn().

◆ detach_links_exec()

◆ displace_links()

◆ do_lasso_select_node()

◆ dragged_links_are_detached()

static bool blender::ed::space_node::dragged_links_are_detached ( const bNodeLinkDrag & nldrag)
static

Check if any of the dragged links are connected to a socket on the side that they are dragged from.

Definition at line 905 of file node_relationships.cc.

References blender::ed::space_node::bNodeLinkDrag::in_out, blender::ed::space_node::bNodeLinkDrag::links, and SOCK_OUT.

Referenced by should_create_drag_link_search_menu().

◆ draw_background_color()

static void blender::ed::space_node::draw_background_color ( const SpaceNode & snode)
static

Make the background slightly brighter to indicate that users are inside a node-group.

Definition at line 4840 of file node_draw.cc.

References BLI_listbase_count_at_most(), draw_background_color(), GPU_clear_color(), max_ii(), mul_v3_fl(), TH_BACK, SpaceNode::treepath, and UI_GetThemeColor3fv().

Referenced by draw_background_color(), and node_draw_space().

◆ draw_draglink_tooltip()

◆ draw_draglink_tooltip_activate()

static void blender::ed::space_node::draw_draglink_tooltip_activate ( const ARegion & region,
bNodeLinkDrag & nldrag )
static

◆ draw_draglink_tooltip_deactivate()

static void blender::ed::space_node::draw_draglink_tooltip_deactivate ( const ARegion & region,
bNodeLinkDrag & nldrag )
static

◆ draw_gizmo_pin_icon()

static void blender::ed::space_node::draw_gizmo_pin_icon ( uiLayout * layout,
PointerRNA * socket_ptr )
static

Definition at line 1232 of file drawnode.cc.

References UI_ITEM_NONE, and uiItemR().

Referenced by std_node_socket_draw().

◆ draw_node_socket_name_editable()

static void blender::ed::space_node::draw_node_socket_name_editable ( uiLayout * layout,
bNodeSocket * sock,
const char * text )
static

◆ draw_node_socket_without_value()

static void blender::ed::space_node::draw_node_socket_without_value ( uiLayout * layout,
bNodeSocket * sock,
const char * text )
static

Definition at line 1254 of file drawnode.cc.

References draw_node_socket_name_editable().

Referenced by std_node_socket_draw().

◆ draw_nodespace_back_pix()

◆ draw_nodetree()

◆ draw_tree_path()

◆ duplicate_material()

static Material * blender::ed::space_node::duplicate_material ( const Material & mat)
static

◆ ensure_nodetree_previews()

static void blender::ed::space_node::ensure_nodetree_previews ( const bContext & C,
NestedTreePreviews & tree_previews,
Material & material,
ListBase & treepath )
static

Definition at line 760 of file node_shader_preview.cc.

References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::ed::space_node::ShaderNodesPreviewJob::bmain, CTX_data_main(), CTX_data_scene(), CTX_wm_manager(), CTX_wm_space_node(), CTX_wm_window(), duplicate_material(), ED_check_engine_supports_preview(), ED_preview_ensure_dbase(), ListBase::first, bNode::id, blender::Vector< T, InlineBufferCapacity, Allocator >::last(), ListBase::last, MA_FLAT, blender::ed::space_node::ShaderNodesPreviewJob::mat_copy, NC_NODE, bNodeTreePath::next, blender::bke::node_find_node_by_name(), bNodeTreePath::nodetree, Material::nodetree, SpaceNode::overlay, SpaceNodeOverlay::preview_shape, blender::ed::space_node::ShaderNodesPreviewJob::preview_type, blender::ed::space_node::NestedTreePreviews::rendering, blender::ed::space_node::ShaderNodesPreviewJob::rendering_AOVs, blender::ed::space_node::ShaderNodesPreviewJob::rendering_node, blender::ed::space_node::NestedTreePreviews::rendering_preview_type, blender::ed::space_node::NestedTreePreviews::rendering_previews_refresh_state, blender::ed::space_node::NestedTreePreviews::restart_needed, bNodeTree::runtime, blender::ed::space_node::ShaderNodesPreviewJob::scene, scene, shader_preview_free(), shader_preview_startjob(), SN_OVERLAY_PREVIEW_3D, blender::ed::space_node::ShaderNodesPreviewJob::tree_previews, blender::ed::space_node::ShaderNodesPreviewJob::treepath_copy, update_needed_flag(), WM_JOB_EXCL_RENDER, WM_JOB_TYPE_RENDER_PREVIEW, WM_jobs_callbacks(), WM_jobs_customdata_set(), WM_jobs_get(), WM_jobs_start(), WM_jobs_stop_type(), and WM_jobs_timer().

Referenced by get_nested_previews().

◆ ENUM_OPERATORS()

blender::ed::space_node::ENUM_OPERATORS ( NodeResizeDirection ,
NODE_RESIZE_LEFT  )

◆ find_bounds_by_zone_recursive()

◆ find_common_parent_node()

◆ find_nested_node_id_in_root()

std::optional< int32_t > blender::ed::space_node::find_nested_node_id_in_root ( const SpaceNode & snode,
const bNode & node )

Find the nested node id of a currently visible node in the root tree.

Definition at line 261 of file space_node.cc.

References BLI_assert, SpaceNode::edittree, group_node_by_name(), LISTBASE_FOREACH_BACKWARD, bNodeTree::runtime, and SpaceNode::treepath.

Referenced by blender::nodes::get_bake_draw_context().

◆ find_node_under_cursor()

static const bNode * blender::ed::space_node::find_node_under_cursor ( SpaceNode & snode,
const float2 & cursor )
static

◆ find_socket_to_use_for_interface()

static const bNodeSocket & blender::ed::space_node::find_socket_to_use_for_interface ( const bNodeTree & node_tree,
const bNodeSocket & socket )
static

Skip reroute nodes when finding the socket to use as an example for a new group interface item. This moves "inward" into nodes selected for grouping to find properties like whether a connected socket has a hidden value. It only works in trivial situations– a single line of connected reroutes with no branching.

Definition at line 840 of file node_group.cc.

References bNodeSocket::in_out, node_tree, and SOCK_IN.

Referenced by add_interface_from_socket().

◆ find_sockets_on_active_gizmo_paths()

◆ frame_node_draw_background()

◆ frame_node_draw_label()

◆ frame_node_draw_overlay()

static void blender::ed::space_node::frame_node_draw_overlay ( const bContext & C,
TreeDrawContext & tree_draw_ctx,
const ARegion & region,
const SpaceNode & snode,
const bNodeTree & ntree,
const bNode & node,
uiBlock & block )
static

◆ frame_node_label_height()

static float blender::ed::space_node::frame_node_label_height ( const NodeFrame & frame_data)
static

Definition at line 3954 of file node_draw.cc.

References NodeFrame::label_size, and UI_SCALE_FAC.

Referenced by frame_node_draw_label(), and frame_node_prepare_for_draw().

◆ frame_node_prepare_for_draw()

static void blender::ed::space_node::frame_node_prepare_for_draw ( bNode & node,
Span< bNode * > nodes )
static

◆ free_previews()

void blender::ed::space_node::free_previews ( wmWindowManager & wm,
SpaceNode & snode )

◆ gather_search_link_ops_for_all_assets()

◆ gather_socket_link_operations()

static void blender::ed::space_node::gather_socket_link_operations ( const bContext & C,
bNodeTree & node_tree,
const bNodeSocket & socket,
Vector< SocketLinkOperation > & search_link_ops )
static

◆ geo_node_get_execution_time()

◆ geo_tree_log_for_socket()

static geo_log::GeoTreeLog * blender::ed::space_node::geo_tree_log_for_socket ( const bNodeTree & ntree,
const bNodeSocket & socket,
TreeDrawContext & tree_draw_ctx )
static

◆ get_attribute_info_from_context()

◆ get_builtin_menus()

static Set< StringRef > blender::ed::space_node::get_builtin_menus ( const int tree_type)
static

Used to avoid adding a separate root catalog when the assets have already been added to one of the builtin menus. TODO: The need to define the builtin menu labels here is completely non-ideal. We don't have any UI introspection that can do this though. This can be solved in the near future by removing the need to define the add menu completely, instead using a per-node-type path which can be merged with catalog tree.

Definition at line 66 of file add_menu_assets.cc.

References NTREE_COMPOSIT, NTREE_GEOMETRY, and NTREE_SHADER.

Referenced by add_root_catalogs_draw(), and node_add_catalog_assets_draw().

◆ get_compute_context_hash_for_node_editor()

◆ get_context_path_node_compositor()

static void blender::ed::space_node::get_context_path_node_compositor ( const bContext & C,
SpaceNode & snode,
Vector< ui::ContextPathItem > & path )
static

◆ get_context_path_node_geometry()

◆ get_context_path_node_shader()

◆ get_image_from_viewlayer_and_pass()

static ImBuf * blender::ed::space_node::get_image_from_viewlayer_and_pass ( RenderResult & rr,
const char * layer_name,
const char * pass_name )
static

◆ get_main_socket()

◆ get_main_socket_priority()

static int blender::ed::space_node::get_main_socket_priority ( const bNodeSocket * socket)
static

◆ get_min_max_of_nodes()

static void blender::ed::space_node::get_min_max_of_nodes ( const Span< bNode * > nodes,
const bool use_size,
float2 & min,
float2 & max )
static

◆ get_modifier_for_node_editor()

◆ get_nested_previews()

NestedTreePreviews * blender::ed::space_node::get_nested_previews ( const bContext & C,
SpaceNode & snode )

This function returns the NestedTreePreviews * for the node-tree shown in the SpaceNode. This is the first function in charge of the previews by calling ensure_nodetree_previews.

Definition at line 133 of file node_shader_preview.cc.

References ensure_nodetree_previews(), get_compute_context_hash_for_node_editor(), GS, hash, SpaceNode::id, ID_MA, ID::name, SpaceNode::runtime, blender::ed::space_node::SpaceNode_Runtime::tree_previews_per_context, and SpaceNode::treepath.

Referenced by draw_nodetree().

◆ get_node_clipboard()

static NodeClipboard & blender::ed::space_node::get_node_clipboard ( )
static

Definition at line 269 of file clipboard.cc.

Referenced by node_clipboard_copy_exec(), and node_clipboard_paste_exec().

◆ get_nodes_to_group()

◆ get_selected_node_for_insertion()

static bNode * blender::ed::space_node::get_selected_node_for_insertion ( bNodeTree & node_tree)
static

Definition at line 2239 of file node_relationships.cc.

References node, node_tree, and SELECT.

Referenced by node_insert_on_link_flags(), and node_insert_on_link_flags_set().

◆ get_selected_nodes()

◆ get_sorted_node_parents()

◆ gizmo_node_backdrop_prop_matrix_get()

static void blender::ed::space_node::gizmo_node_backdrop_prop_matrix_get ( const wmGizmo * ,
wmGizmoProperty * gz_prop,
void * value_p )
static

◆ gizmo_node_backdrop_prop_matrix_set()

static void blender::ed::space_node::gizmo_node_backdrop_prop_matrix_set ( const wmGizmo * ,
wmGizmoProperty * gz_prop,
const void * value_p )
static

◆ gizmo_node_crop_prop_matrix_get()

◆ gizmo_node_crop_prop_matrix_set()

◆ gizmo_node_crop_update()

◆ group_node_by_name()

static const bNode * blender::ed::space_node::group_node_by_name ( const bNodeTree & ntree,
StringRef name )
static

Definition at line 251 of file space_node.cc.

References node.

Referenced by find_nested_node_id_in_root().

◆ group_ntree_idname()

static const char * blender::ed::space_node::group_ntree_idname ( bContext * C)
static

Definition at line 108 of file node_group.cc.

References CTX_wm_space_node(), and SpaceNode::tree_idname.

Referenced by node_group_make_exec().

◆ has_workbench_in_texture_color()

static bool blender::ed::space_node::has_workbench_in_texture_color ( const wmWindowManager * wm,
const Scene * scene,
const Object * ob )
static

Function to detect if there is a visible view3d that uses workbench in texture mode. This function is for fixing #76970 for Blender 2.83. The actual fix should add a mechanism in the depsgraph that can be used by the draw engines to check if they need to be redrawn.

We don't want to add these risky changes this close before releasing 2.83 without good testing hence this workaround. There are still cases were too many updates happen. For example when you have both a Cycles and workbench with textures viewport.

Definition at line 66 of file node_select.cc.

References BKE_workspace_active_screen_get(), ED_view3d_has_workbench_in_texture_color(), LISTBASE_FOREACH, SPACE_VIEW3D, and wmWindowManager::windows.

Referenced by node_mouse_select(), and node_select_single().

◆ invoke_node_link_drag_add_menu()

void blender::ed::space_node::invoke_node_link_drag_add_menu ( bContext & C,
bNode & node,
bNodeSocket & socket,
const float2 & cursor )

Definition at line 454 of file link_drag_search.cc.

References create_search_popup_block(), node, and UI_popup_block_invoke_ex().

Referenced by node_link_modal().

◆ is_compositor_viewer_image_visible()

static bool blender::ed::space_node::is_compositor_viewer_image_visible ( const bContext * C)
static

◆ is_event_over_node_or_socket()

static bool blender::ed::space_node::is_event_over_node_or_socket ( const bContext & C,
const wmEvent & event )
static

◆ is_node_panels_supported()

static bool blender::ed::space_node::is_node_panels_supported ( const bNode & node)
static

◆ is_position_over_node_or_socket()

static bool blender::ed::space_node::is_position_over_node_or_socket ( SpaceNode & snode,
ARegion & region,
const float2 & mouse )
static

◆ lines_of_text()

static Vector< std::string > blender::ed::space_node::lines_of_text ( std::string text)
static

Definition at line 1794 of file node_draw.cc.

References result.

Referenced by create_multi_input_log_inspection_string().

◆ link_drag_search_exec_fn()

◆ link_drag_search_free_fn()

static void blender::ed::space_node::link_drag_search_free_fn ( void * arg)
static

Definition at line 399 of file link_drag_search.cc.

Referenced by create_search_popup_block().

◆ link_drag_search_listen_fn()

static void blender::ed::space_node::link_drag_search_listen_fn ( const wmRegionListenerParams * params,
void * arg )
static

◆ link_drag_search_update_fn()

◆ link_path_intersection()

std::optional< float2 > blender::ed::space_node::link_path_intersection ( const bNodeLink & link,
const Span< float2 > path )

◆ mute_links_exec()

◆ named_attribute_tooltip()

◆ need_drag_link_tooltip()

static bool blender::ed::space_node::need_drag_link_tooltip ( const bNodeTree & node_tree,
const bNodeLinkDrag & nldrag )
static

◆ new_node_tree_exec()

◆ new_node_tree_type_itemf()

static const EnumPropertyItem * blender::ed::space_node::new_node_tree_type_itemf ( bContext * ,
PointerRNA * ,
PropertyRNA * ,
bool * r_free )
static

Definition at line 1097 of file node_add.cc.

References rna_node_tree_type_itemf().

Referenced by NODE_OT_new_node_tree().

◆ node_active_link_viewer_exec()

◆ node_active_link_viewer_poll()

static bool blender::ed::space_node::node_active_link_viewer_poll ( bContext * C)
static

◆ node_add_catalog_assets_draw()

◆ node_add_collection_exec()

◆ node_add_collection_invoke()

static int blender::ed::space_node::node_add_collection_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ node_add_collection_poll()

static bool blender::ed::space_node::node_add_collection_poll ( bContext * C)
static

◆ node_add_error_message_button()

◆ node_add_file_exec()

◆ node_add_file_invoke()

◆ node_add_file_modal()

◆ node_add_file_poll()

static bool blender::ed::space_node::node_add_file_poll ( bContext * C)
static

◆ node_add_group_asset_get_description()

static std::string blender::ed::space_node::node_add_group_asset_get_description ( bContext * C,
wmOperatorType * ,
PointerRNA * ptr )
static

◆ node_add_group_asset_invoke()

◆ node_add_group_exec()

◆ node_add_group_invoke()

static int blender::ed::space_node::node_add_group_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ node_add_group_poll()

static bool blender::ed::space_node::node_add_group_poll ( bContext * C)
static

◆ node_add_mask_exec()

◆ node_add_mask_poll()

static bool blender::ed::space_node::node_add_mask_poll ( bContext * C)
static

◆ node_add_material_exec()

◆ node_add_material_invoke()

static int blender::ed::space_node::node_add_material_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ node_add_material_poll()

static bool blender::ed::space_node::node_add_material_poll ( bContext * C)
static

◆ node_add_menu_poll()

static bool blender::ed::space_node::node_add_menu_poll ( const bContext * C,
MenuType *  )
static

◆ node_add_object_exec()

◆ node_add_object_invoke()

static int blender::ed::space_node::node_add_object_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ node_add_object_poll()

static bool blender::ed::space_node::node_add_object_poll ( bContext * C)
static

◆ node_add_unassigned_assets_draw()

◆ node_add_unsupported_compositor_operation_error_message_button()

static void blender::ed::space_node::node_add_unsupported_compositor_operation_error_message_button ( const bNode & node,
uiBlock & block,
const rctf & rect,
float & icon_offset )
static

◆ node_area_listener()

◆ node_area_refresh()

◆ node_area_tag_tree_recalc()

static void blender::ed::space_node::node_area_tag_tree_recalc ( SpaceNode * snode,
ScrArea * area )
static

Tag the space to recalculate the current tree.

For all node trees this will do snode_set_context() which takes care of setting an active tree. This will be done in the area refresh callback.

For compositor tree this will additionally start of the compositor job.

Definition at line 510 of file space_node.cc.

References ED_area_tag_refresh(), ED_node_is_compositor(), blender::ed::space_node::SpaceNode_Runtime::recalc_regular_compositing, and SpaceNode::runtime.

Referenced by node_area_listener().

◆ node_attach_invoke()

◆ node_box_select_exec()

◆ node_box_select_invoke()

static int blender::ed::space_node::node_box_select_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ node_build_item_data()

◆ node_buts_colorramp()

static void blender::ed::space_node::node_buts_colorramp ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

◆ node_buts_combsep_color()

static void blender::ed::space_node::node_buts_combsep_color ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 222 of file drawnode.cc.

References DEFAULT_FLAGS, ptr, and uiItemR().

Referenced by node_shader_set_butfunc().

◆ node_buts_curvecol()

◆ node_buts_curvefloat()

static void blender::ed::space_node::node_buts_curvefloat ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 150 of file drawnode.cc.

References ptr, and uiTemplateCurveMapping().

Referenced by node_shader_set_butfunc().

◆ node_buts_curvevec()

static void blender::ed::space_node::node_buts_curvevec ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 145 of file drawnode.cc.

References ptr, and uiTemplateCurveMapping().

Referenced by node_shader_set_butfunc().

◆ node_buts_frame_ex()

static void blender::ed::space_node::node_buts_frame_ex ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 292 of file drawnode.cc.

References DEFAULT_FLAGS, IFACE_, ptr, and uiItemR().

Referenced by node_common_set_butfunc().

◆ node_buts_image_user()

◆ node_buts_image_views()

static void blender::ed::space_node::node_buts_image_views ( uiLayout * layout,
bContext * ,
PointerRNA * ptr,
PointerRNA * imaptr )
static

◆ node_buts_math()

static void blender::ed::space_node::node_buts_math ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

◆ node_buts_mix_rgb()

static void blender::ed::space_node::node_buts_mix_rgb ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

◆ node_buts_normal()

static void blender::ed::space_node::node_buts_normal ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

◆ node_buts_output_shader()

static void blender::ed::space_node::node_buts_output_shader ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 443 of file drawnode.cc.

References DEFAULT_FLAGS, ptr, and uiItemR().

Referenced by node_shader_set_butfunc().

◆ node_buts_rgb()

static void blender::ed::space_node::node_buts_rgb ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

◆ node_buts_texture()

static void blender::ed::space_node::node_buts_texture ( uiLayout * layout,
bContext * C,
PointerRNA * ptr )
static

◆ node_buts_time()

static void blender::ed::space_node::node_buts_time ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

◆ node_buts_value()

static void blender::ed::space_node::node_buts_value ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

◆ node_buttons_region_draw()

static void blender::ed::space_node::node_buttons_region_draw ( const bContext * C,
ARegion * region )
static

Definition at line 746 of file space_node.cc.

References ED_region_panels().

◆ node_buttons_region_init()

static void blender::ed::space_node::node_buttons_region_init ( wmWindowManager * wm,
ARegion * region )
static

◆ node_can_be_inserted_on_link()

static bool blender::ed::space_node::node_can_be_inserted_on_link ( bNodeTree & tree,
bNode & node,
const bNodeLink & link )
static

◆ node_circleselect_exec()

◆ node_clear_recursive()

static void blender::ed::space_node::node_clear_recursive ( bNode * node)
static

Definition at line 117 of file node_templates.cc.

References LISTBASE_FOREACH, node_clear_recursive(), and NODE_TEST.

Referenced by node_clear_recursive(), and node_remove_linked().

◆ node_clipboard_copy_exec()

◆ node_clipboard_paste_exec()

static int blender::ed::space_node::node_clipboard_paste_exec ( bContext * C,
wmOperator * op )
static

Definition at line 347 of file clipboard.cc.

References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), BKE_report(), BKE_reportf(), BLI_rctf_cent_x(), BLI_rctf_cent_y(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), CTX_data_main(), CTX_wm_manager(), CTX_wm_space_node(), DEG_relations_tag_update(), ED_node_tree_propagate_change(), ED_preview_kill_jobs(), SpaceNode::edittree, get_node_clipboard(), bNode::inputs, LIB_ID_CREATE_NO_USER_REFCOUNT, blender::ed::space_node::NodeClipboard::links, LISTBASE_FOREACH, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_default(), bNodeLink::multi_input_sort_id, blender::bke::node_add_link(), blender::bke::node_copy_with_mapping(), blender::bke::node_declaration_ensure(), node_deselect_all(), blender::bke::node_find_socket(), blender::bke::node_set_selected(), blender::ed::space_node::NodeClipboard::nodes, OPERATOR_CANCELLED, OPERATOR_FINISHED, bNode::outputs, blender::ed::space_node::NodeClipboard::paste_update_node_id_references(), blender::ed::space_node::NodeClipboard::paste_validate_id_references(), wmOperator::ptr, remap_node_pairing(), wmOperator::reports, RNA_property_float_get_array(), RNA_property_is_set(), RNA_struct_find_property(), RPT_ERROR, RPT_WARNING, SOCK_DISPLAY_SHAPE_CIRCLE, SOCK_IN, SOCK_OUT, tree, UI_SCALE_FAC, update_multi_input_indices_for_removed_links(), and blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::values().

Referenced by node_clipboard_paste_invoke(), and NODE_OT_clipboard_paste().

◆ node_clipboard_paste_invoke()

static int blender::ed::space_node::node_clipboard_paste_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ node_collection_drop_poll()

static bool blender::ed::space_node::node_collection_drop_poll ( bContext * C,
wmDrag * drag,
const wmEvent *  )
static

Definition at line 859 of file space_node.cc.

References ID_GR, UI_but_active_drop_name(), and WM_drag_is_ID_type().

Referenced by node_dropboxes().

◆ node_common_set_butfunc()

static void blender::ed::space_node::node_common_set_butfunc ( blender::bke::bNodeType * ntype)
static

◆ node_composit_backdrop_boxmask()

◆ node_composit_backdrop_ellipsemask()

◆ node_composit_buts_combsep_color()

static void blender::ed::space_node::node_composit_buts_combsep_color ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

◆ node_composit_buts_cryptomatte()

◆ node_composit_buts_cryptomatte_legacy()

static void blender::ed::space_node::node_composit_buts_cryptomatte_legacy ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

◆ node_composit_buts_cryptomatte_legacy_ex()

static void blender::ed::space_node::node_composit_buts_cryptomatte_legacy_ex ( uiLayout * layout,
bContext * ,
PointerRNA *  )
static

Definition at line 704 of file drawnode.cc.

References IFACE_, and uiItemO().

Referenced by node_composit_set_butfunc().

◆ node_composit_buts_huecorrect()

static void blender::ed::space_node::node_composit_buts_huecorrect ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

◆ node_composit_buts_image()

static void blender::ed::space_node::node_composit_buts_image ( uiLayout * layout,
bContext * C,
PointerRNA * ptr )
static

◆ node_composit_buts_image_ex()

static void blender::ed::space_node::node_composit_buts_image_ex ( uiLayout * layout,
bContext * C,
PointerRNA * ptr )
static

◆ node_composit_buts_ycc()

static void blender::ed::space_node::node_composit_buts_ycc ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 583 of file drawnode.cc.

References DEFAULT_FLAGS, ptr, and uiItemR().

Referenced by node_composit_set_butfunc().

◆ node_composit_set_butfunc()

◆ node_context()

◆ node_copy_color_exec()

◆ node_create()

◆ node_cryptomatte_add_socket_exec()

◆ node_cryptomatte_remove_socket_exec()

◆ node_cursor()

static void blender::ed::space_node::node_cursor ( wmWindow * win,
ScrArea * area,
ARegion * region )
static

◆ node_deactivate_viewer_exec()

◆ node_default_group_width_set_exec()

◆ node_default_group_width_set_poll()

static bool blender::ed::space_node::node_default_group_width_set_poll ( bContext * C)
static

◆ node_delete_exec()

◆ node_delete_reconnect_exec()

◆ node_deselect_all()

◆ node_deselect_all_input_sockets()

void blender::ed::space_node::node_deselect_all_input_sockets ( bNodeTree & node_tree,
bool deselect_nodes )

Definition at line 257 of file node_select.cc.

References LISTBASE_FOREACH, node_tree, and SELECT.

Referenced by node_make_link_exec().

◆ node_deselect_all_output_sockets()

void blender::ed::space_node::node_deselect_all_output_sockets ( bNodeTree & node_tree,
bool deselect_nodes )

Definition at line 287 of file node_select.cc.

References LISTBASE_FOREACH, node_tree, and SELECT.

Referenced by node_make_link_exec().

◆ node_detach_exec()

static int blender::ed::space_node::node_detach_exec ( bContext * C,
wmOperator *  )
static

◆ node_detach_recursive()

static void blender::ed::space_node::node_detach_recursive ( bNodeTree & ntree,
MutableSpan< NodeDetachstate > detach_states,
bNode * node )
static

◆ node_displace_existing_links()

◆ node_draw()

static void blender::ed::space_node::node_draw ( const bContext & C,
TreeDrawContext & tree_draw_ctx,
ARegion & region,
const SpaceNode & snode,
bNodeTree & ntree,
bNode & node,
uiBlock & block,
bNodeInstanceKey key )
static

◆ node_draw_basis()

static void blender::ed::space_node::node_draw_basis ( const bContext & C,
TreeDrawContext & tree_draw_ctx,
const View2D & v2d,
const SpaceNode & snode,
bNodeTree & ntree,
const bNode & node,
uiBlock & block,
bNodeInstanceKey key )
static

Definition at line 3329 of file node_draw.cc.

References TreeDrawContext::active_geometry_nodes_viewer, blender::bke::all_zone_node_types(), BASIS_RAD, BLI_rctf_isect(), CTX_data_pointer_get(), View2D::cur, PointerRNA::data, ELEM, SpaceNodeOverlay::flag, GPU_line_width(), bNodePreview::ibuf, ID_REAL_USERS, is_node_panels_supported(), TreeDrawContext::nested_group_infos, node, NODE_ACTIVE, node_add_error_message_button(), NODE_CUSTOM, NODE_CUSTOM_COLOR, NODE_CUSTOM_GROUP, node_draw_extra_info_panel(), node_draw_mute_line(), node_draw_panels(), node_draw_panels_background(), node_draw_shadow(), node_draw_sockets(), NODE_DY, node_get_colorid(), NODE_GROUP, NODE_HEADER_ICON_SIZE, blender::bke::node_instance_hash_lookup(), node_is_previewable(), NODE_MARGIN_X, NODE_MUTED, NODE_PREVIEW, node_preview_acquire_ibuf(), node_release_preview_ibuf(), node_toggle_button_cb(), NODE_TREE_SCALE_SMALL, node_tree_view_scale(), blender::bke::node_type_is_undefined(), NODE_WIDTH, blender::bke::nodeLabel(), NTREE_SHADER, SpaceNode::overlay, padding(), POINTER_FROM_INT, rgba_float_args_set(), SELECT, SN_OVERLAY_SHOW_OVERLAYS, SN_OVERLAY_SHOW_PREVIEWS, TH_ACTIVE, TH_BACK, TH_NODE, TH_REDALERT, TH_SELECT, TIP_, bNodeTree::type, bNode::typeinfo, UI_block_draw(), UI_block_emboss_set(), UI_block_end(), UI_BTYPE_BUT, UI_BTYPE_BUT_TOGGLE, UI_BTYPE_LABEL, UI_but_flag_enable(), UI_but_func_set(), UI_but_func_tooltip_set(), UI_but_icon_indicator_number_set(), UI_BUT_INACTIVE, UI_CNR_ALL, UI_CNR_BOTTOM_LEFT, UI_CNR_BOTTOM_RIGHT, UI_CNR_NONE, UI_CNR_TOP_LEFT, UI_CNR_TOP_RIGHT, UI_draw_roundbox_4fv(), UI_draw_roundbox_corner_set(), UI_EMBOSS, UI_EMBOSS_NONE, UI_GetThemeColor4fv(), UI_GetThemeColorBlend4f(), UI_GetThemeColorBlendShade4fv(), UI_SCALE_FAC, UI_UNIT_Y, uiDefBut(), uiDefIconBut(), rctf::xmax, rctf::xmin, rctf::ymax, rctf::ymin, and blender::bke::zone_type_by_node_type().

Referenced by node_draw().

◆ node_draw_buttons_group()

static void blender::ed::space_node::node_draw_buttons_group ( uiLayout * layout,
bContext * C,
PointerRNA * ptr )
static

Definition at line 287 of file drawnode.cc.

References ptr, and uiTemplateIDBrowse().

Referenced by node_common_set_butfunc().

◆ node_draw_extra_info_panel()

◆ node_draw_extra_info_panel_back()

static void blender::ed::space_node::node_draw_extra_info_panel_back ( const bNode & node,
const rctf & extra_info_rect )
static

◆ node_draw_extra_info_row()

◆ node_draw_hidden()

static void blender::ed::space_node::node_draw_hidden ( const bContext & C,
TreeDrawContext & tree_draw_ctx,
const View2D & v2d,
const SpaceNode & snode,
bNodeTree & ntree,
bNode & node,
uiBlock & block )
static

◆ node_draw_link()

void blender::ed::space_node::node_draw_link ( const bContext & C,
const View2D & v2d,
const SpaceNode & snode,
const bNodeLink & link,
bool selected )

◆ node_draw_link_bezier()

void blender::ed::space_node::node_draw_link_bezier ( const bContext & C,
const View2D & v2d,
const SpaceNode & snode,
const bNodeLink & link,
int th_col1,
int th_col2,
int th_col3,
bool selected )

Don't do shadows if th_col3 is -1.

Definition at line 2318 of file drawnode.cc.

References node_draw_link_bezier_ex(), node_link_bezier_points(), node_link_draw_is_visible(), and nodelink_get_draw_config().

Referenced by node_draw_link(), and node_draw_mute_line().

◆ node_draw_link_bezier_ex()

static void blender::ed::space_node::node_draw_link_bezier_ex ( const SpaceNode & snode,
const NodeLinkDrawConfig & draw_config,
const std::array< float2, 4 > & points )
static

◆ node_draw_link_dragged()

void blender::ed::space_node::node_draw_link_dragged ( const bContext & C,
const View2D & v2d,
const SpaceNode & snode,
const bNodeLink & link )

◆ node_draw_link_end_marker()

static void blender::ed::space_node::node_draw_link_end_marker ( const float2 center,
const float radius,
const ColorTheme4f & color )
static

◆ node_draw_link_end_markers()

static void blender::ed::space_node::node_draw_link_end_markers ( const bNodeLink & link,
const NodeLinkDrawConfig & draw_config,
const std::array< float2, 4 > & points,
const bool outline )
static

◆ node_draw_mute_line()

static void blender::ed::space_node::node_draw_mute_line ( const bContext & C,
const View2D & v2d,
const SpaceNode & snode,
const bNode & node )
static

◆ node_draw_nodetree()

static void blender::ed::space_node::node_draw_nodetree ( const bContext & C,
TreeDrawContext & tree_draw_ctx,
ARegion & region,
SpaceNode & snode,
bNodeTree & ntree,
Span< bNode * > nodes,
Span< uiBlock * > blocks,
bNodeInstanceKey parent_key )
static

◆ node_draw_panels()

◆ node_draw_panels_background()

◆ node_draw_preview()

static void blender::ed::space_node::node_draw_preview ( const Scene * scene,
ImBuf * preview,
const rctf * prv )
static

◆ node_draw_preview_background()

◆ node_draw_shadow()

static void blender::ed::space_node::node_draw_shadow ( const SpaceNode & snode,
const bNode & node,
const float radius,
const float alpha )
static

◆ node_draw_sockets()

◆ node_draw_space()

void blender::ed::space_node::node_draw_space ( const bContext & C,
ARegion & region )

Definition at line 4858 of file node_draw.cc.

References copy_v2_v2(), CTX_wm_space_node(), CTX_wm_window(), bNodeTreePath::display_name, draw_background_color(), draw_nodespace_back_pix(), draw_nodetree(), draw_tree_path(), ED_annotation_draw_view2d(), ED_region_draw_cb_draw(), SpaceNode::edittree, wmWindow::eventstate, SpaceNode::flag, SpaceNodeOverlay::flag, GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, GPU_DEPTH_NONE, GPU_depth_test(), GPU_framebuffer_bind_no_srgb(), GPU_line_smooth(), GPU_matrix_identity_set(), GPU_matrix_pop(), GPU_matrix_projection_get, GPU_matrix_projection_set, GPU_matrix_push(), GPU_scissor_test(), GPU_viewport_framebuffer_overlay_get(), bNodeTree::id, SpaceNode::id, ListBase::last, ID::name, node_draw_link_dragged(), node_draw_space(), NODE_GRID_STEP_SIZE, bNodeTreePath::nodetree, SpaceNode::nodetree, SpaceNode::overlay, bNodeTreePath::parent_key, REGION_DRAW_POST_VIEW, REGION_DRAW_PRE_VIEW, SpaceNode::runtime, SN_OVERLAY_SHOW_OVERLAYS, SN_OVERLAY_SHOW_PATH, snode_set_context(), snode_setup_v2d(), SNODE_SHOW_GPENCIL, SPACE_NODE, STREQ, STRNCPY, TH_GRID, TH_NODE_GRID_LEVELS, SpaceNode::treepath, UI_GetThemeValueType(), UI_SCALE_FAC, UI_view2d_center_get(), UI_view2d_dot_grid_draw(), UI_view2d_region_to_view(), UI_view2d_scrollers_draw(), UI_view2d_view_ortho(), UI_view2d_view_restore(), UNLIKELY, bNodeTree::view_center, bNodeTreePath::view_center, WM_draw_region_get_viewport(), WM_gizmomap_draw(), WM_GIZMOMAP_DRAWSTEP_2D, wmOrtho2_pixelspace(), and wmEvent::xy.

Referenced by node_draw_space(), and node_main_region_draw().

◆ node_draw_zones_and_frames()

static void blender::ed::space_node::node_draw_zones_and_frames ( const bContext & C,
TreeDrawContext & tree_draw_ctx,
const ARegion & region,
const SpaceNode & snode,
const bNodeTree & ntree,
Span< uiBlock * > blocks )
static

◆ node_dropboxes()

◆ node_duplicate()

static SpaceLink * blender::ed::space_node::node_duplicate ( SpaceLink * sl)
static

◆ node_duplicate_exec()

static int blender::ed::space_node::node_duplicate_exec ( bContext * C,
wmOperator * op )
static

Definition at line 1371 of file node_edit.cc.

References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), BLI_addtail(), CTX_data_main(), CTX_wm_manager(), CTX_wm_space_node(), ED_node_tree_propagate_change(), ED_preview_kill_jobs(), SpaceNode::edittree, bNode::flag, bNodeLink::flag, bNodeLink::fromnode, bNodeLink::fromsock, get_selected_nodes(), bNode::id, id_us_min(), id_us_plus(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::is_empty(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::items(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::keys(), ListBase::last, LIB_ID_COPY_DEFAULT, bNodeTree::links, LISTBASE_FOREACH, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_or_add_cb(), bNodeLink::multi_input_sort_id, NODE_ACTIVE, NODE_ACTIVE_TEXTURE, blender::bke::node_copy_with_mapping(), blender::bke::node_declaration_ensure(), node_duplicate_reparent_recursive(), NODE_SELECT, node_select_paired(), blender::bke::node_set_selected(), NODE_TEST, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::ptr, remap_node_pairing(), RNA_boolean_get(), SOCK_MULTI_INPUT, bNodeLink::tonode, bNodeLink::tosock, tree_draw_order_update(), update_multi_input_indices_for_removed_links(), USER_DUP_NTREE, and blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::values().

Referenced by NODE_OT_duplicate().

◆ node_duplicate_reparent_recursive()

◆ node_error_highest_priority()

static geo_log::NodeWarningType blender::ed::space_node::node_error_highest_priority ( Span< geo_log::NodeWarning > warnings)
static

Definition at line 2618 of file node_draw.cc.

Referenced by node_add_error_message_button().

◆ node_errors_tooltip_fn()

static std::string blender::ed::space_node::node_errors_tooltip_fn ( bContext * ,
void * argN,
const char *  )
static

◆ node_exit()

static void blender::ed::space_node::node_exit ( wmWindowManager * wm,
ScrArea * area )
static

Definition at line 480 of file space_node.cc.

References free_previews(), and SpaceNode::runtime.

◆ node_file_output_socket_draw()

◆ node_find_create_label()

static void blender::ed::space_node::node_find_create_label ( const bNode * node,
char * str,
int str_maxncpy )
static

Definition at line 1332 of file node_select.cc.

References BLI_snprintf(), BLI_strncpy(), and str.

Referenced by node_find_update_fn().

◆ node_find_exec_fn()

static void blender::ed::space_node::node_find_exec_fn ( bContext * C,
void * ,
void * arg2 )
static

◆ node_find_frame_to_attach()

static bNode * blender::ed::space_node::node_find_frame_to_attach ( ARegion & region,
bNodeTree & ntree,
const int2 mouse_xy )
static

◆ node_find_indicated_socket()

◆ node_find_linkable_socket()

static bNodeSocket * blender::ed::space_node::node_find_linkable_socket ( const bNodeTree & ntree,
const bNode * node,
bNodeSocket * socket_to_match )
static

◆ node_find_menu()

◆ node_find_node_invoke()

static int blender::ed::space_node::node_find_node_invoke ( bContext * C,
wmOperator * op,
const wmEvent *  )
static

◆ node_find_preview_socket()

static bNodeSocket * blender::ed::space_node::node_find_preview_socket ( bNodeTree & ntree,
bNode & node )
static

Follows some rules to determine the previewed socket and node associated. We first seek for an output socket of the node, if none if found, the node is an output node, and thus seek for an input socket.

Definition at line 253 of file node_shader_preview.cc.

References ELEM, get_main_socket(), bNodeSocket::link, SOCK_FLOAT, SOCK_IN, SOCK_OUT, SOCK_RGBA, SOCK_VECTOR, and bNodeSocket::type.

Referenced by node_use_aov(), and shader_preview_startjob().

◆ node_find_update_fn()

static void blender::ed::space_node::node_find_update_fn ( const bContext * C,
void * ,
const char * str,
uiSearchItems * items,
const bool  )
static

◆ node_flag_toggle_exec()

static void blender::ed::space_node::node_flag_toggle_exec ( SpaceNode * snode,
int toggle_flag )
static

Toggles the flag on all selected nodes. If the flag is set on all nodes it is unset. If the flag is not set on all nodes, it is set.

Definition at line 1626 of file node_edit.cc.

References SpaceNode::edittree, node_is_previewable(), NODE_OPTIONS, NODE_PREVIEW, and SELECT.

Referenced by node_hide_toggle_exec(), node_options_toggle_exec(), and node_preview_toggle_exec().

◆ node_foreach_id()

◆ node_frame_rect_inside()

◆ node_frame_select_isect_mouse()

static bool blender::ed::space_node::node_frame_select_isect_mouse ( const SpaceNode & snode,
const bNode & node,
const float2 & mouse )
static

◆ node_free()

static void blender::ed::space_node::node_free ( SpaceLink * sl)
static

Definition at line 463 of file space_node.cc.

References BLI_freelistN(), SpaceNode::runtime, and SpaceNode::treepath.

◆ node_from_view()

float2 blender::ed::space_node::node_from_view ( const bNode & node,
const float2 & co )

Definition at line 371 of file node_draw.cc.

References blender::bke::node_from_view(), and UI_SCALE_FAC.

Referenced by frame_node_prepare_for_draw().

◆ node_geometry_add_attribute_search_button()

◆ node_get_accessed_attributes_row()

◆ node_get_colorid()

◆ node_get_compositor_extra_info()

static void blender::ed::space_node::node_get_compositor_extra_info ( TreeDrawContext & tree_draw_ctx,
const SpaceNode & snode,
const bNode & node,
Vector< NodeExtraInfoRow > & rows )
static

◆ node_get_execution_time()

static std::optional< std::chrono::nanoseconds > blender::ed::space_node::node_get_execution_time ( const TreeDrawContext & tree_draw_ctx,
const SpaceNode & snode,
const bNode & node )
static

◆ node_get_execution_time_label()

static std::string blender::ed::space_node::node_get_execution_time_label ( TreeDrawContext & tree_draw_ctx,
const SpaceNode & snode,
const bNode & node )
static

Definition at line 2871 of file node_draw.cc.

References node_get_execution_time().

Referenced by node_get_execution_time_label_row().

◆ node_get_execution_time_label_row()

static std::optional< NodeExtraInfoRow > blender::ed::space_node::node_get_execution_time_label_row ( TreeDrawContext & tree_draw_ctx,
const SpaceNode & snode,
const bNode & node )
static

◆ node_get_extra_info()

◆ node_get_invalid_links_extra_info()

◆ node_get_resize_cursor()

int blender::ed::space_node::node_get_resize_cursor ( NodeResizeDirection directions)

◆ node_get_resize_direction()

◆ NODE_GGT_backdrop_corner_pin()

◆ NODE_GGT_backdrop_crop()

◆ NODE_GGT_backdrop_sun_beams()

◆ NODE_GGT_backdrop_transform()

◆ node_gizmo_calc_matrix_space()

static void blender::ed::space_node::node_gizmo_calc_matrix_space ( const SpaceNode * snode,
const ARegion * region,
float matrix_space[4][4] )
static

◆ node_gizmo_calc_matrix_space_with_image_dims()

static void blender::ed::space_node::node_gizmo_calc_matrix_space_with_image_dims ( const SpaceNode * snode,
const ARegion * region,
const float2 & image_dims,
const float2 & image_offset,
float matrix_space[4][4] )
static

◆ node_group_add_poll()

static bool blender::ed::space_node::node_group_add_poll ( const bNodeTree & node_tree,
const bNodeTree & node_group,
ReportList & reports )
static

◆ node_group_drop_copy()

static void blender::ed::space_node::node_group_drop_copy ( bContext * C,
wmDrag * drag,
wmDropBox * drop )
static

◆ node_group_drop_poll()

◆ node_group_edit_exec()

◆ node_group_get_active()

static bNode * blender::ed::space_node::node_group_get_active ( bContext * C,
const char * node_idname )
static

◆ node_group_idname()

◆ node_group_insert_exec()

◆ node_group_make_exec()

◆ node_group_make_from_nodes()

static bNode * blender::ed::space_node::node_group_make_from_nodes ( const bContext & C,
bNodeTree & ntree,
const VectorSet< bNode * > & nodes_to_group,
const char * ntype,
const char * ntreetype )
static

◆ node_group_make_insert_selected()

static void blender::ed::space_node::node_group_make_insert_selected ( const bContext & C,
bNodeTree & ntree,
bNode * gnode,
const VectorSet< bNode * > & nodes_to_move )
static

Definition at line 930 of file node_group.cc.

References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), add_interface_from_socket(), blender::bke::node_interface::add_interface_socket_from_node(), bNodeTree::adt, animation_basepath_change_free(), animation_basepath_change_new(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BKE_animdata_transfer_by_basepath(), BKE_ntree_update_tag_link_added(), BKE_ntree_update_tag_link_removed(), BKE_ntree_update_tag_node_new(), BKE_ntree_update_tag_node_removed(), BLI_addtail(), BLI_assert, BLI_remlink(), blender::StringRefNull::c_str(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), CTX_data_main(), ED_node_tree_propagate_change(), get_min_max_of_nodes(), bNode::id, bNodeTree::id, bNode::identifier, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::items(), bNodeTree::links, LISTBASE_FOREACH_MUTABLE, bNode::locx, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_or_add_default(), max, blender::math::midpoint(), min, node, blender::bke::node_add_link(), blender::bke::node_add_static_node(), node_deselect_all(), blender::bke::node_detach_node(), node_group_find_input_socket(), node_group_find_output_socket(), NODE_GROUP_INPUT, node_group_input_find_socket(), NODE_GROUP_OUTPUT, node_group_output_find_socket(), blender::bke::node_link_is_hidden(), blender::bke::node_rebuild_id_vector(), blender::bke::node_remove_link(), blender::bke::node_unique_id(), blender::bke::node_unique_name(), bNodeTree::nodes, NTREE_GEOMETRY, ptr, remap_pairing(), RNA_path_from_ID_to_struct(), RNA_pointer_create(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::size(), SOCK_IN, blender::bke::node_field_inferencing::update_field_inferencing(), update_nested_node_refs_after_moving_nodes_into_group(), and blender::nodes::update_node_declaration_and_sockets().

Referenced by node_group_insert_exec(), and node_group_make_from_nodes().

◆ node_group_make_test_selected()

◆ node_group_operator_active_poll()

static bool blender::ed::space_node::node_group_operator_active_poll ( bContext * C)
static

◆ node_group_operator_editable()

static bool blender::ed::space_node::node_group_operator_editable ( bContext * C)
static

◆ node_group_separate_exec()

◆ node_group_separate_invoke()

◆ node_group_separate_selected()

static bool blender::ed::space_node::node_group_separate_selected ( Main & bmain,
bNodeTree & ntree,
bNodeTree & ngroup,
const float2 & offset,
const bool make_copy )
static
Returns
True if successful.

Definition at line 512 of file node_group.cc.

References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), bNodeTree::adt, animation_basepath_change_free(), animation_basepath_change_new(), BKE_animdata_transfer_by_basepath(), BKE_ntree_update_tag_all(), BLI_addtail(), BLI_remlink(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), bNode::flag, get_selected_nodes(), bNodeTree::id, bNode::identifier, LIB_ID_COPY_DEFAULT, bNodeTree::links, LISTBASE_FOREACH_MUTABLE, bNode::locx, bNode::locy, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup(), node, blender::bke::node_add_link(), blender::bke::node_copy_with_mapping(), blender::bke::node_declaration_ensure(), node_deselect_all(), blender::bke::node_detach_node(), blender::bke::node_rebuild_id_vector(), blender::bke::node_remove_link(), NODE_SELECT, blender::bke::node_unique_id(), blender::bke::node_unique_name(), bNodeTree::nodes, bNode::parent, ptr, remap_pairing(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::remove_if(), RNA_path_from_ID_to_struct(), RNA_pointer_create(), and blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::values().

Referenced by node_group_separate_exec().

◆ node_group_ungroup()

◆ node_group_ungroup_exec()

◆ node_has_hidden_sockets()

bool blender::ed::space_node::node_has_hidden_sockets ( bNode * node)

Definition at line 1124 of file node_edit.cc.

References LISTBASE_FOREACH, and SOCK_HIDDEN.

Referenced by node_socket_toggle_exec().

◆ node_header_region_draw()

static void blender::ed::space_node::node_header_region_draw ( const bContext * C,
ARegion * region )
static

Definition at line 956 of file space_node.cc.

References ED_region_header(), and snode_set_context().

◆ node_header_region_init()

static void blender::ed::space_node::node_header_region_init ( wmWindowManager * ,
ARegion * region )
static

Definition at line 951 of file space_node.cc.

References ED_region_header_init().

◆ node_hide_toggle_exec()

static int blender::ed::space_node::node_hide_toggle_exec ( bContext * C,
wmOperator *  )
static

◆ node_id_drop_copy()

static void blender::ed::space_node::node_id_drop_copy ( bContext * C,
wmDrag * drag,
wmDropBox * drop )
static

Definition at line 888 of file space_node.cc.

References wmDropBox::ptr, RNA_int_set(), and WM_drag_get_local_ID_or_import_from_asset().

Referenced by node_dropboxes().

◆ node_id_im_drop_copy()

static void blender::ed::space_node::node_id_im_drop_copy ( bContext * C,
wmDrag * drag,
wmDropBox * drop )
static

◆ node_id_im_drop_poll()

static bool blender::ed::space_node::node_id_im_drop_poll ( bContext * ,
wmDrag * drag,
const wmEvent *  )
static

Definition at line 864 of file space_node.cc.

References ID_IM, and WM_drag_is_ID_type().

Referenced by node_dropboxes().

◆ node_id_remap() [1/2]

◆ node_id_remap() [2/2]

static void blender::ed::space_node::node_id_remap ( ScrArea * ,
SpaceLink * slink,
const blender::bke::id::IDRemapper & mappings )
static

Definition at line 1196 of file space_node.cc.

References blender::bke::id::IDRemapper::iter(), and node_id_remap().

◆ node_init()

static void blender::ed::space_node::node_init ( wmWindowManager * ,
ScrArea * area )
static

Definition at line 471 of file space_node.cc.

References SpaceNode::runtime.

◆ node_insert_offset_invoke()

◆ node_insert_offset_modal()

◆ node_insert_on_link_flags()

◆ node_insert_on_link_flags_clear()

void blender::ed::space_node::node_insert_on_link_flags_clear ( bNodeTree & node_tree)

◆ node_insert_on_link_flags_set()

◆ node_is_previewable()

bool blender::ed::space_node::node_is_previewable ( const SpaceNode & snode,
const bNodeTree & ntree,
const bNode & node )

◆ node_join_attach_recursive()

static void blender::ed::space_node::node_join_attach_recursive ( bNodeTree & ntree,
MutableSpan< NodeJoinState > join_states,
bNode * node,
bNode * frame,
const VectorSet< bNode * > & selected_nodes )
static

◆ node_join_exec()

◆ node_keymap()

void blender::ed::space_node::node_keymap ( wmKeyConfig * keyconf)

Definition at line 118 of file node_ops.cc.

References node_link_modal_keymap(), RGN_TYPE_WINDOW, SPACE_NODE, and WM_keymap_ensure().

◆ node_lasso_select_exec()

◆ node_lasso_select_invoke()

static int blender::ed::space_node::node_lasso_select_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ node_link_bezier_points()

static std::array< float2, 4 > blender::ed::space_node::node_link_bezier_points ( const bNodeLink & link)
static

◆ node_link_bezier_points_dragged()

◆ node_link_bezier_points_evaluated()

void blender::ed::space_node::node_link_bezier_points_evaluated ( const bNodeLink & link,
std::array< float2, NODE_LINK_RESOL+1 > & coords )

◆ node_link_calculate_multi_input_position()

float2 blender::ed::space_node::node_link_calculate_multi_input_position ( const float2 & socket_position,
const int index,
const int total_inputs )

◆ node_link_cancel()

◆ node_link_dim_factor()

◆ node_link_draw_is_visible()

static bool blender::ed::space_node::node_link_draw_is_visible ( const View2D & v2d,
const std::array< float2, 4 > & points )
static

Definition at line 1780 of file drawnode.cc.

References View2D::cur, max_ffff(), min_ffff(), rctf::xmax, and rctf::xmin.

Referenced by node_draw_link_bezier().

◆ node_link_find_socket()

◆ node_link_init()

◆ node_link_insert_offset_chain_cb()

static bool blender::ed::space_node::node_link_insert_offset_chain_cb ( bNode * fromnode,
bNode * tonode,
void * userdata,
const bool reversed )
static

Callback that applies NodeInsertOfsData.offset_x to a node or its parent, considering the logic needed for offsetting nodes after link insert

Definition at line 2652 of file node_relationships.cc.

References bNode::flag, blender::bke::node_find_root_parent(), blender::bke::node_is_parent_and_child(), node_link_insert_offset_frame_chains(), node_offset_apply(), node_parent_offset_apply(), NODE_TEST, and bNode::parent.

Referenced by node_link_insert_offset_ntree().

◆ node_link_insert_offset_frame_chain_cb()

static bool blender::ed::space_node::node_link_insert_offset_frame_chain_cb ( bNode * fromnode,
bNode * tonode,
void * userdata,
const bool reversed )
static

Callback that applies NodeInsertOfsData.offset_x to a node or its parent, similar to node_link_insert_offset_output_chain_cb below, but with slightly different logic

Definition at line 2614 of file node_relationships.cc.

References node_offset_apply(), and bNode::parent.

Referenced by node_link_insert_offset_frame_chains().

◆ node_link_insert_offset_frame_chains()

static void blender::ed::space_node::node_link_insert_offset_frame_chains ( bNodeTree * ntree,
const bNode * parent,
NodeInsertOfsData * data,
const bool reversed )
static

◆ node_link_insert_offset_ntree()

◆ node_link_invoke()

◆ node_link_is_field_link()

static bool blender::ed::space_node::node_link_is_field_link ( const SpaceNode & snode,
const bNodeLink & link )
static

◆ node_link_is_gizmo_link()

static bool blender::ed::space_node::node_link_is_gizmo_link ( const SpaceNode & snode,
const bNodeLink & link )
static

◆ node_link_is_hidden_or_dimmed()

bool blender::ed::space_node::node_link_is_hidden_or_dimmed ( const View2D & v2d,
const bNodeLink & link )

◆ node_link_item_apply()

static void blender::ed::space_node::node_link_item_apply ( bNodeTree * ntree,
bNode * node,
NodeLinkItem * item )
static

◆ node_link_item_compare()

static bool blender::ed::space_node::node_link_item_compare ( bNode * node,
NodeLinkItem * item )
static

◆ node_link_item_init()

◆ node_link_modal()

◆ node_link_modal_keymap()

wmKeyMap * blender::ed::space_node::node_link_modal_keymap ( wmKeyConfig * keyconf)

◆ node_main_region_draw()

static void blender::ed::space_node::node_main_region_draw ( const bContext * C,
ARegion * region )
static

Definition at line 811 of file space_node.cc.

References node_draw_space().

◆ node_main_region_init()

◆ node_make_link_exec()

◆ node_mask_drop_poll()

static bool blender::ed::space_node::node_mask_drop_poll ( bContext * ,
wmDrag * drag,
const wmEvent *  )
static

Definition at line 869 of file space_node.cc.

References ID_MSK, and WM_drag_is_ID_type().

Referenced by node_dropboxes().

◆ node_material_drop_poll()

static bool blender::ed::space_node::node_material_drop_poll ( bContext * C,
wmDrag * drag,
const wmEvent *  )
static

Definition at line 874 of file space_node.cc.

References ID_MA, UI_but_active_drop_name(), and WM_drag_is_ID_type().

Referenced by node_dropboxes().

◆ node_menu_column_foreach_cb()

static void blender::ed::space_node::node_menu_column_foreach_cb ( void * calldata,
int nclass,
const char * name )
static

◆ node_mouse_select()

◆ node_mute_exec()

◆ node_object_drop_poll()

static bool blender::ed::space_node::node_object_drop_poll ( bContext * C,
wmDrag * drag,
const wmEvent *  )
static

Definition at line 854 of file space_node.cc.

References ID_OB, UI_but_active_drop_name(), and WM_drag_is_ID_type().

Referenced by node_dropboxes().

◆ node_offset_apply()

static void blender::ed::space_node::node_offset_apply ( bNode & node,
const float offset_x )
static

◆ node_operatortypes()

void blender::ed::space_node::node_operatortypes ( )

Definition at line 23 of file node_ops.cc.

References NODE_OT_add_collection(), NODE_OT_add_file(), NODE_OT_add_group(), NODE_OT_add_group_asset(), NODE_OT_add_mask(), NODE_OT_add_material(), NODE_OT_add_object(), NODE_OT_add_reroute(), NODE_OT_attach(), NODE_OT_backimage_fit(), NODE_OT_backimage_move(), NODE_OT_backimage_sample(), NODE_OT_backimage_zoom(), NODE_OT_clear_viewer_border(), NODE_OT_clipboard_copy(), NODE_OT_clipboard_paste(), NODE_OT_cryptomatte_layer_add(), NODE_OT_cryptomatte_layer_remove(), NODE_OT_deactivate_viewer(), NODE_OT_default_group_width_set(), NODE_OT_delete(), NODE_OT_delete_reconnect(), NODE_OT_detach(), NODE_OT_duplicate(), NODE_OT_find_node(), NODE_OT_group_edit(), NODE_OT_group_insert(), NODE_OT_group_make(), NODE_OT_group_separate(), NODE_OT_group_ungroup(), NODE_OT_hide_socket_toggle(), NODE_OT_hide_toggle(), NODE_OT_insert_offset(), NODE_OT_join(), NODE_OT_link(), NODE_OT_link_make(), NODE_OT_link_viewer(), NODE_OT_links_cut(), NODE_OT_links_detach(), NODE_OT_links_mute(), NODE_OT_mute_toggle(), NODE_OT_new_node_tree(), NODE_OT_node_copy_color(), NODE_OT_options_toggle(), NODE_OT_output_file_add_socket(), NODE_OT_output_file_move_active_socket(), NODE_OT_output_file_remove_active_socket(), NODE_OT_parent_set(), NODE_OT_preview_toggle(), NODE_OT_read_viewlayers(), NODE_OT_render_changed(), NODE_OT_resize(), NODE_OT_select(), NODE_OT_select_all(), NODE_OT_select_box(), NODE_OT_select_circle(), NODE_OT_select_grouped(), NODE_OT_select_lasso(), NODE_OT_select_linked_from(), NODE_OT_select_linked_to(), NODE_OT_select_same_type_step(), NODE_OT_shader_script_update(), NODE_OT_view_all(), NODE_OT_view_selected(), NODE_OT_viewer_border(), NODE_TYPES_BEGIN, NODE_TYPES_END, and WM_operatortype_append().

◆ node_options_toggle_exec()

static int blender::ed::space_node::node_options_toggle_exec ( bContext * C,
wmOperator *  )
static

◆ node_or_socket_isect_event()

bool blender::ed::space_node::node_or_socket_isect_event ( const bContext & C,
const wmEvent & event )

Definition at line 107 of file node_select.cc.

References is_event_over_node_or_socket().

Referenced by sample_invoke().

◆ NODE_OT_add_collection()

◆ NODE_OT_add_file()

◆ NODE_OT_add_group()

◆ NODE_OT_add_group_asset()

◆ NODE_OT_add_mask()

◆ NODE_OT_add_material()

◆ NODE_OT_add_object()

◆ NODE_OT_add_reroute()

◆ NODE_OT_attach()

◆ NODE_OT_backimage_fit()

◆ NODE_OT_backimage_move()

◆ NODE_OT_backimage_sample()

◆ NODE_OT_backimage_zoom()

◆ NODE_OT_clear_viewer_border()

◆ NODE_OT_clipboard_copy()

void blender::ed::space_node::NODE_OT_clipboard_copy ( wmOperatorType * ot)

◆ NODE_OT_clipboard_paste()

◆ NODE_OT_cryptomatte_layer_add()

◆ NODE_OT_cryptomatte_layer_remove()

◆ NODE_OT_deactivate_viewer()

◆ NODE_OT_default_group_width_set()

◆ NODE_OT_delete()

◆ NODE_OT_delete_reconnect()

◆ NODE_OT_detach()

◆ NODE_OT_duplicate()

◆ NODE_OT_find_node()

◆ NODE_OT_group_edit()

◆ NODE_OT_group_insert()

◆ NODE_OT_group_make()

◆ NODE_OT_group_separate()

◆ NODE_OT_group_ungroup()

◆ NODE_OT_hide_socket_toggle()

◆ NODE_OT_hide_toggle()

◆ NODE_OT_insert_offset()

◆ NODE_OT_join()

◆ NODE_OT_link()

◆ NODE_OT_link_make()

◆ NODE_OT_link_viewer()

◆ NODE_OT_links_cut()

◆ NODE_OT_links_detach()

◆ NODE_OT_links_mute()

◆ NODE_OT_mute_toggle()

◆ NODE_OT_new_node_tree()

◆ NODE_OT_node_copy_color()

◆ NODE_OT_options_toggle()

◆ NODE_OT_output_file_add_socket()

◆ NODE_OT_output_file_move_active_socket()

◆ NODE_OT_output_file_remove_active_socket()

◆ NODE_OT_parent_set()

◆ NODE_OT_preview_toggle()

◆ NODE_OT_read_viewlayers()

void blender::ed::space_node::NODE_OT_read_viewlayers ( wmOperatorType * ot)

◆ NODE_OT_render_changed()

◆ NODE_OT_resize()

◆ NODE_OT_select()

◆ NODE_OT_select_all()

◆ NODE_OT_select_box()

◆ NODE_OT_select_circle()

◆ NODE_OT_select_grouped()

◆ NODE_OT_select_lasso()

◆ NODE_OT_select_linked_from()

◆ NODE_OT_select_linked_to()

◆ NODE_OT_select_same_type_step()

◆ NODE_OT_shader_script_update()

◆ NODE_OT_view_all()

◆ NODE_OT_view_selected()

◆ NODE_OT_viewer_border()

◆ node_output_file_add_socket_exec()

◆ node_output_file_move_active_socket_exec()

◆ node_output_file_remove_active_socket_exec()

◆ node_panel_toggle_button_cb() [1/2]

static void blender::ed::space_node::node_panel_toggle_button_cb ( bContext * C,
void * panel_state_argv,
void * ntree_argv )
static

◆ node_panel_toggle_button_cb() [2/2]

static void blender::ed::space_node::node_panel_toggle_button_cb ( bContext * C,
void * panel_state_argv,
void * ntree_argv )
static

◆ node_parent_offset_apply()

static void blender::ed::space_node::node_parent_offset_apply ( NodeInsertOfsData * data,
bNode * parent,
const float offset_x )
static

◆ node_parent_set_exec()

◆ node_parents_offset_flag_enable_cb()

static bool blender::ed::space_node::node_parents_offset_flag_enable_cb ( bNode * parent,
void *  )
static

Definition at line 2577 of file node_relationships.cc.

References bNode::flag, and NODE_TEST.

Referenced by node_link_insert_offset_ntree().

◆ node_preview_acquire_ibuf()

◆ node_preview_toggle_exec()

static int blender::ed::space_node::node_preview_toggle_exec ( bContext * C,
wmOperator *  )
static

◆ node_previewable()

static bool blender::ed::space_node::node_previewable ( bContext * C)
static

◆ node_property_update_default()

static void blender::ed::space_node::node_property_update_default ( Main * bmain,
Scene * ,
PointerRNA * ptr )
static

◆ node_read_viewlayers_exec()

◆ node_region_listener()

◆ node_release_preview_ibuf()

void blender::ed::space_node::node_release_preview_ibuf ( NestedTreePreviews & tree_previews)

◆ node_remove_existing_links_if_needed()

◆ node_remove_linked()

static void blender::ed::space_node::node_remove_linked ( Main * bmain,
bNodeTree * ntree,
bNode * rem_node )
static

◆ node_render_changed_exec()

◆ node_resize_cancel()

static void blender::ed::space_node::node_resize_cancel ( bContext * C,
wmOperator * op )
static

Definition at line 1096 of file node_edit.cc.

References node_resize_exit().

Referenced by NODE_OT_resize().

◆ node_resize_exit()

◆ node_resize_init()

◆ node_resize_invoke()

◆ node_resize_modal()

◆ node_select_all_exec()

◆ node_select_exec()

static int blender::ed::space_node::node_select_exec ( bContext * C,
wmOperator * op )
static

◆ node_select_grouped_color()

static bool blender::ed::space_node::node_select_grouped_color ( bNodeTree & node_tree,
bNode & node_act )
static

◆ node_select_grouped_exec()

◆ node_select_grouped_name()

static bool blender::ed::space_node::node_select_grouped_name ( bNodeTree & node_tree,
bNode & node_act,
const bool from_right )
static

◆ node_select_grouped_type()

static bool blender::ed::space_node::node_select_grouped_type ( bNodeTree & node_tree,
bNode & node_act )
static

Definition at line 353 of file node_select.cc.

References blender::bke::node_set_selected(), node_tree, SELECT, and bNode::type.

Referenced by node_select_grouped_exec().

◆ node_select_invoke()

static int blender::ed::space_node::node_select_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ node_select_linked_from_exec()

static int blender::ed::space_node::node_select_linked_from_exec ( bContext * C,
wmOperator *  )
static

◆ node_select_linked_to_exec()

◆ node_select_paired()

void blender::ed::space_node::node_select_paired ( bNodeTree & node_tree)

Select nodes that are paired to a selected node.

Definition at line 317 of file node_select.cc.

References blender::bke::all_zone_types(), NODE_SELECT, and node_tree.

Referenced by node_clipboard_copy_exec(), node_delete_exec(), node_delete_reconnect_exec(), and node_duplicate_exec().

◆ node_select_same_type_step_exec()

◆ node_select_single()

◆ node_set_cursor()

◆ node_set_hidden_sockets()

void blender::ed::space_node::node_set_hidden_sockets ( bNode * node,
int set )

Definition at line 1139 of file node_edit.cc.

References LISTBASE_FOREACH, SOCK_HIDDEN, and SOCK_IS_LINKED.

Referenced by node_socket_toggle_exec().

◆ node_shader_buts_displacement()

static void blender::ed::space_node::node_shader_buts_displacement ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 433 of file drawnode.cc.

References DEFAULT_FLAGS, ptr, and uiItemR().

Referenced by node_shader_set_butfunc().

◆ node_shader_buts_glossy()

static void blender::ed::space_node::node_shader_buts_glossy ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 438 of file drawnode.cc.

References DEFAULT_FLAGS, ptr, and uiItemR().

Referenced by node_shader_set_butfunc().

◆ node_shader_buts_scatter()

static void blender::ed::space_node::node_shader_buts_scatter ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 448 of file drawnode.cc.

References DEFAULT_FLAGS, ptr, and uiItemR().

Referenced by node_shader_set_butfunc().

◆ node_shader_buts_tex_environment()

static void blender::ed::space_node::node_shader_buts_tex_environment ( uiLayout * layout,
bContext * C,
PointerRNA * ptr )
static

◆ node_shader_buts_tex_environment_ex()

static void blender::ed::space_node::node_shader_buts_tex_environment_ex ( uiLayout * layout,
bContext * C,
PointerRNA * ptr )
static

Definition at line 424 of file drawnode.cc.

References DEFAULT_FLAGS, IFACE_, ptr, RNA_pointer_get(), uiItemR(), and uiTemplateImage().

Referenced by node_shader_set_butfunc().

◆ node_shader_buts_tex_image()

static void blender::ed::space_node::node_shader_buts_tex_image ( uiLayout * layout,
bContext * C,
PointerRNA * ptr )
static

◆ node_shader_buts_tex_image_ex()

static void blender::ed::space_node::node_shader_buts_tex_image_ex ( uiLayout * layout,
bContext * C,
PointerRNA * ptr )
static

Definition at line 404 of file drawnode.cc.

References ptr, RNA_pointer_get(), and uiTemplateImage().

Referenced by node_shader_set_butfunc().

◆ node_shader_script_update_exec()

◆ node_shader_script_update_poll()

◆ node_shader_script_update_text_recursive()

◆ node_shader_set_butfunc()

◆ node_socket_add_replace()

◆ node_socket_add_tooltip()

void blender::ed::space_node::node_socket_add_tooltip ( const bNodeTree & ntree,
const bNodeSocket & sock,
uiLayout & layout )

◆ node_socket_add_tooltip_in_node_editor()

static void blender::ed::space_node::node_socket_add_tooltip_in_node_editor ( const bNodeSocket & sock,
uiLayout & layout )
static

◆ node_socket_button_label()

static void blender::ed::space_node::node_socket_button_label ( bContext * ,
uiLayout * layout,
PointerRNA * ,
PointerRNA * ,
const char * text )
static

Definition at line 82 of file drawnode.cc.

References uiItemL().

Referenced by ED_init_custom_node_socket_type(), and std_node_socket_draw().

◆ node_socket_calculate_height()

float blender::ed::space_node::node_socket_calculate_height ( const bNodeSocket & socket)

◆ node_socket_color_get()

void blender::ed::space_node::node_socket_color_get ( const bContext & C,
const bNodeTree & ntree,
PointerRNA & node_ptr,
const bNodeSocket & sock,
float r_color[4] )

Usual convention here would be node_socket_get_color(), but that's already used (for setting a color property socket).

Definition at line 1341 of file node_draw.cc.

References BLI_assert, copy_v4_v4(), bNodeTree::id, ptr, RNA_pointer_create(), RNA_struct_is_a(), PointerRNA::type, and bNodeSocket::typeinfo.

Referenced by node_draw_sockets(), node_socket_draw_nested(), and nodelink_get_draw_config().

◆ node_socket_count_links()

static int blender::ed::space_node::node_socket_count_links ( const bNodeTree & ntree,
const bNodeSocket & socket )
static

◆ node_socket_deselect()

void blender::ed::space_node::node_socket_deselect ( bNode * node,
bNodeSocket & sock,
bool deselect_node )

Definition at line 211 of file node_select.cc.

References bNodeSocket::flag, LISTBASE_FOREACH, and SELECT.

Referenced by node_mouse_select(), and node_socket_toggle().

◆ node_socket_disconnect()

static void blender::ed::space_node::node_socket_disconnect ( Main * bmain,
bNodeTree * ntree,
bNode * node_to,
bNodeSocket * sock_to )
static

◆ node_socket_draw() [1/2]

◆ node_socket_draw() [2/2]

static void blender::ed::space_node::node_socket_draw ( const bNodeSocket & sock,
const float color[4],
const float color_outline[4],
const float size,
const float locx,
const float locy,
uint pos_id,
uint col_id,
uint shape_id,
uint size_id,
uint outline_col_id )
static

◆ node_socket_draw_multi_input()

static void blender::ed::space_node::node_socket_draw_multi_input ( uiBlock & block,
const int index_in_tree,
const float2 location,
const float2 draw_size,
const float color[4],
const float color_outline[4],
const float2 tooltip_size )
static

◆ node_socket_draw_nested()

static void blender::ed::space_node::node_socket_draw_nested ( const bContext & C,
const bNodeTree & ntree,
PointerRNA & node_ptr,
uiBlock & block,
const bNodeSocket & sock,
const uint pos_id,
const uint col_id,
const uint shape_id,
const uint size_id,
const uint outline_col_id,
const float size,
const bool selected )
static

◆ node_socket_get_label()

const char * blender::ed::space_node::node_socket_get_label ( const bNodeSocket * socket,
const char * panel_label )

◆ node_socket_get_tooltip()

◆ node_socket_get_translation_context()

static const char * blender::ed::space_node::node_socket_get_translation_context ( const bNodeSocket & socket)
static

◆ node_socket_outline_color_get()

static void blender::ed::space_node::node_socket_outline_color_get ( const bool selected,
const int socket_type,
float r_outline_color[4] )
static

◆ node_socket_remove()

static void blender::ed::space_node::node_socket_remove ( Main * bmain,
bNodeTree * ntree,
bNode * node_to,
bNodeSocket * sock_to )
static

◆ node_socket_select()

void blender::ed::space_node::node_socket_select ( bNode * node,
bNodeSocket & sock )

Definition at line 201 of file node_select.cc.

References bNodeSocket::flag, and SELECT.

Referenced by node_mouse_select(), and node_socket_toggle().

◆ node_socket_template_properties_update()

◆ node_socket_toggle()

static void blender::ed::space_node::node_socket_toggle ( bNode * node,
bNodeSocket & sock,
bool deselect_node )
static

Definition at line 238 of file node_select.cc.

References bNodeSocket::flag, node_socket_deselect(), node_socket_select(), and SELECT.

Referenced by node_mouse_select().

◆ node_socket_toggle_exec()

◆ node_socket_tooltip_set()

static void blender::ed::space_node::node_socket_tooltip_set ( uiBlock & block,
const int socket_index_in_tree,
const float2 location,
const float2 size )
static

◆ node_socket_undefined_draw()

static void blender::ed::space_node::node_socket_undefined_draw ( bContext * ,
uiLayout * layout,
PointerRNA * ,
PointerRNA * ,
const char *  )
static

Definition at line 1026 of file drawnode.cc.

References IFACE_, and uiItemL().

◆ node_socket_undefined_draw_color()

static void blender::ed::space_node::node_socket_undefined_draw_color ( bContext * ,
PointerRNA * ,
PointerRNA * ,
float * r_color )
static

Definition at line 1035 of file drawnode.cc.

◆ node_socket_undefined_draw_color_simple()

static void blender::ed::space_node::node_socket_undefined_draw_color_simple ( const bke::bNodeSocketType * ,
float * r_color )
static

Definition at line 1046 of file drawnode.cc.

◆ node_socket_undefined_interface_draw()

static void blender::ed::space_node::node_socket_undefined_interface_draw ( ID * ,
bNodeTreeInterfaceSocket * ,
bContext * ,
uiLayout * layout )
static

Definition at line 1055 of file drawnode.cc.

References IFACE_, and uiItemL().

◆ node_socket_virtual_draw_color()

static void blender::ed::space_node::node_socket_virtual_draw_color ( bContext * ,
PointerRNA * ,
PointerRNA * ,
float * r_color )
static

Definition at line 1587 of file drawnode.cc.

References copy_v4_v4(), and virtual_node_socket_color.

◆ node_socket_virtual_draw_color_simple()

static void blender::ed::space_node::node_socket_virtual_draw_color_simple ( const bke::bNodeSocketType * ,
float * r_color )
static

Definition at line 1595 of file drawnode.cc.

References copy_v4_v4(), and virtual_node_socket_color.

◆ node_space_blend_read_data()

static void blender::ed::space_node::node_space_blend_read_data ( BlendDataReader * reader,
SpaceLink * sl )
static

◆ node_space_blend_write()

static void blender::ed::space_node::node_space_blend_write ( BlendWriter * writer,
SpaceLink * sl )
static

Definition at line 1373 of file space_node.cc.

References BLO_write_struct, LISTBASE_FOREACH, and SpaceNode::treepath.

◆ node_space_icon_get()

static int blender::ed::space_node::node_space_icon_get ( const ScrArea * area)
static

◆ node_space_name_get()

static blender::StringRefNull blender::ed::space_node::node_space_name_get ( const ScrArea * area)
static

◆ node_space_subtype_get()

static int blender::ed::space_node::node_space_subtype_get ( ScrArea * area)
static

Definition at line 1323 of file space_node.cc.

References rna_node_tree_idname_to_enum(), and SpaceNode::tree_idname.

◆ node_space_subtype_item_extend()

static void blender::ed::space_node::node_space_subtype_item_extend ( bContext * C,
EnumPropertyItem ** item,
int * totitem )
static

◆ node_space_subtype_set()

static void blender::ed::space_node::node_space_subtype_set ( ScrArea * area,
int value )
static

Definition at line 1329 of file space_node.cc.

References ED_node_set_tree_type(), and rna_node_tree_type_from_enum().

◆ node_swap_links()

◆ node_tag_recursive()

static void blender::ed::space_node::node_tag_recursive ( bNode * node)
static

Definition at line 102 of file node_templates.cc.

References LISTBASE_FOREACH, node_tag_recursive(), and NODE_TEST.

Referenced by node_remove_linked(), and node_tag_recursive().

◆ node_template_properties_update()

static void blender::ed::space_node::node_template_properties_update ( blender::bke::bNodeType * ntype)
static

◆ node_texture_buts_bricks()

static void blender::ed::space_node::node_texture_buts_bricks ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 809 of file drawnode.cc.

References col, DEFAULT_FLAGS, IFACE_, ptr, UI_ITEM_R_SLIDER, uiItemR(), and uiLayoutColumn().

Referenced by node_texture_set_butfunc().

◆ node_texture_buts_combsep_color()

static void blender::ed::space_node::node_texture_buts_combsep_color ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 926 of file drawnode.cc.

References DEFAULT_FLAGS, ptr, and uiItemR().

Referenced by node_texture_set_butfunc().

◆ node_texture_buts_image()

static void blender::ed::space_node::node_texture_buts_image ( uiLayout * layout,
bContext * C,
PointerRNA * ptr )
static

Definition at line 909 of file drawnode.cc.

References ptr, and uiTemplateID().

Referenced by node_texture_set_butfunc().

◆ node_texture_buts_image_ex()

static void blender::ed::space_node::node_texture_buts_image_ex ( uiLayout * layout,
bContext * C,
PointerRNA * ptr )
static

◆ node_texture_buts_output()

static void blender::ed::space_node::node_texture_buts_output ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 921 of file drawnode.cc.

References DEFAULT_FLAGS, ptr, and uiItemR().

Referenced by node_texture_set_butfunc().

◆ node_texture_buts_proc()

◆ node_texture_set_butfunc()

◆ node_to_updated_rect()

void blender::ed::space_node::node_to_updated_rect ( const bNode & node,
rctf & r_rect )

◆ node_to_view()

◆ node_toggle_button_cb()

static void blender::ed::space_node::node_toggle_button_cb ( bContext * C,
void * node_argv,
void * op_argv )
static

◆ node_toolbar_region_draw()

static void blender::ed::space_node::node_toolbar_region_draw ( const bContext * C,
ARegion * region )
static

Definition at line 762 of file space_node.cc.

References ED_region_panels().

◆ node_toolbar_region_init()

static void blender::ed::space_node::node_toolbar_region_init ( wmWindowManager * wm,
ARegion * region )
static

◆ node_tree_view_scale()

static float blender::ed::space_node::node_tree_view_scale ( const SpaceNode & snode)
static

The node tree scales both with the view and with the UI.

Definition at line 2133 of file node_draw.cc.

References blender::ed::space_node::SpaceNode_Runtime::aspect, SpaceNode::runtime, and UI_SCALE_FAC.

Referenced by node_draw_basis(), and reroute_node_draw_label().

◆ node_uiblocks_init()

static Array< uiBlock * > blender::ed::space_node::node_uiblocks_init ( const bContext & C,
const Span< bNode * > nodes )
static

◆ node_under_mouse_select()

static bNode * blender::ed::space_node::node_under_mouse_select ( const SpaceNode & snode,
const float2 mouse )
static

◆ node_under_mouse_tweak()

static bool blender::ed::space_node::node_under_mouse_tweak ( const SpaceNode & snode,
const float2 & mouse )
static

◆ node_update_basis()

static void blender::ed::space_node::node_update_basis ( const bContext & C,
const TreeDrawContext & ,
bNodeTree & ntree,
bNode & node,
uiBlock & block )
static

◆ node_update_basis_buttons()

◆ node_update_basis_from_declaration()

◆ node_update_basis_from_socket_lists()

static void blender::ed::space_node::node_update_basis_from_socket_lists ( const bContext & C,
bNodeTree & ntree,
bNode & node,
uiBlock & block,
const int locx,
int & locy )
static

◆ node_update_basis_socket()

◆ node_update_hidden()

static void blender::ed::space_node::node_update_hidden ( bNode & node,
uiBlock & block )
static

Based on settings in node, sets drawing rect info.

Definition at line 1067 of file node_draw.cc.

References cosf, float, HIDDEN_RAD, M_PI, max_ff(), NODE_DY, NODE_SOCKSIZE, node_to_view(), NODE_WIDTH, sinf, and UI_block_bounds_set_explicit().

Referenced by node_update_nodetree().

◆ node_update_nodetree()

static void blender::ed::space_node::node_update_nodetree ( const bContext & C,
TreeDrawContext & tree_draw_ctx,
bNodeTree & ntree,
Span< bNode * > nodes,
Span< uiBlock * > blocks )
static

◆ node_update_panel_items_visibility_recursive()

◆ node_use_aov()

static bool blender::ed::space_node::node_use_aov ( bNodeTree & ntree,
const bNode * node )
static

Definition at line 273 of file node_shader_preview.cc.

References node, node_find_preview_socket(), and socket_use_aov().

Referenced by node_preview_acquire_ibuf().

◆ node_view_all_exec()

static int blender::ed::space_node::node_view_all_exec ( bContext * C,
wmOperator * op )
static

◆ node_view_selected_exec()

static int blender::ed::space_node::node_view_selected_exec ( bContext * C,
wmOperator * op )
static

◆ node_widgets()

◆ nodelink_batch_add_link()

◆ nodelink_batch_draw()

◆ nodelink_batch_end()

void blender::ed::space_node::nodelink_batch_end ( SpaceNode & snode)

Definition at line 2063 of file drawnode.cc.

References g_batch_link, and nodelink_batch_draw().

Referenced by node_draw_nodetree().

◆ nodelink_batch_init()

◆ nodelink_batch_reset()

static void blender::ed::space_node::nodelink_batch_reset ( )
static

Definition at line 1846 of file drawnode.cc.

References g_batch_link, and GPU_vertbuf_attr_get_raw_data().

Referenced by nodelink_batch_draw(), and nodelink_batch_init().

◆ nodelink_batch_start()

void blender::ed::space_node::nodelink_batch_start ( SpaceNode & )

Definition at line 2058 of file drawnode.cc.

References g_batch_link.

Referenced by node_draw_nodetree().

◆ nodelink_get_color_id()

static char blender::ed::space_node::nodelink_get_color_id ( int th_col)
static

Definition at line 2006 of file drawnode.cc.

References TH_ACTIVE, TH_EDGE_SELECT, TH_REDALERT, TH_WIRE, and TH_WIRE_INNER.

Referenced by nodelink_batch_add_link(), and nodelink_batch_draw().

◆ nodelink_get_draw_config()

static NodeLinkDrawConfig blender::ed::space_node::nodelink_get_draw_config ( const bContext & C,
const View2D & v2d,
const SpaceNode & snode,
const bNodeLink & link,
const int th_col1,
const int th_col2,
const int th_col3,
const bool selected )
static

Definition at line 2180 of file drawnode.cc.

References blender::ColorRGBA< ChannelStorageType, Space, Alpha >::a, copy_v4_v4(), blender::ed::space_node::NodeLinkDrawConfig::dash_alpha, ThemeSpace::dash_alpha, blender::ed::space_node::NodeLinkDrawConfig::dash_factor, blender::ed::space_node::NodeLinkDrawConfig::dash_length, blender::ed::space_node::NodeLinkDrawConfig::dim_factor, blender::ed::space_node::NodeLinkDrawConfig::drawarrow, blender::ed::space_node::NodeLinkDrawConfig::drawmuted, SpaceNode::edittree, blender::ed::space_node::NodeLinkDrawConfig::end_color, bNodeLink::flag, SpaceNodeOverlay::flag, bNodeLink::fromnode, bNodeLink::fromsock, blender::ed::space_node::NodeLinkDrawConfig::has_back_link, blender::ed::space_node::NodeLinkDrawConfig::highlighted, interp_v3_v3v3(), LINK_WIDTH, max_ff(), node_link_dim_factor(), node_link_is_field_link(), node_link_is_gizmo_link(), NODE_LINK_MUTED, NODE_LINK_TEMP_HIGHLIGHT, NODE_REROUTE, node_socket_color_get(), node_tree, blender::ed::space_node::NodeLinkDrawConfig::outline_color, SpaceNode::overlay, RNA_pointer_create(), SN_OVERLAY_SHOW_OVERLAYS, SN_OVERLAY_SHOW_WIRE_COLORS, bTheme::space_node, blender::ed::space_node::NodeLinkDrawConfig::start_color, blender::ed::space_node::NodeLinkDrawConfig::th_col1, blender::ed::space_node::NodeLinkDrawConfig::th_col2, blender::ed::space_node::NodeLinkDrawConfig::th_col3, TH_EDGE_SELECT, TH_SELECT, blender::ed::space_node::NodeLinkDrawConfig::thickness, bNodeLink::tonode, bNodeLink::tosock, bNode::type, UI_GetTheme(), UI_GetThemeColor4fv(), UI_SCALE_FAC, and UI_view2d_scale_get_x().

Referenced by node_draw_link_bezier(), and node_draw_link_dragged().

◆ nodes_are_same_type_for_select()

static bool blender::ed::space_node::nodes_are_same_type_for_select ( const bNode & a,
const bNode & b )
static

Definition at line 1258 of file node_select.cc.

References b.

Referenced by node_select_same_type_step_exec().

◆ nodetree_previews_break()

static bool blender::ed::space_node::nodetree_previews_break ( void * spv)
static

◆ pick_input_link_by_link_intersect()

◆ pick_link()

◆ position_node_based_on_mouse()

static void blender::ed::space_node::position_node_based_on_mouse ( bNode & node,
const float2 & location )
static

Definition at line 65 of file node_add.cc.

References NODE_DY, and UI_SCALE_FAC.

Referenced by add_node(), and add_static_node().

◆ prefer_node_for_interface_name()

static bool blender::ed::space_node::prefer_node_for_interface_name ( const bNode & node)
static

The output sockets of group nodes usually have consciously given names so they have precedence over socket names the link points to.

Definition at line 862 of file node_group.cc.

Referenced by add_interface_from_socket().

◆ prepare_viewlayer_update()

◆ preview_prepare_scene()

◆ preview_render()

◆ push_compute_context_for_tree_path()

◆ realtime_compositor_is_in_use()

◆ remap_node_pairing()

◆ remap_pairing()

◆ reroute_node_draw()

static void blender::ed::space_node::reroute_node_draw ( const bContext & C,
TreeDrawContext & tree_draw_ctx,
ARegion & region,
const SpaceNode & snode,
bNodeTree & ntree,
const bNode & node,
uiBlock & block )
static

◆ reroute_node_draw_label()

◆ reroute_node_get_auto_label()

◆ reroute_node_get_linked_reroute()

static const bNode * blender::ed::space_node::reroute_node_get_linked_reroute ( const bNode & reroute)
static

Returns the reroute node linked to the input of the given reroute, if there is one.

Definition at line 4276 of file node_draw.cc.

References BLI_assert, bNodeLink::fromnode, and reroute_node_get_linked_reroute().

Referenced by reroute_node_get_auto_label(), and reroute_node_get_linked_reroute().

◆ reroute_node_prepare_for_draw()

static void blender::ed::space_node::reroute_node_prepare_for_draw ( bNode & node)
static

Definition at line 4019 of file node_draw.cc.

References node_to_view(), and size().

Referenced by node_update_nodetree().

◆ row_from_used_named_attribute()

◆ sample_apply()

◆ sample_cancel()

static void blender::ed::space_node::sample_cancel ( bContext * C,
wmOperator * op )
static

Definition at line 695 of file node_view.cc.

References sample_exit().

Referenced by NODE_OT_backimage_sample().

◆ sample_draw()

◆ sample_exit()

◆ sample_invoke()

◆ sample_modal()

static int blender::ed::space_node::sample_modal ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ search_link_ops_for_asset_metadata()

◆ send_notifiers_after_tree_change()

static void blender::ed::space_node::send_notifiers_after_tree_change ( ID * id,
bNodeTree * ntree )
static

◆ set_nodelink_vertex()

static void blender::ed::space_node::set_nodelink_vertex ( gpu::VertBuf * vbo,
uint uv_id,
uint pos_id,
uint exp_id,
uint v,
const uchar uv[2],
const float pos[2],
const float exp[2] )
static

Definition at line 1871 of file drawnode.cc.

References exp(), GPU_vertbuf_attr_set(), pos, and v.

Referenced by nodelink_batch_init().

◆ shader_preview_free()

◆ shader_preview_startjob()

static void blender::ed::space_node::shader_preview_startjob ( void * customdata,
wmJobWorkerStatus * worker_status )
static

◆ should_create_drag_link_search_menu()

◆ snode_autoconnect()

◆ snode_autoconnect_input()

static bool blender::ed::space_node::snode_autoconnect_input ( SpaceNode & snode,
bNode * node_fr,
bNodeSocket * sock_fr,
bNode * node_to,
bNodeSocket * sock_to,
int replace )
static

◆ snode_bg_viewmove_cancel()

static void blender::ed::space_node::snode_bg_viewmove_cancel ( bContext * ,
wmOperator * op )
static

Definition at line 304 of file node_view.cc.

References wmOperator::customdata, and MEM_freeN().

Referenced by NODE_OT_backimage_move().

◆ snode_bg_viewmove_invoke()

◆ snode_bg_viewmove_modal()

◆ snode_set_context()

◆ snode_setup_v2d()

static void blender::ed::space_node::snode_setup_v2d ( SpaceNode & snode,
ARegion & region,
const float2 & center )
static

◆ socket_is_available()

static bool blender::ed::space_node::socket_is_available ( bNodeTree * ,
bNodeSocket * sock,
const bool allow_used )
static

◆ socket_is_occluded()

static bool blender::ed::space_node::socket_is_occluded ( const float2 & location,
const bNode & node_the_socket_belongs_to,
const Span< bNode * > sorted_nodes )
static

◆ socket_link_connection_location()

static float2 blender::ed::space_node::socket_link_connection_location ( const bNode & node,
const bNodeSocket & socket,
const bNodeLink & link )
static

◆ socket_needs_attribute_search()

static bool blender::ed::space_node::socket_needs_attribute_search ( bNode & node,
bNodeSocket & socket )
static

◆ socket_use_aov()

static bool blender::ed::space_node::socket_use_aov ( const bNodeSocket * socket)
static

Definition at line 268 of file node_shader_preview.cc.

References SOCK_SHADER, and bNodeSocket::type.

Referenced by node_use_aov(), and shader_preview_startjob().

◆ sort_multi_input_socket_links_with_drag()

◆ space_node_active_view_poll()

static bool blender::ed::space_node::space_node_active_view_poll ( bContext * C)
static

◆ space_node_composite_active_view_poll()

static bool blender::ed::space_node::space_node_composite_active_view_poll ( bContext * C)
static

◆ space_node_group_offset()

float2 blender::ed::space_node::space_node_group_offset ( const SpaceNode & snode)

Transform between View2Ds in the tree path.

Definition at line 241 of file space_node.cc.

References ListBase::last, bNodeTreePath::prev, SpaceNode::treepath, and bNodeTreePath::view_center.

Referenced by node_group_separate_exec().

◆ space_node_view_flag()

◆ std_node_socket_color_fn()

template<int socket_type>
void blender::ed::space_node::std_node_socket_color_fn ( bContext * ,
PointerRNA * ,
PointerRNA * ,
float * r_color )

Definition at line 1134 of file drawnode.cc.

References copy_v4_v4(), and std_node_socket_colors.

◆ std_node_socket_color_simple_fn()

static void blender::ed::space_node::std_node_socket_color_simple_fn ( const bke::bNodeSocketType * type,
float * r_color )
static

Definition at line 1141 of file drawnode.cc.

References copy_v4_v4(), and std_node_socket_colors.

◆ std_node_socket_draw()

◆ std_node_socket_interface_draw()

◆ target_for_reroute()

static const bNodeSocket * blender::ed::space_node::target_for_reroute ( const bNodeSocket & reroute_output)
static

◆ tree_draw_order_calc_nodes()

Array< bNode * > blender::ed::space_node::tree_draw_order_calc_nodes ( bNodeTree & ntree)

Return the nodes in draw order, with the top nodes at the end.

Definition at line 314 of file node_draw.cc.

References b.

Referenced by draw_nodetree().

◆ tree_draw_order_calc_nodes_reversed()

Array< bNode * > blender::ed::space_node::tree_draw_order_calc_nodes_reversed ( bNodeTree & ntree)

Return the nodes in reverse draw order, with the top nodes at the start.

Definition at line 326 of file node_draw.cc.

References b.

Referenced by find_node_under_cursor(), node_attach_invoke(), node_find_frame_to_attach(), node_find_indicated_socket(), node_link_insert_offset_ntree(), node_under_mouse_select(), and node_under_mouse_tweak().

◆ tree_draw_order_update()

◆ two_xy_from_rect()

static void blender::ed::space_node::two_xy_from_rect ( NodeTwoXYs * nxy,
const rctf * rect,
const float2 & dims,
const float2 & offset,
bool is_relative )
static

◆ two_xy_to_rect()

static void blender::ed::space_node::two_xy_to_rect ( const NodeTwoXYs * nxy,
const float2 & dims,
const float2 offset,
bool is_relative,
rctf * r_rect )
static

◆ ui_compatible_sockets()

static int blender::ed::space_node::ui_compatible_sockets ( int typeA,
int typeB )
static

Definition at line 466 of file node_templates.cc.

Referenced by ui_node_menu_column().

◆ ui_node_draw_input()

◆ ui_node_draw_node()

static void blender::ed::space_node::ui_node_draw_node ( uiLayout & layout,
bContext & C,
bNodeTree & ntree,
bNode & node,
int depth )
static

◆ ui_node_draw_panel()

◆ ui_node_item_name_compare()

static int blender::ed::space_node::ui_node_item_name_compare ( const void * a,
const void * b )
static

Definition at line 471 of file node_templates.cc.

References b, BLI_strcasecmp_natural(), and blender::bke::bNodeType::ui_name.

Referenced by ui_node_menu_column().

◆ ui_node_item_special_poll()

static bool blender::ed::space_node::ui_node_item_special_poll ( const bNodeTree * ,
const bke::bNodeType * ntype )
static

Definition at line 478 of file node_templates.cc.

References blender::bke::bNodeType::idname, and STREQ.

Referenced by ui_node_menu_column().

◆ ui_node_link()

◆ ui_node_link_items()

◆ ui_node_menu_column()

◆ ui_node_sock_name()

static void blender::ed::space_node::ui_node_sock_name ( const bNodeTree * ntree,
bNodeSocket * sock,
char name[UI_MAX_NAME_STR] )
static

◆ ui_template_node_asset_menu_items()

◆ ui_template_node_link_menu()

◆ update_multi_input_indices_for_removed_links()

◆ update_needed_flag()

◆ update_nested_node_refs_after_moving_nodes_into_group()

◆ update_nested_node_refs_after_ungroup()

static void blender::ed::space_node::update_nested_node_refs_after_ungroup ( bNodeTree & ntree,
const bNodeTree & ngroup,
const bNode & gnode,
const Map< int32_t, int32_t > & node_identifier_map )
static

◆ viewer_border_corner_to_backdrop()

static void blender::ed::space_node::viewer_border_corner_to_backdrop ( SpaceNode * snode,
ARegion * region,
int x,
int y,
int backdrop_width,
int backdrop_height,
float * fx,
float * fy )
static

Definition at line 2377 of file node_edit.cc.

References float, SpaceNode::xof, SpaceNode::yof, and SpaceNode::zoom.

Referenced by viewer_border_exec().

◆ viewer_border_exec()

◆ WIDGETGROUP_node_corner_pin_draw_prepare()

◆ WIDGETGROUP_node_corner_pin_poll()

static bool blender::ed::space_node::WIDGETGROUP_node_corner_pin_poll ( const bContext * C,
wmGizmoGroupType *  )
static

◆ WIDGETGROUP_node_corner_pin_refresh()

◆ WIDGETGROUP_node_corner_pin_setup()

static void blender::ed::space_node::WIDGETGROUP_node_corner_pin_setup ( const bContext * ,
wmGizmoGroup * gzgroup )
static

◆ WIDGETGROUP_node_crop_draw_prepare()

static void blender::ed::space_node::WIDGETGROUP_node_crop_draw_prepare ( const bContext * C,
wmGizmoGroup * gzgroup )
static

◆ WIDGETGROUP_node_crop_poll()

static bool blender::ed::space_node::WIDGETGROUP_node_crop_poll ( const bContext * C,
wmGizmoGroupType *  )
static

◆ WIDGETGROUP_node_crop_refresh()

◆ WIDGETGROUP_node_crop_setup()

◆ WIDGETGROUP_node_sbeam_draw_prepare()

◆ WIDGETGROUP_node_sbeam_poll()

static bool blender::ed::space_node::WIDGETGROUP_node_sbeam_poll ( const bContext * C,
wmGizmoGroupType *  )
static

◆ WIDGETGROUP_node_sbeam_refresh()

◆ WIDGETGROUP_node_sbeam_setup()

static void blender::ed::space_node::WIDGETGROUP_node_sbeam_setup ( const bContext * ,
wmGizmoGroup * gzgroup )
static

◆ WIDGETGROUP_node_transform_poll()

static bool blender::ed::space_node::WIDGETGROUP_node_transform_poll ( const bContext * C,
wmGizmoGroupType *  )
static

◆ WIDGETGROUP_node_transform_refresh()

◆ WIDGETGROUP_node_transform_setup()

static void blender::ed::space_node::WIDGETGROUP_node_transform_setup ( const bContext * ,
wmGizmoGroup * gzgroup )
static

Variable Documentation

◆ arrow_expand_axis

float blender::ed::space_node::arrow_expand_axis[3][2] = {{0.7071f, 0.7071f}, {M_SQRT2, 0.0f}, {0.7071f, -0.7071f}}
static

Definition at line 1821 of file drawnode.cc.

Referenced by nodelink_batch_init().

◆ arrow_verts

float blender::ed::space_node::arrow_verts[3][2] = {{-1.0f, 1.0f}, {0.0f, 0.0f}, {-1.0f, -1.0f}}
static

Definition at line 1820 of file drawnode.cc.

Referenced by nodelink_batch_init().

◆ batch

gpu::Batch* blender::ed::space_node::batch

Definition at line 1827 of file drawnode.cc.

Referenced by node_draw_link_bezier_ex().

◆ batch_single

gpu::Batch* blender::ed::space_node::batch_single

Definition at line 1828 of file drawnode.cc.

◆ colid_id

uint blender::ed::space_node::colid_id

Definition at line 1831 of file drawnode.cc.

◆ colid_step

GPUVertBufRaw blender::ed::space_node::colid_step

Definition at line 1837 of file drawnode.cc.

◆ count

uint blender::ed::space_node::count

Definition at line 1842 of file drawnode.cc.

Referenced by node_socket_count_links().

◆ dash_params_id

uint blender::ed::space_node::dash_params_id

Definition at line 1834 of file drawnode.cc.

◆ dash_params_step

GPUVertBufRaw blender::ed::space_node::dash_params_step

Definition at line 1840 of file drawnode.cc.

◆ dim_factor_id

uint blender::ed::space_node::dim_factor_id

Definition at line 1832 of file drawnode.cc.

◆ dim_factor_step

GPUVertBufRaw blender::ed::space_node::dim_factor_step

Definition at line 1838 of file drawnode.cc.

◆ enabled

bool blender::ed::space_node::enabled

Definition at line 1843 of file drawnode.cc.

◆ end_color_id

uint blender::ed::space_node::end_color_id

Definition at line 1831 of file drawnode.cc.

◆ end_color_step

GPUVertBufRaw blender::ed::space_node::end_color_step

Definition at line 1837 of file drawnode.cc.

◆ [struct]

◆ has_back_link_id

uint blender::ed::space_node::has_back_link_id

Definition at line 1835 of file drawnode.cc.

◆ has_back_link_step

GPUVertBufRaw blender::ed::space_node::has_back_link_step

Definition at line 1841 of file drawnode.cc.

◆ inst_vbo

gpu::VertBuf* blender::ed::space_node::inst_vbo

Definition at line 1829 of file drawnode.cc.

◆ mute_expand_axis

float blender::ed::space_node::mute_expand_axis[3][2] = {{1.0f, 0.0f}, {1.0f, 0.0f}, {1.0f, -0.0f}}
static

Definition at line 1823 of file drawnode.cc.

Referenced by nodelink_batch_init().

◆ mute_verts

float blender::ed::space_node::mute_verts[3][2] = {{0.7071f, 1.0f}, {0.7071f, 0.0f}, {0.7071f, -1.0f}}
static

Definition at line 1822 of file drawnode.cc.

Referenced by nodelink_batch_init().

◆ muted_id

uint blender::ed::space_node::muted_id

Definition at line 1831 of file drawnode.cc.

◆ muted_step

GPUVertBufRaw blender::ed::space_node::muted_step

Definition at line 1837 of file drawnode.cc.

◆ node_group_separate_types

const EnumPropertyItem blender::ed::space_node::node_group_separate_types[]
static
Initial value:
= {
{NODE_GS_COPY, "COPY", 0, "Copy", "Copy to parent node tree, keep group intact"},
{NODE_GS_MOVE, "MOVE", 0, "Move", "Move to parent node tree, remove from group"},
{0, nullptr, 0, nullptr, nullptr},
}

Definition at line 627 of file node_group.cc.

Referenced by NODE_OT_group_separate().

◆ p0_id

uint blender::ed::space_node::p0_id

Definition at line 1830 of file drawnode.cc.

◆ p0_step

GPUVertBufRaw blender::ed::space_node::p0_step

Definition at line 1836 of file drawnode.cc.

◆ p1_id

uint blender::ed::space_node::p1_id

Definition at line 1830 of file drawnode.cc.

◆ p1_step

GPUVertBufRaw blender::ed::space_node::p1_step

Definition at line 1836 of file drawnode.cc.

◆ p2_id

uint blender::ed::space_node::p2_id

Definition at line 1830 of file drawnode.cc.

◆ p2_step

GPUVertBufRaw blender::ed::space_node::p2_step

Definition at line 1836 of file drawnode.cc.

◆ p3_id

uint blender::ed::space_node::p3_id

Definition at line 1830 of file drawnode.cc.

◆ p3_step

GPUVertBufRaw blender::ed::space_node::p3_step

Definition at line 1836 of file drawnode.cc.

◆ start_color_id

uint blender::ed::space_node::start_color_id

Definition at line 1831 of file drawnode.cc.

◆ start_color_step

GPUVertBufRaw blender::ed::space_node::start_color_step

Definition at line 1837 of file drawnode.cc.

◆ std_node_socket_color_funcs

const SocketColorFn blender::ed::space_node::std_node_socket_color_funcs[]
static
Initial value:
= {
std_node_socket_color_fn<SOCK_FLOAT>,
std_node_socket_color_fn<SOCK_VECTOR>,
std_node_socket_color_fn<SOCK_RGBA>,
std_node_socket_color_fn<SOCK_SHADER>,
std_node_socket_color_fn<SOCK_BOOLEAN>,
nullptr ,
std_node_socket_color_fn<SOCK_INT>,
std_node_socket_color_fn<SOCK_STRING>,
std_node_socket_color_fn<SOCK_OBJECT>,
std_node_socket_color_fn<SOCK_IMAGE>,
std_node_socket_color_fn<SOCK_GEOMETRY>,
std_node_socket_color_fn<SOCK_COLLECTION>,
std_node_socket_color_fn<SOCK_TEXTURE>,
std_node_socket_color_fn<SOCK_MATERIAL>,
std_node_socket_color_fn<SOCK_ROTATION>,
std_node_socket_color_fn<SOCK_MENU>,
std_node_socket_color_fn<SOCK_MATRIX>,
}

Definition at line 1148 of file drawnode.cc.

◆ std_node_socket_colors

const float blender::ed::space_node::std_node_socket_colors[][4]
static
Initial value:
= {
{0.63, 0.63, 0.63, 1.0},
{0.39, 0.39, 0.78, 1.0},
{0.78, 0.78, 0.16, 1.0},
{0.39, 0.78, 0.39, 1.0},
{0.80, 0.65, 0.84, 1.0},
{0.0, 0.0, 0.0, 0.0},
{0.35, 0.55, 0.36, 1.0},
{0.44, 0.70, 1.00, 1.0},
{0.93, 0.62, 0.36, 1.0},
{0.39, 0.22, 0.39, 1.0},
{0.00, 0.84, 0.64, 1.0},
{0.96, 0.96, 0.96, 1.0},
{0.62, 0.31, 0.64, 1.0},
{0.92, 0.46, 0.51, 1.0},
{0.65, 0.39, 0.78, 1.0},
{0.40, 0.40, 0.40, 1.0},
{0.72, 0.20, 0.52, 1.0},
}

Definition at line 1112 of file drawnode.cc.

Referenced by std_node_socket_color_fn(), and std_node_socket_color_simple_fn().

◆ thickness_id

uint blender::ed::space_node::thickness_id

Definition at line 1833 of file drawnode.cc.

◆ thickness_step

GPUVertBufRaw blender::ed::space_node::thickness_step

Definition at line 1839 of file drawnode.cc.

◆ virtual_node_socket_color

const float blender::ed::space_node::virtual_node_socket_color[4] = {0.2, 0.2, 0.2, 1.0}
static

◆ virtual_node_socket_outline_color

const float blender::ed::space_node::virtual_node_socket_outline_color[4] = {0.5, 0.5, 0.5, 1.0}
static

Definition at line 1321 of file node_draw.cc.

Referenced by node_socket_outline_color_get().