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:
Diffstat (limited to 'source/blender/editors/screen/screen_edit.c')
-rw-r--r--source/blender/editors/screen/screen_edit.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c
index a3f97a7c5ce..8874c5d1bc8 100644
--- a/source/blender/editors/screen/screen_edit.c
+++ b/source/blender/editors/screen/screen_edit.c
@@ -25,6 +25,8 @@
*/
#include <string.h>
+#include <math.h>
+
#include "MEM_guardedalloc.h"
@@ -40,7 +42,6 @@
#include "BKE_node.h"
#include "BKE_screen.h"
#include "BKE_scene.h"
-#include "BKE_utildefines.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
@@ -49,7 +50,7 @@
#include "WM_types.h"
#include "ED_image.h"
-#include "ED_view3d.h"
+#include "ED_object.h"
#include "ED_screen.h"
#include "ED_screen_types.h"
@@ -1367,6 +1368,8 @@ void ED_screen_set_scene(bContext *C, Scene *scene)
bScreen *sc;
bScreen *curscreen= CTX_wm_screen(C);
+ ED_object_exit_editmode(C, EM_FREEDATA|EM_DO_UNDO);
+
for(sc= CTX_data_main(C)->screen.first; sc; sc= sc->id.next) {
if((U.flag & USER_SCENEGLOBAL) || sc==curscreen) {
@@ -1421,7 +1424,7 @@ void ED_screen_set_scene(bContext *C, Scene *scene)
}
CTX_data_scene_set(C, scene);
- set_scene_bg(scene);
+ set_scene_bg(CTX_data_main(C), scene);
ED_update_for_newframe(C, 1);
@@ -1666,12 +1669,14 @@ void ED_screen_animation_timer(bContext *C, int redraws, int refresh, int sync,
ScreenAnimData *sad= MEM_callocN(sizeof(ScreenAnimData), "ScreenAnimData");
screen->animtimer= WM_event_add_timer(wm, win, TIMER0, (1.0/FPS));
+
sad->ar= CTX_wm_region(C);
sad->sfra = scene->r.cfra;
sad->redraws= redraws;
sad->refresh= refresh;
sad->flag |= (enable < 0)? ANIMPLAY_FLAG_REVERSE: 0;
sad->flag |= (sync == 0)? ANIMPLAY_FLAG_NO_SYNC: (sync == 1)? ANIMPLAY_FLAG_SYNC: 0;
+
screen->animtimer->customdata= sad;
}
@@ -1720,6 +1725,7 @@ void ED_screen_animation_timer_update(bScreen *screen, int redraws, int refresh)
/* results in fully updated anim system */
void ED_update_for_newframe(const bContext *C, int mute)
{
+ Main *bmain= CTX_data_main(C);
bScreen *screen= CTX_wm_screen(C);
Scene *scene= CTX_data_scene(C);
@@ -1743,7 +1749,7 @@ void ED_update_for_newframe(const bContext *C, int mute)
/* this function applies the changes too */
/* XXX future: do all windows */
- scene_update_for_newframe(scene, BKE_screen_visible_layers(screen, scene)); /* BKE_scene.h */
+ scene_update_for_newframe(bmain, scene, BKE_screen_visible_layers(screen, scene)); /* BKE_scene.h */
//if ( (CFRA>1) && (!mute) && (scene->r.audio.flag & AUDIO_SCRUB))
// audiostream_scrub( CFRA );