Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/screen/screen_edit.c
| Show First 20 Lines • Show All 1,297 Lines • ▼ Show 20 Lines | if (screen_new) { | ||||
| screen_changed_update(C, win, screen_new); | screen_changed_update(C, win, screen_new); | ||||
| return true; | return true; | ||||
| } | } | ||||
| return false; | return false; | ||||
| } | } | ||||
| static void screen_set_3dview_camera(Scene *scene, SceneLayer *scene_layer, ScrArea *sa, View3D *v3d) | static void screen_set_3dview_camera(Scene *scene, ViewLayer *view_layer, ScrArea *sa, View3D *v3d) | ||||
| { | { | ||||
| /* fix any cameras that are used in the 3d view but not in the scene */ | /* fix any cameras that are used in the 3d view but not in the scene */ | ||||
| BKE_screen_view3d_sync(v3d, scene); | BKE_screen_view3d_sync(v3d, scene); | ||||
| if (!v3d->camera || !BKE_scene_layer_base_find(scene_layer, v3d->camera)) { | if (!v3d->camera || !BKE_view_layer_base_find(view_layer, v3d->camera)) { | ||||
| v3d->camera = BKE_scene_layer_camera_find(scene_layer); | v3d->camera = BKE_view_layer_camera_find(view_layer); | ||||
| // XXX if (sc == curscreen) handle_view3d_lock(); | // XXX if (sc == curscreen) handle_view3d_lock(); | ||||
| if (!v3d->camera) { | if (!v3d->camera) { | ||||
| ARegion *ar; | ARegion *ar; | ||||
| ListBase *regionbase; | ListBase *regionbase; | ||||
| /* regionbase is in different place depending if space is active */ | /* regionbase is in different place depending if space is active */ | ||||
| if (v3d == sa->spacedata.first) | if (v3d == sa->spacedata.first) | ||||
| regionbase = &sa->regionbase; | regionbase = &sa->regionbase; | ||||
| else | else | ||||
| regionbase = &v3d->regionbase; | regionbase = &v3d->regionbase; | ||||
| for (ar = regionbase->first; ar; ar = ar->next) { | for (ar = regionbase->first; ar; ar = ar->next) { | ||||
| if (ar->regiontype == RGN_TYPE_WINDOW) { | if (ar->regiontype == RGN_TYPE_WINDOW) { | ||||
| RegionView3D *rv3d = ar->regiondata; | RegionView3D *rv3d = ar->regiondata; | ||||
| if (rv3d->persp == RV3D_CAMOB) { | if (rv3d->persp == RV3D_CAMOB) { | ||||
| rv3d->persp = RV3D_PERSP; | rv3d->persp = RV3D_PERSP; | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| void ED_screen_update_after_scene_change(const bScreen *screen, Scene *scene_new, SceneLayer *scene_layer) | void ED_screen_update_after_scene_change(const bScreen *screen, Scene *scene_new, ViewLayer *view_layer) | ||||
| { | { | ||||
| for (ScrArea *sa = screen->areabase.first; sa; sa = sa->next) { | for (ScrArea *sa = screen->areabase.first; sa; sa = sa->next) { | ||||
| for (SpaceLink *sl = sa->spacedata.first; sl; sl = sl->next) { | for (SpaceLink *sl = sa->spacedata.first; sl; sl = sl->next) { | ||||
| if (sl->spacetype == SPACE_VIEW3D) { | if (sl->spacetype == SPACE_VIEW3D) { | ||||
| View3D *v3d = (View3D *)sl; | View3D *v3d = (View3D *)sl; | ||||
| screen_set_3dview_camera(scene_new, scene_layer, sa, v3d); | screen_set_3dview_camera(scene_new, view_layer, sa, v3d); | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| ScrArea *ED_screen_full_newspace(bContext *C, ScrArea *sa, int type) | ScrArea *ED_screen_full_newspace(bContext *C, ScrArea *sa, int type) | ||||
| { | { | ||||
| wmWindow *win = CTX_wm_window(C); | wmWindow *win = CTX_wm_window(C); | ||||
| ▲ Show 20 Lines • Show All 371 Lines • ▼ Show 20 Lines | if (screen && screen->animtimer) { | ||||
| sad->refresh = refresh; | sad->refresh = refresh; | ||||
| sad->ar = NULL; | sad->ar = NULL; | ||||
| if (redraws & TIME_REGION) | if (redraws & TIME_REGION) | ||||
| sad->ar = time_top_left_3dwindow(screen); | sad->ar = time_top_left_3dwindow(screen); | ||||
| } | } | ||||
| } | } | ||||
| /* results in fully updated anim system */ | /* results in fully updated anim system */ | ||||
| void ED_update_for_newframe(Main *bmain, Scene *scene, SceneLayer *scene_layer, struct Depsgraph *depsgraph) | void ED_update_for_newframe(Main *bmain, Scene *scene, ViewLayer *view_layer, struct Depsgraph *depsgraph) | ||||
| { | { | ||||
| #ifdef DURIAN_CAMERA_SWITCH | #ifdef DURIAN_CAMERA_SWITCH | ||||
| void *camera = BKE_scene_camera_switch_find(scene); | void *camera = BKE_scene_camera_switch_find(scene); | ||||
| if (camera && scene->camera != camera) { | if (camera && scene->camera != camera) { | ||||
| bScreen *sc; | bScreen *sc; | ||||
| scene->camera = camera; | scene->camera = camera; | ||||
| /* are there cameras in the views that are not in the scene? */ | /* are there cameras in the views that are not in the scene? */ | ||||
| for (sc = bmain->screen.first; sc; sc = sc->id.next) { | for (sc = bmain->screen.first; sc; sc = sc->id.next) { | ||||
| BKE_screen_view3d_scene_sync(sc, scene); | BKE_screen_view3d_scene_sync(sc, scene); | ||||
| } | } | ||||
| } | } | ||||
| #endif | #endif | ||||
| ED_clip_update_frame(bmain, scene->r.cfra); | ED_clip_update_frame(bmain, scene->r.cfra); | ||||
| /* this function applies the changes too */ | /* this function applies the changes too */ | ||||
| BKE_scene_graph_update_for_newframe(bmain->eval_ctx, depsgraph, bmain, scene, scene_layer); | BKE_scene_graph_update_for_newframe(bmain->eval_ctx, depsgraph, bmain, scene, view_layer); | ||||
| /* composite */ | /* composite */ | ||||
| if (scene->use_nodes && scene->nodetree) | if (scene->use_nodes && scene->nodetree) | ||||
| ntreeCompositTagAnimated(scene->nodetree); | ntreeCompositTagAnimated(scene->nodetree); | ||||
| /* update animated texture nodes */ | /* update animated texture nodes */ | ||||
| { | { | ||||
| Tex *tex; | Tex *tex; | ||||
| ▲ Show 20 Lines • Show All 106 Lines • Show Last 20 Lines | |||||