Fix T53808: VSE doesn't show scene strip markers
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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 */
|
||||||
|
|||||||
Reference in New Issue
Block a user