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:
authorSybren A. Stüvel <sybren@blender.org>2019-09-18 16:26:04 +0300
committerSybren A. Stüvel <sybren@blender.org>2019-09-18 18:08:33 +0300
commita9a8eedd163e17fcf345726fd4c4db891771cac8 (patch)
treea217d872be0dff407e287fd6ce6e847606c8378c /source/blender/alembic
parenta1318d241553246c266410eb1ae4ba23e73179e1 (diff)
Fix T65816: Alembic export of procedural mesh results in a static mesh and crashes
The static mesh issue described in T65816 has been resolved by @Sergey in T60094. This commit fixes the last bit of the puzzle, which was two-fold: - A missing depsgraph update when setting `orig_object.data = new_mesh` from Python. Thanks @Sergey for providing the fix :) - Properly locking the interface while exporting. This prevents crashes as described in T60094. The previous approach of calling `BKE_spacedata_draw_locks()` was not enough.
Diffstat (limited to 'source/blender/alembic')
-rw-r--r--source/blender/alembic/intern/alembic_capi.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/source/blender/alembic/intern/alembic_capi.cc b/source/blender/alembic/intern/alembic_capi.cc
index 6547ce54a00..98e5477f2b2 100644
--- a/source/blender/alembic/intern/alembic_capi.cc
+++ b/source/blender/alembic/intern/alembic_capi.cc
@@ -222,6 +222,7 @@ static void find_iobject(const IObject &object, IObject &ret, const std::string
struct ExportJobData {
ViewLayer *view_layer;
Main *bmain;
+ wmWindowManager *wm;
char filename[1024];
ExportSettings settings;
@@ -246,8 +247,7 @@ static void export_startjob(void *customdata, short *stop, short *do_update, flo
* scene frame in separate threads
*/
G.is_rendering = true;
- BKE_spacedata_draw_locks(true);
-
+ WM_set_locked_interface(data->wm, true);
G.is_break = false;
DEG_graph_build_from_view_layer(
@@ -296,7 +296,7 @@ static void export_endjob(void *customdata)
}
G.is_rendering = false;
- BKE_spacedata_draw_locks(false);
+ WM_set_locked_interface(data->wm, false);
}
bool ABC_export(Scene *scene,
@@ -310,6 +310,7 @@ bool ABC_export(Scene *scene,
job->view_layer = CTX_data_view_layer(C);
job->bmain = CTX_data_main(C);
+ job->wm = CTX_wm_manager(C);
job->export_ok = false;
BLI_strncpy(job->filename, filepath, 1024);