Fix T53808: VSE doesn't show scene strip markers

This commit is contained in:
2018-01-18 14:49:09 +11:00
parent 6880a549ba
commit 001789d733
4 changed files with 19 additions and 8 deletions

View File

@@ -1139,6 +1139,10 @@ Object *BKE_scene_camera_find(Scene *sc)
#ifdef DURIAN_CAMERA_SWITCH #ifdef DURIAN_CAMERA_SWITCH
Object *BKE_scene_camera_switch_find(Scene *scene) Object *BKE_scene_camera_switch_find(Scene *scene)
{ {
if (scene->r.mode & R_NO_CAMERA_SWITCH) {
return NULL;
}
TimeMarker *m; TimeMarker *m;
int cfra = scene->r.cfra; int cfra = scene->r.cfra;
int frame = -(MAXFRAME + 1); int frame = -(MAXFRAME + 1);

View File

@@ -3199,8 +3199,9 @@ static ImBuf *seq_render_scene_strip(const SeqRenderData *context, Sequence *seq
int scemode; int scemode;
int cfra; int cfra;
float subframe; float subframe;
#ifdef DURIAN_CAMERA_SWITCH #ifdef DURIAN_CAMERA_SWITCH
ListBase markers; int mode;
#endif #endif
} orig_data; } orig_data;
@@ -3263,7 +3264,7 @@ static ImBuf *seq_render_scene_strip(const SeqRenderData *context, Sequence *seq
orig_data.cfra = scene->r.cfra; orig_data.cfra = scene->r.cfra;
orig_data.subframe = scene->r.subframe; orig_data.subframe = scene->r.subframe;
#ifdef DURIAN_CAMERA_SWITCH #ifdef DURIAN_CAMERA_SWITCH
orig_data.markers = scene->markers; orig_data.mode = scene->r.mode;
#endif #endif
BKE_scene_frame_set(scene, frame); BKE_scene_frame_set(scene, frame);
@@ -3289,7 +3290,7 @@ static ImBuf *seq_render_scene_strip(const SeqRenderData *context, Sequence *seq
#ifdef DURIAN_CAMERA_SWITCH #ifdef DURIAN_CAMERA_SWITCH
/* stooping to new low's in hackyness :( */ /* stooping to new low's in hackyness :( */
BLI_listbase_clear(&scene->markers); scene->r.mode |= R_NO_CAMERA_SWITCH;
#endif #endif
is_frame_update = (orig_data.cfra != scene->r.cfra) || (orig_data.subframe != scene->r.subframe); is_frame_update = (orig_data.cfra != scene->r.cfra) || (orig_data.subframe != scene->r.subframe);
@@ -3409,7 +3410,7 @@ finally:
#ifdef DURIAN_CAMERA_SWITCH #ifdef DURIAN_CAMERA_SWITCH
/* stooping to new low's in hackyness :( */ /* stooping to new low's in hackyness :( */
scene->markers = orig_data.markers; scene->r.mode &= ~(orig_data.mode & R_NO_CAMERA_SWITCH);
#endif #endif
return ibuf; return ibuf;

View File

@@ -6175,6 +6175,11 @@ static void direct_link_scene(FileData *fd, Scene *sce)
} }
} }
#ifdef DURIAN_CAMERA_SWITCH
/* Runtime */
sce->r.mode &= ~R_NO_CAMERA_SWITCH;
#endif
sce->r.avicodecdata = newdataadr(fd, sce->r.avicodecdata); sce->r.avicodecdata = newdataadr(fd, sce->r.avicodecdata);
if (sce->r.avicodecdata) { if (sce->r.avicodecdata) {
sce->r.avicodecdata->lpFormat = newdataadr(fd, sce->r.avicodecdata->lpFormat); sce->r.avicodecdata->lpFormat = newdataadr(fd, sce->r.avicodecdata->lpFormat);

View File

@@ -1729,7 +1729,8 @@ typedef struct Scene {
#define R_BORDER 0x0200 #define R_BORDER 0x0200
#define R_PANORAMA 0x0400 /* deprecated as scene option, still used in renderer */ #define R_PANORAMA 0x0400 /* deprecated as scene option, still used in renderer */
#define R_CROP 0x0800 #define R_CROP 0x0800
/*#define R_COSMO 0x1000 deprecated */ /* Disable camera switching: runtime (DURIAN_CAMERA_SWITCH) */
#define R_NO_CAMERA_SWITCH 0x1000
#define R_ODDFIELD 0x2000 #define R_ODDFIELD 0x2000
#define R_MBLUR 0x4000 #define R_MBLUR 0x4000
/* unified was here */ /* unified was here */