From 43f8efbf82dbcea73f2fbbac4babb2efff7efeb8 Mon Sep 17 00:00:00 2001 From: "demeterdzadik@gmail.com" Date: Tue, 10 Oct 2023 16:23:05 +0200 Subject: [PATCH] Partial versioning code, very much WIP Just committing to transfer to another computer. --- .../blenloader/intern/versioning_400.cc | 24 +++++++++++++++++++ .../blenloader/intern/versioning_userdef.cc | 8 ++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/source/blender/blenloader/intern/versioning_400.cc b/source/blender/blenloader/intern/versioning_400.cc index d84f26a8cc2..1e98fd81bb6 100644 --- a/source/blender/blenloader/intern/versioning_400.cc +++ b/source/blender/blenloader/intern/versioning_400.cc @@ -1183,6 +1183,30 @@ static void enable_geometry_nodes_is_modifier(Main &bmain) } } +static void version_bone_color_theme(Main &bmain) +{ + auto version_bone_color = [&](animrig::BoneColor &color) { + // do stuff. + }; + + /* Version pose bone colors. */ + LISTBASE_FOREACH (Object *, ob, &bmain->objects) { + if (ob->type != OB_ARMATURE || !ob->pose) { + continue; + } + + LISTBASE_FOREACH (bPoseChannel *, pchan, &ob->pose->chanbase) { + version_bone_color(pchan->color); + } + } + + /* Version armature bone colors. */ + LISTBASE_FOREACH (bArmature *, arm, &bmain->armatures) { + blender::animrig::ANIM_armature_foreach_bone( + &arm->bonebase, [&](Bone *bone) { version_bone_color(bone->color); }); + } +} + void blo_do_versions_400(FileData *fd, Library * /*lib*/, Main *bmain) { if (!MAIN_VERSION_FILE_ATLEAST(bmain, 400, 1)) { diff --git a/source/blender/blenloader/intern/versioning_userdef.cc b/source/blender/blenloader/intern/versioning_userdef.cc index 4b286a3c0ee..ee718317520 100644 --- a/source/blender/blenloader/intern/versioning_userdef.cc +++ b/source/blender/blenloader/intern/versioning_userdef.cc @@ -66,6 +66,12 @@ /* For versioning we only ever want to manipulate preferences passed in. */ #define U BLI_STATIC_ASSERT(false, "Global 'U' not allowed, only use arguments passed in!") +static void version_bone_color_theme(bTheme *btheme) +{ + /* Reset the bone colors to the new default values. */ + memcpy(btheme->tarm, &U_theme_default.tarm, sizeof(*btheme->tarm) * 20); +} + static void do_versions_theme(const UserDef *userdef, bTheme *btheme) { @@ -380,7 +386,7 @@ static void do_versions_theme(const UserDef *userdef, bTheme *btheme) */ { /* Keep this block, even when empty. */ - memcpy(btheme->tarm, &U_theme_default.tarm, sizeof(*btheme->tarm) * 20); + version_bone_color_theme(btheme); } #undef FROM_DEFAULT_V4_UCHAR