diff options
author | Antonio Vazquez <blendergit@gmail.com> | 2021-06-06 17:02:56 +0300 |
---|---|---|
committer | Antonio Vazquez <blendergit@gmail.com> | 2021-06-06 17:02:56 +0300 |
commit | ad3d5b5ff6967829b483b05ee99a7570a324014b (patch) | |
tree | 3f6c803301719af3ea0d30dec21f3784207c7dfb | |
parent | 247198644088fd5d02a909b2e06c21e561b8e5b7 (diff) | |
parent | 7ef2b760dc233d61a2350e20d4e65cb76dbb9311 (diff) |
Merge branch 'master' into eevee-gpencileevee-gpencil
9 files changed, 53 insertions, 58 deletions
diff --git a/source/blender/blenlib/intern/mesh_boolean.cc b/source/blender/blenlib/intern/mesh_boolean.cc index 2b286de5120..25aeae519c1 100644 --- a/source/blender/blenlib/intern/mesh_boolean.cc +++ b/source/blender/blenlib/intern/mesh_boolean.cc @@ -1863,7 +1863,7 @@ static Vector<ComponentContainer> find_component_containers(int comp, const IMesh &tm, const PatchesInfo &pinfo, const TriMeshTopology &tmtopo, - Array<BoundingBox> comp_bb, + Array<BoundingBox> &comp_bb, IMeshArena *arena) { constexpr int dbg_level = 0; diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c index b55c8035fa3..7f500597906 100644 --- a/source/blender/editors/space_sequencer/sequencer_draw.c +++ b/source/blender/editors/space_sequencer/sequencer_draw.c @@ -870,9 +870,9 @@ static void draw_seq_background(Scene *scene, /* Draw the main strip body. */ if (is_single_image) { immRectf(pos, - SEQ_transform_get_left_handle_frame(seq, false), + SEQ_transform_get_left_handle_frame(seq), y1, - SEQ_transform_get_right_handle_frame(seq, false), + SEQ_transform_get_right_handle_frame(seq), y2); } else { diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index f22a515a8f2..a047659e1e9 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -1776,8 +1776,8 @@ static int sequencer_separate_images_exec(bContext *C, wmOperator *op) /* if (seq->ipo) id_us_min(&seq->ipo->id); */ /* XXX, remove fcurve and assign to split image strips */ - start_ofs = timeline_frame = SEQ_transform_get_left_handle_frame(seq, false); - frame_end = SEQ_transform_get_right_handle_frame(seq, false); + start_ofs = timeline_frame = SEQ_transform_get_left_handle_frame(seq); + frame_end = SEQ_transform_get_right_handle_frame(seq); while (timeline_frame < frame_end) { /* New seq. */ diff --git a/source/blender/editors/transform/transform_convert_sequencer.c b/source/blender/editors/transform/transform_convert_sequencer.c index 34be89e5ed9..6a09008e657 100644 --- a/source/blender/editors/transform/transform_convert_sequencer.c +++ b/source/blender/editors/transform/transform_convert_sequencer.c @@ -90,8 +90,8 @@ static void SeqTransInfo(TransInfo *t, Sequence *seq, int *r_recursive, int *r_c Scene *scene = t->scene; int cfra = CFRA; - int left = SEQ_transform_get_left_handle_frame(seq, false); - int right = SEQ_transform_get_right_handle_frame(seq, false); + int left = SEQ_transform_get_left_handle_frame(seq); + int right = SEQ_transform_get_right_handle_frame(seq); if (seq->depth == 0 && ((seq->flag & SELECT) == 0 || (seq->flag & SEQ_LOCK))) { *r_recursive = false; @@ -172,7 +172,7 @@ static void SeqTransInfo(TransInfo *t, Sequence *seq, int *r_recursive, int *r_c } } -static int SeqTransCount(TransInfo *t, Sequence *parent, ListBase *seqbase, int depth) +static int SeqTransCount(TransInfo *t, ListBase *seqbase, int depth) { Sequence *seq; int tot = 0, recursive, count, flag; @@ -180,16 +180,11 @@ static int SeqTransCount(TransInfo *t, Sequence *parent, ListBase *seqbase, int for (seq = seqbase->first; seq; seq = seq->next) { seq->depth = depth; - /* 'seq->tmp' is used by seq_tx_get_final_{left, right} - * to check sequence's range and clamp to it if needed. - * It's first place where digging into sequences tree, so store link to parent here. */ - seq->tmp = parent; - SeqTransInfo(t, seq, &recursive, &count, &flag); /* ignore the flag */ tot += count; if (recursive) { - tot += SeqTransCount(t, seq, &seq->seqbase, depth + 1); + tot += SeqTransCount(t, &seq->seqbase, depth + 1); } } @@ -206,16 +201,16 @@ static TransData *SeqToTransData( /* Use seq_tx_get_final_left() and an offset here * so transform has the left hand location of the strip. * tdsq->start_offset is used when flushing the tx data back */ - start_left = SEQ_transform_get_left_handle_frame(seq, false); + start_left = SEQ_transform_get_left_handle_frame(seq); td2d->loc[0] = start_left; tdsq->start_offset = start_left - seq->start; /* use to apply the original location */ break; case SEQ_LEFTSEL: - start_left = SEQ_transform_get_left_handle_frame(seq, false); + start_left = SEQ_transform_get_left_handle_frame(seq); td2d->loc[0] = start_left; break; case SEQ_RIGHTSEL: - td2d->loc[0] = SEQ_transform_get_right_handle_frame(seq, false); + td2d->loc[0] = SEQ_transform_get_right_handle_frame(seq); break; } @@ -562,7 +557,7 @@ void createTransSeqData(TransInfo *t) } #endif - count = SeqTransCount(t, NULL, ed->seqbasep, 0); + count = SeqTransCount(t, ed->seqbasep, 0); /* allocate memory for data */ tc->data_len = count; diff --git a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c index a9d17f19206..8d9eb8e6eb6 100644 --- a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c +++ b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c @@ -780,10 +780,10 @@ static void lineart_triangle_cull_single(LineartRenderBuffer *rb, e = new_e; #define INCREASE_EDGE \ - e_count++; \ v1_obi = e->v1_obindex; \ v2_obi = e->v2_obindex; \ new_e = &((LineartEdge *)e_eln->pointer)[e_count]; \ + e_count++; \ e = new_e; \ e->v1_obindex = v1_obi; \ e->v2_obindex = v2_obi; \ diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c index 41b60bed5bb..9851d65ece3 100644 --- a/source/blender/makesrna/intern/rna_sequencer.c +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -440,8 +440,7 @@ static void rna_Sequence_frame_length_set(PointerRNA *ptr, int value) Scene *scene = (Scene *)ptr->owner_id; SEQ_relations_invalidate_cache_composite(scene, seq); - SEQ_transform_set_right_handle_frame(seq, - SEQ_transform_get_left_handle_frame(seq, false) + value); + SEQ_transform_set_right_handle_frame(seq, SEQ_transform_get_left_handle_frame(seq) + value); do_sequence_frame_change_update(scene, seq); SEQ_relations_invalidate_cache_composite(scene, seq); } @@ -449,8 +448,7 @@ static void rna_Sequence_frame_length_set(PointerRNA *ptr, int value) static int rna_Sequence_frame_length_get(PointerRNA *ptr) { Sequence *seq = (Sequence *)ptr->data; - return SEQ_transform_get_right_handle_frame(seq, false) - - SEQ_transform_get_left_handle_frame(seq, false); + return SEQ_transform_get_right_handle_frame(seq) - SEQ_transform_get_left_handle_frame(seq); } static int rna_Sequence_frame_editable(PointerRNA *ptr, const char **UNUSED(r_info)) diff --git a/source/blender/sequencer/SEQ_transform.h b/source/blender/sequencer/SEQ_transform.h index d448fbdb43e..d587bd0f1a1 100644 --- a/source/blender/sequencer/SEQ_transform.h +++ b/source/blender/sequencer/SEQ_transform.h @@ -31,8 +31,8 @@ struct ListBase; struct Scene; struct Sequence; -int SEQ_transform_get_left_handle_frame(struct Sequence *seq, bool metaclip); -int SEQ_transform_get_right_handle_frame(struct Sequence *seq, bool metaclip); +int SEQ_transform_get_left_handle_frame(struct Sequence *seq); +int SEQ_transform_get_right_handle_frame(struct Sequence *seq); void SEQ_transform_set_left_handle_frame(struct Sequence *seq, int val); void SEQ_transform_set_right_handle_frame(struct Sequence *seq, int val); void SEQ_transform_handle_xlimits(struct Sequence *seq, int leftflag, int rightflag); diff --git a/source/blender/sequencer/intern/strip_transform.c b/source/blender/sequencer/intern/strip_transform.c index 3a0ba36b795..a02d8a1428e 100644 --- a/source/blender/sequencer/intern/strip_transform.c +++ b/source/blender/sequencer/intern/strip_transform.c @@ -48,24 +48,12 @@ static int seq_tx_get_end(Sequence *seq) return seq->start + seq->len; } -int SEQ_transform_get_left_handle_frame(Sequence *seq, bool metaclip) +int SEQ_transform_get_left_handle_frame(Sequence *seq) { - if (metaclip && seq->tmp) { - /* return the range clipped by the parents range */ - return max_ii(SEQ_transform_get_left_handle_frame(seq, false), - SEQ_transform_get_left_handle_frame((Sequence *)seq->tmp, true)); - } - return (seq->start - seq->startstill) + seq->startofs; } -int SEQ_transform_get_right_handle_frame(Sequence *seq, bool metaclip) +int SEQ_transform_get_right_handle_frame(Sequence *seq) { - if (metaclip && seq->tmp) { - /* return the range clipped by the parents range */ - return min_ii(SEQ_transform_get_right_handle_frame(seq, false), - SEQ_transform_get_right_handle_frame((Sequence *)seq->tmp, true)); - } - return ((seq->start + seq->len) + seq->endstill) - seq->endofs; } @@ -151,14 +139,12 @@ bool SEQ_transform_seqbase_isolated_sel_check(ListBase *seqbase) void SEQ_transform_handle_xlimits(Sequence *seq, int leftflag, int rightflag) { if (leftflag) { - if (SEQ_transform_get_left_handle_frame(seq, false) >= - SEQ_transform_get_right_handle_frame(seq, false)) { - SEQ_transform_set_left_handle_frame(seq, - SEQ_transform_get_right_handle_frame(seq, false) - 1); + if (SEQ_transform_get_left_handle_frame(seq) >= SEQ_transform_get_right_handle_frame(seq)) { + SEQ_transform_set_left_handle_frame(seq, SEQ_transform_get_right_handle_frame(seq) - 1); } if (SEQ_transform_single_image_check(seq) == 0) { - if (SEQ_transform_get_left_handle_frame(seq, false) >= seq_tx_get_end(seq)) { + if (SEQ_transform_get_left_handle_frame(seq) >= seq_tx_get_end(seq)) { SEQ_transform_set_left_handle_frame(seq, seq_tx_get_end(seq) - 1); } @@ -175,14 +161,12 @@ void SEQ_transform_handle_xlimits(Sequence *seq, int leftflag, int rightflag) } if (rightflag) { - if (SEQ_transform_get_right_handle_frame(seq, false) <= - SEQ_transform_get_left_handle_frame(seq, false)) { - SEQ_transform_set_right_handle_frame(seq, - SEQ_transform_get_left_handle_frame(seq, false) + 1); + if (SEQ_transform_get_right_handle_frame(seq) <= SEQ_transform_get_left_handle_frame(seq)) { + SEQ_transform_set_right_handle_frame(seq, SEQ_transform_get_left_handle_frame(seq) + 1); } if (SEQ_transform_single_image_check(seq) == 0) { - if (SEQ_transform_get_right_handle_frame(seq, false) <= seq_tx_get_start(seq)) { + if (SEQ_transform_get_right_handle_frame(seq) <= seq_tx_get_start(seq)) { SEQ_transform_set_right_handle_frame(seq, seq_tx_get_start(seq) + 1); } } @@ -204,14 +188,12 @@ void SEQ_transform_fix_single_image_seq_offsets(Sequence *seq) /* make sure the image is always at the start since there is only one, * adjusting its start should be ok */ - left = SEQ_transform_get_left_handle_frame(seq, false); + left = SEQ_transform_get_left_handle_frame(seq); start = seq->start; if (start != left) { offset = left - start; - SEQ_transform_set_left_handle_frame(seq, - SEQ_transform_get_left_handle_frame(seq, false) - offset); - SEQ_transform_set_right_handle_frame( - seq, SEQ_transform_get_right_handle_frame(seq, false) - offset); + SEQ_transform_set_left_handle_frame(seq, SEQ_transform_get_left_handle_frame(seq) - offset); + SEQ_transform_set_right_handle_frame(seq, SEQ_transform_get_right_handle_frame(seq) - offset); seq->start += offset; } } diff --git a/tests/python/bl_run_operators_event_simulate.py b/tests/python/bl_run_operators_event_simulate.py index 251d27fce90..92315d3e853 100644 --- a/tests/python/bl_run_operators_event_simulate.py +++ b/tests/python/bl_run_operators_event_simulate.py @@ -175,7 +175,7 @@ def mouse_location_get(): ) -def run_event_simulate(*, event_iter): +def run_event_simulate(*, event_iter, exit_fn): """ Pass events from event_iter into Blender. """ @@ -188,8 +188,7 @@ def run_event_simulate(*, event_iter): if val is Ellipsis: bpy.app.use_event_simulate = False print("Finished simulation") - - sys.exit(0) + exit_fn() return None # Run event simulation. @@ -494,6 +493,18 @@ def argparse_create(): formatter_class=argparse.RawTextHelpFormatter, ) + parser.add_argument( + "--keep-open", + dest="keep_open", + default=False, + action="store_true", + help=( + "Keep the window open instead of exiting once event simulation is complete.\n" + "This can be useful to inspect the state of the file once the simulation is complete." + ), + required=False, + ) + # Collect doc-strings from static methods in `actions`. actions_docstring = [] for action_key in ACTION_DIR: @@ -570,7 +581,16 @@ def main(): setup_default_preferences(bpy.context.preferences) - run_event_simulate(event_iter=main_event_iter(action_list=args.actions)) + def exit_fn(): + if not args.keep_open: + sys.exit(0) + else: + bpy.app.use_event_simulate = False + + run_event_simulate( + event_iter=main_event_iter(action_list=args.actions), + exit_fn=exit_fn, + ) if __name__ == "__main__": |