From 00dbb53131ae56bb804d337db6915ac8c308c471 Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Thu, 25 Sep 2025 17:57:31 +0200 Subject: [PATCH] UserPreferences: Enable Blendfile Compression By Default. IMPORTANT: This will force-enable this option in user preferences, as part of the 5.0 versioning process. Users that do want to keep saving uncompressed blendfiles will have to edit their user preferences accordingly, and re-save them. This commit does _not_ change the setting for an existing blendfile: uncompressed blendfiles will keep being saved as uncompressed. Implements #135735. Pull Request: https://projects.blender.org/blender/blender/pulls/146172 --- release/datafiles/userdef/userdef_default.c | 2 +- source/blender/blenkernel/BKE_blender_version.h | 2 +- source/blender/blenloader/intern/versioning_userdef.cc | 5 +++++ source/blender/makesdna/DNA_userdef_defaults.h | 2 +- source/blender/makesdna/intern/dna_defaults.c | 3 ++- 5 files changed, 10 insertions(+), 4 deletions(-) diff --git a/release/datafiles/userdef/userdef_default.c b/release/datafiles/userdef/userdef_default.c index 899139e203b..0463399f6ba 100644 --- a/release/datafiles/userdef/userdef_default.c +++ b/release/datafiles/userdef/userdef_default.c @@ -21,7 +21,7 @@ const UserDef U_default = { .versionfile = BLENDER_FILE_VERSION, .subversionfile = BLENDER_FILE_SUBVERSION, .flag = (USER_AUTOSAVE | USER_TOOLTIPS | USER_RELPATHS | USER_RELEASECONFIRM | - USER_SCRIPT_AUTOEXEC_DISABLE), + USER_SCRIPT_AUTOEXEC_DISABLE | USER_FILECOMPRESS), .dupflag = USER_DUP_MESH | USER_DUP_CURVE | USER_DUP_SURF | USER_DUP_LATTICE | USER_DUP_FONT | USER_DUP_MBALL | USER_DUP_LAMP | USER_DUP_ARM | USER_DUP_CAMERA | USER_DUP_SPEAKER | USER_DUP_ACT | USER_DUP_LIGHTPROBE | USER_DUP_GPENCIL | USER_DUP_CURVES | diff --git a/source/blender/blenkernel/BKE_blender_version.h b/source/blender/blenkernel/BKE_blender_version.h index ccfc6883980..663c76d7aaf 100644 --- a/source/blender/blenkernel/BKE_blender_version.h +++ b/source/blender/blenkernel/BKE_blender_version.h @@ -27,7 +27,7 @@ /* Blender file format version. */ #define BLENDER_FILE_VERSION BLENDER_VERSION -#define BLENDER_FILE_SUBVERSION 93 +#define BLENDER_FILE_SUBVERSION 94 /* Minimum Blender version that supports reading file written with the current * version. Older Blender versions will test this and cancel loading the file, showing a warning to diff --git a/source/blender/blenloader/intern/versioning_userdef.cc b/source/blender/blenloader/intern/versioning_userdef.cc index 59b98641050..611a006e9bc 100644 --- a/source/blender/blenloader/intern/versioning_userdef.cc +++ b/source/blender/blenloader/intern/versioning_userdef.cc @@ -1679,6 +1679,11 @@ void blo_do_versions_userdef(UserDef *userdef) userdef, "VIEW3D_AST_brush_texture_paint", "Brushes/Mesh Texture Paint/Utilities"); } + if (!USER_VERSION_ATLEAST(500, 94)) { + /* Force-reset file compression to ON, see #135735. */ + userdef->flag |= USER_FILECOMPRESS; + } + /** * Always bump subversion in BKE_blender_version.h when adding versioning * code here, and wrap it inside a USER_VERSION_ATLEAST check. diff --git a/source/blender/makesdna/DNA_userdef_defaults.h b/source/blender/makesdna/DNA_userdef_defaults.h index d38fe584817..b5aeec7cc17 100644 --- a/source/blender/makesdna/DNA_userdef_defaults.h +++ b/source/blender/makesdna/DNA_userdef_defaults.h @@ -19,7 +19,7 @@ #define _DNA_DEFAULT_bUserAssetLibrary \ { \ .import_method = ASSET_IMPORT_APPEND_REUSE, \ - .flag = ASSET_LIBRARY_RELATIVE_PATH, \ + .flag = ASSET_LIBRARY_RELATIVE_PATH | USER_FILECOMPRESS, \ } /** \} */ diff --git a/source/blender/makesdna/intern/dna_defaults.c b/source/blender/makesdna/intern/dna_defaults.c index e30a3d9c225..4443a6df0fd 100644 --- a/source/blender/makesdna/intern/dna_defaults.c +++ b/source/blender/makesdna/intern/dna_defaults.c @@ -56,7 +56,8 @@ * - When loading old files that don't contain newly added struct members (these will be zeroed) * to set their values use `versioning_{BLENDER_VERSION}.c` source files. * - For startup file data, to update these defaults use - * #BLO_update_defaults_startup_blend & #blo_do_versions_userdef. + * #BLO_update_defaults_startup_blend, #blo_do_versions_userdef, and #U_default or + * #U_theme_default. */ #define DNA_DEPRECATED_ALLOW