Merge branch 'blender-v3.2-release'
This commit is contained in:
commit
56039e30c7
|
@ -29,7 +29,9 @@ char *SEQ_channel_name_get(struct ListBase *channels, const int channel_index);
|
|||
bool SEQ_channel_is_locked(const struct SeqTimelineChannel *channel);
|
||||
bool SEQ_channel_is_muted(const struct SeqTimelineChannel *channel);
|
||||
int SEQ_channel_index_get(const struct SeqTimelineChannel *channel);
|
||||
ListBase *SEQ_get_channels_by_seq(struct ListBase *seqbase, const struct Sequence *seq);
|
||||
ListBase *SEQ_get_channels_by_seq(struct ListBase *seqbase,
|
||||
struct ListBase *channels,
|
||||
const struct Sequence *seq);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -82,15 +82,15 @@ bool SEQ_channel_is_muted(const SeqTimelineChannel *channel)
|
|||
return (channel->flag & SEQ_CHANNEL_MUTE) != 0;
|
||||
}
|
||||
|
||||
ListBase *SEQ_get_channels_by_seq(ListBase *seqbase, const Sequence *seq)
|
||||
ListBase *SEQ_get_channels_by_seq(ListBase *seqbase, ListBase *channels, const Sequence *seq)
|
||||
{
|
||||
ListBase *lb = NULL;
|
||||
|
||||
LISTBASE_FOREACH (Sequence *, iseq, seqbase) {
|
||||
if (seq == iseq) {
|
||||
return seqbase;
|
||||
return channels;
|
||||
}
|
||||
if ((lb = SEQ_get_channels_by_seq(&iseq->seqbase, seq))) {
|
||||
if ((lb = SEQ_get_channels_by_seq(&iseq->seqbase, &iseq->channels, seq))) {
|
||||
return lb;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2432,7 +2432,7 @@ static ImBuf *do_multicam(const SeqRenderData *context,
|
|||
return NULL;
|
||||
}
|
||||
ListBase *seqbasep = SEQ_get_seqbase_by_seq(&ed->seqbase, seq);
|
||||
ListBase *channels = SEQ_get_channels_by_seq(&ed->seqbase, seq);
|
||||
ListBase *channels = SEQ_get_channels_by_seq(&ed->seqbase, &ed->channels, seq);
|
||||
if (!seqbasep) {
|
||||
return NULL;
|
||||
}
|
||||
|
@ -2468,7 +2468,7 @@ static ImBuf *do_adjustment_impl(const SeqRenderData *context, Sequence *seq, fl
|
|||
ed = context->scene->ed;
|
||||
|
||||
ListBase *seqbasep = SEQ_get_seqbase_by_seq(&ed->seqbase, seq);
|
||||
ListBase *channels = SEQ_get_channels_by_seq(&ed->seqbase, seq);
|
||||
ListBase *channels = SEQ_get_channels_by_seq(&ed->seqbase, &ed->channels, seq);
|
||||
|
||||
/* Clamp timeline_frame to strip range so it behaves as if it had "still frame" offset (last
|
||||
* frame is static after end of strip). This is how most strips behave. This way transition
|
||||
|
|
|
@ -702,6 +702,7 @@ static void wm_draw_window_offscreen(bContext *C, wmWindow *win, bool stereo)
|
|||
|
||||
if (stereo && wm_draw_region_stereo_set(bmain, area, region, STEREO_LEFT_ID)) {
|
||||
wm_draw_region_buffer_create(region, true, use_viewport);
|
||||
bool views_valid = true;
|
||||
|
||||
for (int view = 0; view < 2; view++) {
|
||||
eStereoViews sview;
|
||||
|
@ -717,8 +718,11 @@ static void wm_draw_window_offscreen(bContext *C, wmWindow *win, bool stereo)
|
|||
ED_region_do_draw(C, region);
|
||||
wm_draw_region_unbind(region);
|
||||
}
|
||||
else {
|
||||
views_valid = false;
|
||||
}
|
||||
}
|
||||
if (use_viewport) {
|
||||
if (use_viewport && views_valid) {
|
||||
GPUViewport *viewport = region->draw_buffer->viewport;
|
||||
GPU_viewport_stereo_composite(viewport, win->stereo3d_format);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue