Blender
V3.3
|
#include <cstring>
#include "DNA_node_types.h"
#include "DNA_screen_types.h"
#include "BLI_listbase.h"
#include "BLI_string.h"
#include "BLI_string_ref.hh"
#include "BKE_animsys.h"
#include "BKE_lib_id.h"
#include "BKE_main.h"
#include "BKE_main_namemap.h"
#include "BKE_node.h"
#include "MEM_guardedalloc.h"
#include "versioning_common.h"
Go to the source code of this file.
Macros | |
#define | DNA_DEPRECATED_ALLOW |
Functions | |
ARegion * | do_versions_add_region_if_not_found (ListBase *regionbase, int region_type, const char *name, int link_after_region_type) |
ID * | do_versions_rename_id (Main *bmain, const short id_type, const char *name_src, const char *name_dst) |
static void | change_node_socket_name (ListBase *sockets, const char *old_name, const char *new_name) |
void | version_node_socket_id_delim (bNodeSocket *socket) |
void | version_node_socket_name (bNodeTree *ntree, const int node_type, const char *old_name, const char *new_name) |
void | version_node_input_socket_name (bNodeTree *ntree, const int node_type, const char *old_name, const char *new_name) |
void | version_node_output_socket_name (bNodeTree *ntree, const int node_type, const char *old_name, const char *new_name) |
bNodeSocket * | version_node_add_socket_if_not_exist (bNodeTree *ntree, bNode *node, eNodeSocketInOut in_out, int type, int subtype, const char *identifier, const char *name) |
void | version_node_id (bNodeTree *ntree, const int node_type, const char *new_name) |
void | version_node_socket_index_animdata (Main *bmain, const int node_tree_type, const int node_type, const int socket_index_orig, const int socket_index_offset, const int total_number_of_sockets) |
void | version_socket_update_is_used (bNodeTree *ntree) |
ARegion * | do_versions_add_region (int regiontype, const char *name) |
#define DNA_DEPRECATED_ALLOW |
Definition at line 7 of file versioning_common.cc.
|
static |
Definition at line 78 of file versioning_common.cc.
References BLI_strncpy(), LISTBASE_FOREACH, and STREQ.
Referenced by version_node_input_socket_name(), version_node_output_socket_name(), and version_node_socket_name().
ARegion* do_versions_add_region | ( | int | regiontype, |
const char * | name | ||
) |
Definition at line 231 of file versioning_common.cc.
References MEM_callocN, and ARegion::regiontype.
Referenced by blo_do_versions_280(), blo_do_versions_300(), and do_versions_area_ensure_tool_region().
ARegion* do_versions_add_region_if_not_found | ( | ListBase * | regionbase, |
int | region_type, | ||
const char * | name, | ||
int | link_after_region_type | ||
) |
Definition at line 30 of file versioning_common.cc.
References BLI_insertlinkafter(), LISTBASE_FOREACH, MEM_callocN, and ARegion::regiontype.
Referenced by blo_do_versions_290(), and blo_do_versions_300().
ID* do_versions_rename_id | ( | Main * | bmain, |
short | id_type, | ||
const char * | name_src, | ||
const char * | name_dst | ||
) |
Rename if the ID doesn't exist.
Definition at line 51 of file versioning_common.cc.
References BKE_main_namemap_remove_name(), BLI_libblock_ensure_unique_name(), BLI_strncpy(), id, ID_IS_LINKED, LISTBASE_FOREACH, ID::name, STREQ, and which_libbase().
Referenced by BLO_update_defaults_startup_blend(), and do_versions_after_linking_280().
bNodeSocket* version_node_add_socket_if_not_exist | ( | bNodeTree * | ntree, |
bNode * | node, | ||
eNodeSocketInOut | in_out, | ||
int | type, | ||
int | subtype, | ||
const char * | identifier, | ||
const char * | name | ||
) |
Definition at line 148 of file versioning_common.cc.
References node, nodeAddStaticSocket(), nodeFindSocket(), ntree, and type.
Referenced by blo_do_versions_300().
Replace the ID name of all nodes in the tree with the given type with the new name.
Definition at line 163 of file versioning_common.cc.
References LISTBASE_FOREACH, node, bNodeTree::nodes, ntree, and STREQ.
Referenced by blo_do_versions_300().
void version_node_input_socket_name | ( | bNodeTree * | ntree, |
const int | node_type, | ||
const char * | old_name, | ||
const char * | new_name | ||
) |
Definition at line 124 of file versioning_common.cc.
References change_node_socket_name(), LISTBASE_FOREACH, node, bNodeTree::nodes, and ntree.
Referenced by blo_do_versions_300(), and versioning_replace_legacy_combined_and_separate_color_nodes().
void version_node_output_socket_name | ( | bNodeTree * | ntree, |
const int | node_type, | ||
const char * | old_name, | ||
const char * | new_name | ||
) |
Definition at line 136 of file versioning_common.cc.
References change_node_socket_name(), LISTBASE_FOREACH, node, bNodeTree::nodes, and ntree.
Referenced by blo_do_versions_300(), and versioning_replace_legacy_combined_and_separate_color_nodes().
void version_node_socket_id_delim | ( | bNodeSocket * | socket | ) |
Convert SocketName.001
unique name format to SocketName_001
. Previously both were used.
Definition at line 90 of file versioning_common.cc.
References blender::StringRef::drop_known_prefix(), bNodeSocket::identifier, blender::StringRefBase::is_empty(), bNodeSocket::name, blender::StringRefBase::size(), and blender::StringRefBase::startswith().
Referenced by version_node_tree_socket_id_delim().
void version_node_socket_index_animdata | ( | Main * | bmain, |
int | node_tree_type, | ||
int | node_type, | ||
int | socket_index_orig, | ||
int | socket_index_offset, | ||
int | total_number_of_sockets | ||
) |
Adjust animation data for newly added node sockets.
Node sockets are addressed by their index (in their RNA path, and thus FCurves/drivers), and thus when a new node is added in the middle of the list, existing animation data needs to be adjusted.
Since this is about animation data, it only concerns input sockets.
node_tree_type | Node tree type that has these nodes, for example NTREE_SHADER. |
node_type | Node type to adjust, for example SH_NODE_BSDF_PRINCIPLED. |
socket_index_orig | The original index of the moved socket; when socket 4 moved to 6, pass 4 here. |
socket_index_offset | The offset of the nodes, so when socket 4 moved to 6, pass 2 here. |
total_number_of_sockets | The total number of sockets in the node. |
Definition at line 174 of file versioning_common.cc.
References BKE_animdata_fix_paths_rename_all_ex(), BLI_sprintfN(), BLI_str_escape(), FOREACH_NODETREE_BEGIN, FOREACH_NODETREE_END, LISTBASE_FOREACH, MEM_freeN, MEM_mallocN, node, bNodeTree::nodes, ntree, and bNodeTree::type.
Referenced by do_versions_after_linking_290(), and do_versions_after_linking_300().
void version_node_socket_name | ( | bNodeTree * | ntree, |
const int | node_type, | ||
const char * | old_name, | ||
const char * | new_name | ||
) |
Definition at line 111 of file versioning_common.cc.
References change_node_socket_name(), LISTBASE_FOREACH, node, bNodeTree::nodes, and ntree.
Referenced by blo_do_versions_290(), and blo_do_versions_300().
The versioning code generally expects SOCK_IN_USE
to be set correctly. This function updates the flag on all sockets after changes to the node tree.
Definition at line 215 of file versioning_common.cc.
References bNodeTree::links, LISTBASE_FOREACH, node, bNodeTree::nodes, ntree, and SOCK_IN_USE.
Referenced by add_realize_node_tree(), ambient_occlusion_node_relink(), displacement_node_insert(), do_versions_material_convert_legacy_blend_mode(), square_roughness_node_insert(), update_mapping_node_inputs_and_properties(), update_math_node_single_operand_operators(), update_noise_and_wave_distortion(), update_vector_math_node_add_and_subtract_operators(), update_vector_math_node_average_operator(), update_vector_math_node_cross_product_operator(), update_vector_math_node_dot_product_operator(), update_vector_math_node_normalize_operator(), update_voronoi_node_coloring(), update_voronoi_node_crackle(), and update_voronoi_node_square_distance().