Changeset View
Changeset View
Standalone View
Standalone View
source/blender/windowmanager/intern/wm_event_system.c
| Show First 20 Lines • Show All 92 Lines • ▼ Show 20 Lines | |||||
| /* XXX, hack so operators can enforce datamasks [#26482], gl render */ | /* XXX, hack so operators can enforce datamasks [#26482], gl render */ | ||||
| CustomData_MeshMasks_update(&scene->customdata_mask, &scene->customdata_mask_modal); | CustomData_MeshMasks_update(&scene->customdata_mask, &scene->customdata_mask_modal); | ||||
| /* TODO(sergey): For now all dependency graphs which are evaluated from | /* TODO(sergey): For now all dependency graphs which are evaluated from | ||||
| * workspace are considered active. This will work all fine with "locked" | * workspace are considered active. This will work all fine with "locked" | ||||
| * view layer and time across windows. This is to be granted separately, | * view layer and time across windows. This is to be granted separately, | ||||
| * and for until then we have to accept ambiguities when object is shared | * and for until then we have to accept ambiguities when object is shared | ||||
| * across visible view layers and has overrides on it. | * across visible view layers and has overrides on it. | ||||
| */ | */ | ||||
| Depsgraph *depsgraph = BKE_scene_get_depsgraph(bmain, scene, view_layer, true); | Depsgraph *depsgraph = BKE_scene_get_depsgraph(scene, view_layer, true); | ||||
| if (is_after_open_file) { | if (is_after_open_file) { | ||||
| DEG_graph_relations_update(depsgraph, bmain, scene, view_layer); | DEG_graph_relations_update(depsgraph, bmain, scene, view_layer); | ||||
| DEG_graph_on_visible_update(bmain, depsgraph, true); | DEG_graph_on_visible_update(bmain, depsgraph, true); | ||||
| } | } | ||||
| DEG_make_active(depsgraph); | DEG_make_active(depsgraph); | ||||
| BKE_scene_graph_update_tagged(depsgraph, bmain); | BKE_scene_graph_update_tagged(depsgraph, bmain); | ||||
| } | } | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 184 Lines • ▼ Show 20 Lines | |||||
| BLI_assert(WM_window_get_active_scene(win)); | BLI_assert(WM_window_get_active_scene(win)); | ||||
| BLI_assert(WM_window_get_active_screen(win)); | BLI_assert(WM_window_get_active_screen(win)); | ||||
| BLI_assert(WM_window_get_active_workspace(win)); | BLI_assert(WM_window_get_active_workspace(win)); | ||||
| if (screen == NULL) { | if (screen == NULL) { | ||||
| wm_event_free_all(win); | wm_event_free_all(win); | ||||
| } | } | ||||
| else { | else { | ||||
| Main *bmain = CTX_data_main(C); | |||||
| Scene *scene = WM_window_get_active_scene(win); | Scene *scene = WM_window_get_active_scene(win); | ||||
| ViewLayer *view_layer = WM_window_get_active_view_layer(win); | ViewLayer *view_layer = WM_window_get_active_view_layer(win); | ||||
| Depsgraph *depsgraph = BKE_scene_get_depsgraph(bmain, scene, view_layer, false); | Depsgraph *depsgraph = BKE_scene_get_depsgraph(scene, view_layer, false); | ||||
| Scene *scene_eval = (depsgraph != NULL) ? DEG_get_evaluated_scene(depsgraph) : NULL; | Scene *scene_eval = (depsgraph != NULL) ? DEG_get_evaluated_scene(depsgraph) : NULL; | ||||
| if (scene_eval != NULL) { | if (scene_eval != NULL) { | ||||
| const int is_playing_sound = BKE_sound_scene_playing(scene_eval); | const int is_playing_sound = BKE_sound_scene_playing(scene_eval); | ||||
| if (scene_eval->id.recalc & ID_RECALC_AUDIO_SEEK) { | if (scene_eval->id.recalc & ID_RECALC_AUDIO_SEEK) { | ||||
| /* Ignore seek here, the audio will be updated to the scene frame after jump during next | /* Ignore seek here, the audio will be updated to the scene frame after jump during next | ||||
| * dependency graph update. */ | * dependency graph update. */ | ||||
| ▲ Show 20 Lines • Show All 92 Lines • Show Last 20 Lines | |||||