From dbfde0fe7038d465cb52e335472199babae6ee4d Mon Sep 17 00:00:00 2001 From: Howard Trickey Date: Sat, 5 Jun 2021 14:17:15 -0700 Subject: Exact Boolean: fix last commit: pass an arg by reference instead of value. --- source/blender/blenlib/intern/mesh_boolean.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 find_component_containers(int comp, const IMesh &tm, const PatchesInfo &pinfo, const TriMeshTopology &tmtopo, - Array comp_bb, + Array &comp_bb, IMeshArena *arena) { constexpr int dbg_level = 0; -- cgit v1.2.3 From 54ce344bc7cc9a0e1c34b328081cb90e41aca7b9 Mon Sep 17 00:00:00 2001 From: Richard Antalik Date: Sun, 6 Jun 2021 03:03:01 +0200 Subject: VSE: Remove seq->tmp usage from transform code This field was used for extend feature to get handle position of metastrip children. Since D9972 extend feature works only on meta strip itself, not it's children. So `SEQ_transform_get_left_handle_frame()` second argument is always false and can be removed. Another instance of `seq->tmp usage` is hack to distinguish strips to be shuffled, which is not covered by this patch. Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D10321 --- .../editors/space_sequencer/sequencer_draw.c | 4 +-- .../editors/space_sequencer/sequencer_edit.c | 4 +-- .../transform/transform_convert_sequencer.c | 15 +++----- source/blender/makesrna/intern/rna_sequencer.c | 6 ++-- source/blender/sequencer/SEQ_transform.h | 4 +-- source/blender/sequencer/intern/strip_transform.c | 40 ++++++---------------- 6 files changed, 24 insertions(+), 49 deletions(-) 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..279fcdffc1f 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; @@ -180,11 +180,6 @@ 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; @@ -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; } 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; } } -- cgit v1.2.3 From a496af8680f7e6c1f69b044b0b0902586711023c Mon Sep 17 00:00:00 2001 From: YimingWu Date: Sun, 6 Jun 2021 11:18:18 +0800 Subject: LineArt: Fix edge clipping index error. Small bug that's causing edge count to be incorrect in final culled list, just being offset exactly 1 entry. Reviewed By: Sebastian Parborg (zeddb) Differential Revision: https://developer.blender.org/D11513 --- source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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; \ -- cgit v1.2.3 From c27b7df563a68f38676decb5ab6f68b3e4ff85f0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 6 Jun 2021 23:03:34 +1000 Subject: Cleanup: unused argument --- source/blender/editors/transform/transform_convert_sequencer.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/blender/editors/transform/transform_convert_sequencer.c b/source/blender/editors/transform/transform_convert_sequencer.c index 279fcdffc1f..6a09008e657 100644 --- a/source/blender/editors/transform/transform_convert_sequencer.c +++ b/source/blender/editors/transform/transform_convert_sequencer.c @@ -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; @@ -184,7 +184,7 @@ static int SeqTransCount(TransInfo *t, Sequence *parent, ListBase *seqbase, int tot += count; if (recursive) { - tot += SeqTransCount(t, seq, &seq->seqbase, depth + 1); + tot += SeqTransCount(t, &seq->seqbase, depth + 1); } } @@ -557,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; -- cgit v1.2.3 From 7ef2b760dc233d61a2350e20d4e65cb76dbb9311 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 6 Jun 2021 23:05:46 +1000 Subject: Event Simulate: and a --keep-open command line argument It can be useful to investigate the state of the file after event simulation runs. --- tests/python/bl_run_operators_event_simulate.py | 28 +++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) 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__": -- cgit v1.2.3