Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2019-03-11 18:49:29 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2019-03-11 19:08:30 +0300
commit1bc8ddbc6ce4c80919640aee9a29da63d8f6b442 (patch)
tree21b6ac87f820be6da306ba96b94e5d3b3d511e01
parent19af5bd57e930cc9a2bf73ac9010425338437faf (diff)
Fix T62310: Batch generate data-block previews broken.
Some uninitialized colormanagement data was breaking RNA acces for them, exposed in batch preview management when generating previews for scenes because we have to backup/restore scene and all its settings before/after rendering it...
-rw-r--r--source/blender/blenkernel/BKE_blender_version.h2
-rw-r--r--source/blender/blenkernel/intern/scene.c12
-rw-r--r--source/blender/blenloader/intern/versioning_280.c20
3 files changed, 33 insertions, 1 deletions
diff --git a/source/blender/blenkernel/BKE_blender_version.h b/source/blender/blenkernel/BKE_blender_version.h
index e82efac3891..75104999402 100644
--- a/source/blender/blenkernel/BKE_blender_version.h
+++ b/source/blender/blenkernel/BKE_blender_version.h
@@ -24,7 +24,7 @@
* and keep comment above the defines.
* Use STRINGIFY() rather than defining with quotes */
#define BLENDER_VERSION 280
-#define BLENDER_SUBVERSION 47
+#define BLENDER_SUBVERSION 48
/* Several breakages with 280, e.g. collections vs layers */
#define BLENDER_MINVERSION 280
#define BLENDER_MINSUBVERSION 0
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index abe0393f582..580d99e9042 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -780,6 +780,18 @@ void BKE_scene_init(Scene *sce)
BLI_strncpy(sce->sequencer_colorspace_settings.name, colorspace_name,
sizeof(sce->sequencer_colorspace_settings.name));
+ /* Those next two sets (render and baking settings) are not currently in use,
+ * but are exposed to RNA API and hence must have valid data. */
+ BKE_color_managed_display_settings_init(&sce->r.im_format.display_settings);
+ BKE_color_managed_view_settings_init_render(&sce->r.im_format.view_settings,
+ &sce->r.im_format.display_settings,
+ "Filmic");
+
+ BKE_color_managed_display_settings_init(&sce->r.bake.im_format.display_settings);
+ BKE_color_managed_view_settings_init_render(&sce->r.bake.im_format.view_settings,
+ &sce->r.bake.im_format.display_settings,
+ "Filmic");
+
/* Safe Areas */
copy_v2_fl2(sce->safe_areas.title, 10.0f / 100.0f, 5.0f / 100.0f);
copy_v2_fl2(sce->safe_areas.action, 3.5f / 100.0f, 3.5f / 100.0f);
diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index 3832b671b24..98277bab2a3 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -2874,6 +2874,26 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
}
}
+ if (!MAIN_VERSION_ATLEAST(bmain, 280, 48)) {
+ for (Scene *scene = bmain->scenes.first; scene; scene = scene->id.next) {
+ /* Those are not currently used, but are accessible through RNA API and were not
+ * properly initialized previously. This is mere copy of BKE_init_scene() code. */
+ if (scene->r.im_format.view_settings.look[0] == '\0') {
+ BKE_color_managed_display_settings_init(&scene->r.im_format.display_settings);
+ BKE_color_managed_view_settings_init_render(&scene->r.im_format.view_settings,
+ &scene->r.im_format.display_settings,
+ "Filmic");
+ }
+
+ if (scene->r.bake.im_format.view_settings.look[0] == '\0') {
+ BKE_color_managed_display_settings_init(&scene->r.bake.im_format.display_settings);
+ BKE_color_managed_view_settings_init_render(&scene->r.bake.im_format.view_settings,
+ &scene->r.bake.im_format.display_settings,
+ "Filmic");
+ }
+ }
+ }
+
{
/* Versioning code until next subversion bump goes here. */
}