Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-06-02VSE: Make time operations self-containedRichard Antalik
This patch makes it possible to manipulate strips without need to use update functions to recalculate effect and meta strips. Prior to this change function `SEQ_time_update_sequence` had to be used to update mainly effects and meta strips. This was implemented in a way that relied on sorted list of strips, which can't always be done and in rare cases this approach failed. In case of meta strips, `seqbase` had to be passed and compared with "active" one to determine whether meta strip should be updated or not. This is especially weak system that is prone to bugs when functions are used by python API functions. Finally, other strip types had startdisp` and `enddisp` fields updated by this function and a lot of code relied on these fields even if strip start, length and offsets are available. This is completely unnecessary. Implemented changes: All effects and meta strips are updated when strip handles are moved or strip is translated, without need to call any update function. Function `SEQ_time_update_sequence` has been split to `SEQ_time_update_meta_strip_range` and `seq_time_update_effects_strip_range`. These functions should be only used within sequencer module code. Meta update is used for versioning, which is only reason for it not being declared internally. Sequence fields `startdisp` and `enddisp` are now only used for effects to store strip start and end points. These fields should be used only internally within sequencer module code. Use function `SEQ_time_*_handle_frame_get` to get strip start and end points. To update effects and meta strips with reasonable performance, cache for "parent" meta strip and attached effects is added to `SequenceLookup` cache, so it shares invalidation mechanisms. All caches are populated during single iteration. There should be no functional changes. Differential Revision: https://developer.blender.org/D14990
2022-05-13Fix T89909: Circle Select tool status bar doesn't match the operationsCampbell Barton
Assign get_name functions for select picking and circle select so modifier keys show the result of holding the modifiers.
2022-04-21Fix typo in previous commitRichard Antalik
2022-04-21Cleanup: VSE effect relationship checkingRichard Antalik
Use `SEQ_relation_is_effect_of_strip` for checking effect-input relationship where this is applicable.
2022-04-05Fix T97034: tweak strips uses cursor position after threshold reachedCampbell Barton
2022-04-04VSE: Add channel headersRichard Antalik
This patch adds channel region to VSE timeline area for drawing channel headers. It is synchronizedwith timeline region. 3 basic features are implemented - channel visibility, locking and name. Channel data is stored in `SeqTimelineChannel` which can be top-level owned by `Editing`, or it is owned by meta strip to support nesting. Strip properties are completely independent and channel properties are applied on top of particular strip property, thus overriding it. Implementation is separate from channel regions in other editors. This is mainly because style and topology is quite different in VSE. But also code seems to be much more readable this way. Currently channels use functions similar to VSE timeline to draw background to provide illusion of transparency, but only for background and sfra/efra regions. Great portion of this patch is change from using strip visibility and lock status to include channel state - this is facilitated by functions `SEQ_transform_is_locked` and `SEQ_render_is_muted` Originally this included changes in D14263, but patch was split for easier review. Reviewed By: fsiddi, Severin Differential Revision: https://developer.blender.org/D13836
2022-03-04Cleanup: remove outdated references to tweakCampbell Barton
2022-02-11File headers: SPDX License migrationCampbell Barton
Use a shorter/simpler license convention, stops the header taking so much space. Follow the SPDX license specification: https://spdx.org/licenses - C/C++/objc/objc++ - Python - Shell Scripts - CMake, GNUmakefile While most of the source tree has been included - `./extern/` was left out. - `./intern/cycles` & `./intern/atomic` are also excluded because they use different header conventions. doc/license/SPDX-license-identifiers.txt has been added to list SPDX all used identifiers. See P2788 for the script that automated these edits. Reviewed By: brecht, mont29, sergey Ref D14069
2021-12-01Cleanup: Fix errors in previous commitRichard Antalik
After 1ef8ef4941dd there were build warnings because of unused arguments. Also missed to change code to iterate `strips` instead of `seqbase` in 2 functions.
2021-12-01Cleanup: Remove seq->tmp_flag DNA memberRichard Antalik
Commit f0d20198b290 used this field to flag rendered strips which were queried by `SEQ_query_rendered_strips()`. Then operators iterate all strips and checks state of `seq->tmp_flag`. Use collection returned by `SEQ_query_rendered_strips` directly. There should be no functional changes. This commit adds functions `all_strips_from_context` and `selected_strips_from_context` that provide collection of strips based on context. Most operators can use this collection directly. There is already `seq->tmp` DNA field, but is should not be used unless absolutely necessary. Better option is to use human readable flag. Best is to not use DNA fields for temporary storage in runtime.
2021-11-30VSE: Disable interactivity in combined viewRichard Antalik
Combined view of timeline and preview causes seemingly unpredictable behavior after some operators have been allowed to run in preview region. Disable new features in this combined view, so behavior should be consistent with previous versions. ref: https://developer.blender.org/T92584 Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D13419
2021-10-28Sequencer: support basic selection & delete from previewsCampbell Barton
Expose select & strip menus and shortcuts for sequencer preview.
2021-10-27Sequencer: various preview selection improvementsCampbell Barton
- Only cycle items when the cursor hasn't moved. This matches object-mode behavior, making it possible to tweak-drag the current selection without first cycling to the next sequence strip. Successive clicks will still cycle sequence strips. - For center selection, use a penalty for the active strip. - Use a temporary selection list to avoid moving the sequence strips out of the scene during selection (changing their order when added back).
2021-10-27Fix sequencer selection toggleCampbell Barton
Sequence strips weren't being deselected while holding shift.
2021-10-18Fix T91700: Strips can be transformed in scope display modesCampbell Barton
Hide gizmos & prevent transform & selection in scope display.
2021-10-09Fix T91978: VSE box select substract doesn't workRichard Antalik
Substract and add modes were not implemented. Add logic to handle these modes.
2021-10-06Fix errors in 68dc970219ef7a559b48bd1b3e45d033367b4172Campbell Barton
Swapped preview/timeline keymap and incorrect center measurement.
2021-10-06Sequencer: improvements to preview selectionCampbell Barton
- Support toggle/deselect/deselect_all options (matching 3D viewport object selection). - Support legacy selection behavior. - Support selecting by the center in preview views (holding Ctrl).
2021-10-06Sequencer: use pass-through for preview selectCampbell Barton
Needed for select-drag action as done in the 3D view and UV editor.
2021-09-21VSE: Image transform toolsRichard Antalik
Add tools for image manipulation in sequencer preview region. This includes: - Translate, rotate and resize operators, tools and gizmos - Origin for image transformation - Median point and individual origins pivot modes - Select and Box select operator works in preview - Image overlay drawing ref T90156 Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D12105
2021-09-08Cleanup: VSE select operatorRichard Antalik
Operator combines more features and it wasn't very transparent which properties are used in which feature and how they are used. Features linked_time, side_of_frame and linked_handle are isolated, logic moved into own function. deselect_all property was removed as it practically equals to !extend in all cases. Functional change: Dragging existing selection will not change active strip. Previously this could happen if click happened on strip that wasn't active. Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D12320
2021-09-02Cleanup: remove redundant alloc argument to SEQ_editing_getCampbell Barton
Callers that require lazy initialization can use SEQ_editing_ensure.
2021-08-03WM: don't store selection properties typically set in the key-mapCampbell Barton
While this was already the case for the most part some selection operators stored common settings for reuse such as "toggle", "extend" & "deselect". Disabling storing these settings for later execution as it means failure to set these options in the key-map re-uses the value of the shortcut that was last called. Skip saving these settings since this is a case where reusing them isn't helpful. Resolves T90275.
2021-07-03Cleanup: consistent use of tags: NOTE/TODO/FIXME/XXXCampbell Barton
Also use doxy style function reference `#` prefix chars when referencing identifiers.
2021-06-02VSE: Add strip-time intersection test functionRichard Antalik
Use SEQ_time_strip_intersects_frame function to test if strip intersects with frame. Note: There are cases where this function should not be used. For example splitting strips require at least 1 frame "inside" strip. Another example is drawing, where playhead technically doesn't intersect strip, but it is rendered, because current frame has "duration" or "thickness" of 1 frame. Reviewed By: sergey Differential Revision: https://developer.blender.org/D11320
2021-05-28Merge branch 'blender-v2.93-release'Philipp Oeser
2021-05-28Fix T88635: VSE: Select Linked gives unpredictable resultsPhilipp Oeser
Caused by {rB66923031e6f2}. Code would process unselected sequences and skip selected, needs to be the other way around. Maniphest Tasks: T88635 Differential Revision: https://developer.blender.org/D11424
2021-05-21Cleanup: spellingRichard Antalik
2021-05-20VSE: Fix select strips at current frame featureRichard Antalik
This feature of `select_side_of_frame` was disabled by removing option from operator property enum but functional code was never removed. Add back option to use this feature. Feature was disabled due to keymap issue. Currently this feature doesn't have keymap assigned.
2021-05-19VSE: Move whole strip chain to metaRichard Antalik
Python API function Sequence.move_to_meta() did delete effect chain when strip with effects was moved. Use iterator API to query effect strips and move whole chain to meta. Reviewed By: sergey Differential Revision: https://developer.blender.org/D11206
2021-05-07Silence warningsDalai Felinto
2021-05-07Fix strict compiler warning in sequencer codeSergey Sharybin
2021-05-07VSE: New iterator designRichard Antalik
This iterator design provides means to create simple and flexible API to query and work with collection of strips. It should be used in cases when conditions require multiple stages of recursive iteration of all strips or similar complex scenarios. Quick API overview: Basic queries are standalone functions that return SeqCollection Use SEQ_collection_create() and SEQ_collection_free() to construct such query functions. Use these functions to get strips of known conditions, like selected strips, movie strips, muted strips and so on. Use SEQ_reference_query() when querying strips with relation to some reference strip. For example to get its effects, strips that have same type or use same input file and so on. These aren't standalone functions because often you need to query strips relative to each strip in collection. Use SEQ_collection_expand() to query strips relative to each strip in collection. These will be merged to original collection. Use SEQ_collection_merge() to merge 2 collections To iterate collection elements use macro SEQ_ITERATOR_FOREACH() This API is quite specific, but I think it is best suited for tasks that are usualy solved in sequencer codebase. Old sequencer iterator has been completely removed. SEQ_ALL_BEGIN and SEQ_ALL_END macros re-use new iterator design. As initial use for this iterator select_grouped_effect_link() function has been rewritten. It was not only broken, but also it used DNA fields to aid iterating strips. Reviewed By: sergey Differential Revision: https://developer.blender.org/D10337
2021-03-31Cleanup: Fix warningsRichard Antalik
Introduced in b128ffd53970
2021-03-31Cleanup: Remove SEQ_CURRENT_BEGIN macroRichard Antalik
Use LISTBASE_FOREACH instead. SEQ_CURRENT_BEGIN did null checks, so now these must be explicit. Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D10823
2021-03-02VSE: Refactor meta operatorsRichard Antalik
Move low level logic to module code and versioning logic to versioning code. Metas strip position was handled in diffrent way compared to other strips. This was introduced in c8b0d25794be as bugfix for T28158. I disagree with such design. Meta strips should be handled in same way as any other strips. I have tested this change and haven't found any problems. No problems after checking T28158 as well. There should be no functional changes on user level. Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D9972
2021-02-05Cleanup: Minimize seq->tmp usageRichard Antalik
Using this persistent field in `select_more_less_seq__internal` was inapropriate in this case. Split select more/less and linked code, because it was mixed in `select_more_less_seq__internal()` These operators work in completely different way. `select_linked_internal()` doesn't use seq->tmp at all. `seq->tmp` was used to mask strips selected by operator while iterating. Use GSet to store temporary data instead of `seq->tmp`. Reviewed By: sergey Differential Revision: https://developer.blender.org/D10326
2020-12-31Cleanup: Move functions from sequencer_edit.cRichard Antalik
These are utility functions that are not used in this file. No functional changes.
2020-12-24Cleanup: Fix capitalization in various UI stringsYevgeny Makarov
Approximately 195 changes of capitalization to conform to MLA title style. UI labels and property names should use MLA title case, while descriptions should be capitalized like regular prose, generally with only the start of a sentence capitalized. Differential Revision: https://developer.blender.org/D9922
2020-12-20VSE: Add options to select neighboring handlesPeter Fog
Options added to `sequencer.select_handles()` operator. Reviewed By: ISS Differential Revision: https://developer.blender.org/D7707
2020-12-19Cleanup: Split SEQ_sequencer.h fileRichard Antalik
2020-12-19Cleanup: Rename BKE_sequencer functionsRichard Antalik
API functions get SEQ_ prefix. Intern functions get seq_ prefix Functions also have appropriate category included in name.
2020-11-06Cleanup: rename time related variablesRichard Antalik
Variables renaned: - cfra -> timeline_frame - nr -> frame index - cfra_over -> overlap_frame Function seq_give_stripelem_index was renamed to seq_give_frame_index.
2020-11-06Cleanup: use ELEM macroCampbell Barton
2020-11-01Rename BKE_sequencer.hRichard Antalik
Reviewed By: sergey Differential Revision: https://developer.blender.org/D9349
2020-10-10Cleanup: use C comments for descriptive textCampbell Barton
Follow our code style guide by using C-comments for text descriptions.
2020-10-05Fix T80397: Select Side not working correctlyRichard Antalik
Test for side on which strip is was incorrect.
2020-09-09Cleanup: reduce variable scopeJacques Lucke
2020-08-26Cleanup: add SEQ_ALL_BEGIN, SEQ_CURRENT_BEGIN to .clang-formatCampbell Barton
These were missed in 70500121b457d which caused reformatting.
2020-08-21Cleanup: rename iterators over sequences to be more clear about what they do.Bastien Montagne
No functional changes expected.