Blender V5.0
versioning_410.cc File Reference
#include "ANIM_armature_iter.hh"
#include "DNA_anim_types.h"
#include "DNA_brush_types.h"
#include "DNA_defaults.h"
#include "DNA_genfile.h"
#include "DNA_lightprobe_types.h"
#include "DNA_material_types.h"
#include "DNA_mesh_types.h"
#include "DNA_modifier_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_sequence_types.h"
#include "BLI_listbase.h"
#include "BLI_math_vector.h"
#include "BLI_multi_value_map.hh"
#include "BLI_string.h"
#include "BLI_string_utf8.h"
#include "BLI_task.hh"
#include "BKE_anim_data.hh"
#include "BKE_armature.hh"
#include "BKE_grease_pencil.hh"
#include "BKE_main.hh"
#include "BKE_nla.hh"
#include "BKE_node.hh"
#include "BKE_node_legacy_types.hh"
#include "BKE_node_runtime.hh"
#include "SEQ_iterator.hh"
#include "SEQ_sequencer.hh"
#include "readfile.hh"
#include "versioning_common.hh"

Go to the source code of this file.

Macros

#define DNA_DEPRECATED_ALLOW
#define DNA_GENFILE_VERSIONING_MACROS

Functions

static void version_nla_tweakmode_incomplete (Main *bmain)
void do_versions_after_linking_410 (FileData *, Main *bmain)
static void versioning_grease_pencil_stroke_radii_scaling (GreasePencil *grease_pencil)
static void versioning_update_noise_texture_node (bNodeTree *ntree)
static void versioning_replace_musgrave_texture_node (bNodeTree *ntree)
static void versioning_replace_splitviewer (bNodeTree *ntree)
static void version_socket_identifier_suffixes_for_dynamic_types (ListBase sockets, const char *separator, const std::optional< int > total=std::nullopt)
static void versioning_nodes_dynamic_sockets (bNodeTree &ntree)
static void versioning_nodes_dynamic_sockets_2 (bNodeTree &ntree)
static void change_input_socket_to_rotation_type (bNodeTree &ntree, bNode &node, bNodeSocket &socket)
static void change_output_socket_to_rotation_type (bNodeTree &ntree, bNode &node, bNodeSocket &socket)
static void version_geometry_nodes_use_rotation_socket (bNodeTree &ntree)
static void fix_geometry_nodes_object_info_scale (bNodeTree &ntree)
static void versioning_fix_socket_subtype_idnames (bNodeTree *ntree)
static bool strip_filter_bilinear_to_auto (Strip *strip, void *)
void blo_do_versions_410 (FileData *fd, Library *, Main *bmain)

Macro Definition Documentation

◆ DNA_DEPRECATED_ALLOW

#define DNA_DEPRECATED_ALLOW

Definition at line 9 of file versioning_410.cc.

◆ DNA_GENFILE_VERSIONING_MACROS

#define DNA_GENFILE_VERSIONING_MACROS

Definition at line 14 of file versioning_410.cc.

Function Documentation

◆ blo_do_versions_410()

void blo_do_versions_410 ( FileData * fd,
Library * lib,
Main * bmain )

NOTE: This versioning code didn't update the subversion number.

Definition at line 851 of file versioning_410.cc.

References all_scenes_use(), blender::animrig::ANIM_armature_foreach_bone(), Main::armatures, Sculpt::automasking_boundary_edges_propagation_steps, Brush::automasking_start_normal_falloff, Brush::automasking_start_normal_limit, Brush::automasking_view_normal_falloff, Brush::automasking_view_normal_limit, BRUSH_DIR_IN, Main::brushes, CMP_NODE_INTERPOLATION_ANISOTROPIC, CMP_NODE_KEYING, CMP_NODE_MAP_UV, CMP_NODE_PIXELATE, ToolSettings::curves_sculpt, LightProbe::data_display_size, DNA_struct_default_get, SceneEEVEE::fast_gi_bias, FileData::filesdna, fix_geometry_nodes_object_info_scale(), FN_NODE_ROTATE_ROTATION, FOREACH_NODETREE_BEGIN, FOREACH_NODETREE_END, blender::seq::foreach_strip(), ToolSettings::gp_paint, ToolSettings::gp_sculptpaint, ToolSettings::gp_vertexpaint, ToolSettings::gp_weightpaint, Main::grease_pencils, i, ToolSettings::imapaint, Main::lightprobes, LISTBASE_FOREACH, MA_BL_TRANSPARENT_SHADOW, MA_BM_BLEND, MA_BS_SOLID, MA_DISPLACEMENT_BUMP, MA_SURFACE_METHOD_DEFERRED, MA_SURFACE_METHOD_FORWARD, MAIN_VERSION_FILE_ATLEAST, Main::materials, max_ii(), ME_NO_OVERLAPPING_TOPOLOGY, Main::meshes, Main::nodetrees, NTREE_COMPOSIT, NTREE_CUSTOM, NTREE_GEOMETRY, Paint::num_input_samples_deprecated, Main::objects, CurvesSculpt::paint, GpPaint::paint, GpSculptPaint::paint, GpVertexPaint::paint, GpWeightPaint::paint, ImagePaintSettings::paint, Sculpt::paint, VPaint::paint, RAYTRACE_EEVEE_DENOISE_BILATERAL, RAYTRACE_EEVEE_DENOISE_SPATIAL, RAYTRACE_EEVEE_DENOISE_TEMPORAL, RAYTRACE_EEVEE_USE_DENOISE, RE_engine_id_BLENDER_EEVEE, RE_engine_id_BLENDER_EEVEE_NEXT, RGN_ALIGN_HIDE_WITH_PREV, RGN_SPLIT_PREV, RGN_TYPE_ASSET_SHELF_HEADER, Main::scenes, Main::screens, ToolSettings::sculpt, SET_FLAG_FROM_TEST, strip_filter_bilinear_to_auto(), version_cycles_properties_from_ID(), version_cycles_property_boolean(), version_cycles_property_int(), version_geometry_nodes_use_rotation_socket(), version_node_socket_name(), versioning_fix_socket_subtype_idnames(), versioning_grease_pencil_stroke_radii_scaling(), versioning_nodes_dynamic_sockets(), versioning_nodes_dynamic_sockets_2(), versioning_replace_musgrave_texture_node(), versioning_replace_splitviewer(), versioning_update_noise_texture_node(), SceneEEVEE::volumetric_ray_depth, ToolSettings::vpaint, and ToolSettings::wpaint.

Referenced by do_versions().

◆ change_input_socket_to_rotation_type()

◆ change_output_socket_to_rotation_type()

◆ do_versions_after_linking_410()

void do_versions_after_linking_410 ( FileData * fd,
Main * bmain )

◆ fix_geometry_nodes_object_info_scale()

◆ strip_filter_bilinear_to_auto()

bool strip_filter_bilinear_to_auto ( Strip * strip,
void *  )
static

◆ version_geometry_nodes_use_rotation_socket()

◆ version_nla_tweakmode_incomplete()

void version_nla_tweakmode_incomplete ( Main * bmain)
static

Exit NLA tweakmode when the AnimData struct has insufficient information.

When NLA tweakmode is enabled, Blender expects certain pointers to be set up correctly, and if that fails, can crash. This function ensures that everything is consistent, by exiting tweakmode everywhere there's missing pointers.

This shouldn't happen, but the example blend file attached to #119615 needs this.

Definition at line 64 of file versioning_410.cc.

References AnimData::act_track, AnimData::actstrip, ADT_NLA_EDIT_ON, BKE_animdata_from_id(), BKE_nla_tweakmode_exit(), AnimData::flag, FOREACH_MAIN_ID_BEGIN, FOREACH_MAIN_ID_END, LISTBASE_FOREACH, SCE_NLA_EDIT_ON, and Main::scenes.

Referenced by do_versions_after_linking_410().

◆ version_socket_identifier_suffixes_for_dynamic_types()

void version_socket_identifier_suffixes_for_dynamic_types ( ListBase sockets,
const char * separator,
const std::optional< int > total = std::nullopt )
static

◆ versioning_fix_socket_subtype_idnames()

void versioning_fix_socket_subtype_idnames ( bNodeTree * ntree)
static

Original node tree interface conversion in did not convert socket idnames with subtype suffixes to correct socket base types (see versioning_convert_node_tree_socket_lists_to_interface).

Definition at line 824 of file versioning_410.cc.

References BLI_strdup(), blender::StringRefBase::data(), bNodeTreeInterfaceItem::item_type, legacy_socket_idname_to_socket_type(), MEM_freeN(), NODE_INTERFACE_SOCKET, bNodeTreeInterfaceSocket::socket_type, and bNodeTree::tree_interface.

Referenced by blo_do_versions_410().

◆ versioning_grease_pencil_stroke_radii_scaling()

void versioning_grease_pencil_stroke_radii_scaling ( GreasePencil * grease_pencil)
static

◆ versioning_nodes_dynamic_sockets()

◆ versioning_nodes_dynamic_sockets_2()

void versioning_nodes_dynamic_sockets_2 ( bNodeTree & ntree)
static

◆ versioning_replace_musgrave_texture_node()

◆ versioning_replace_splitviewer()

◆ versioning_update_noise_texture_node()