From 609ac5e378e19888aed17d62bcb3dd7f06878df4 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 9 Nov 2023 12:42:30 +1100 Subject: [PATCH] Fix crash dragging images into the animation player (again) This was fixed by [0] however that fix didn't account for IMB sometimes freeing GPU resources created by color management (resolved by [1] which effectively reverted [0]). Resolve by re-initializing IMB in the case of drag & drop. [0]: 51467b06112888f01d9d924ac04087745bb26c96 [1]: 05c56603a92b87cea8749fec6dc88200f06d5c7b --- source/blender/windowmanager/intern/wm_playanim.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/blender/windowmanager/intern/wm_playanim.cc b/source/blender/windowmanager/intern/wm_playanim.cc index 0b2f43e8d4d..f09d3dca049 100644 --- a/source/blender/windowmanager/intern/wm_playanim.cc +++ b/source/blender/windowmanager/intern/wm_playanim.cc @@ -2070,7 +2070,7 @@ static char *wm_main_playanim_intern(int argc, const char **argv) BLF_exit(); /* NOTE: Must happen before GPU Context destruction as GPU resources are released via - * Colour Management module. */ + * Color Management module. Must be re-initialized in the case of drag & drop. */ IMB_exit(); if (ps.ghost_data.gpu_context) { @@ -2086,6 +2086,9 @@ static char *wm_main_playanim_intern(int argc, const char **argv) /* early exit, IMB and BKE should be exited only in end */ if (ps.dropped_file[0]) { + /* Ensure drag & drop runs with a valid IMB state. */ + IMB_init(); + STRNCPY(filepath, ps.dropped_file); return filepath; }