Make the UI API more consistent and reduce confusion with some naming.
mainly:
- API function calls
- enum values
some internal static functions have been left for now
This fixes the placement code of new files added to the sequencer timeline.
The old code tried to guess the strip position from the current mouse
pointer position.
Annoying effect: if you add a new strip using the menu, especially if the
file editor pops up, the strip ends up in nowheres land (most likely around
track 40, frame -200).
New behaviour: strips are always placed at cfra, which is the
sequencer equivalent to the 3D cursor (and that's where new objects in
3D editing end up).
Bonus feature: we try our best to guess the right track by finding the
nearest strip by type.
The patch was inspired by
[#32766] VSE: Add Strip on Current Frame
Thanks to venomgfx for the idea!
- add sequence.update(data=False) function.
- made some sequence vars editable.
- correct some comments.
also rename rna function sequence.getStripElem() --> strip_elem_from_frame()
The issue was caused by SEQ_BEGIN macro modifying sequence's depth
which ruined transformation routines. Used own DFS instead which
doesn't modify sequences.
Also corrected some typos in api and comments.
* Remove all code for Texture and Sequencer plugin system, this never worked in 2.5x / 2.6x and is therefore not needed anymore.
* DNA structures are kept, all read/writefile code is gone.
... instead add scene.sequencer_editor_create / clear, these match id.animation_data_* functions.
- refactor for names, for scene level functions call them BKE_sequencer_*
Currently copies behavior of clip and image editors:
- On file load, all strip will reference clip they're using
- On adding new strip, clip would be referenced only if it've got zero user
- On removing strip clip wouldn't be de-referenced to prevent clip editors
pointing to zero-counted datablocks.
Not actually ideal from human beings point of view, but referencing/dereferencing
clip on each strip add/delete is getting crappy because of current logic of how
clip datablocks are referenced from clip editor (which is designed to work fine with
loading files without loading UI).
This adds movieclip input support to the sequencer, thereby making
undistorted and stabilized footage available without a seperate render step.
Also: removes some old cruft code from the sequencer:
* new_tstripdata wasn't used anymore
* StripElems were allocated for SCENE strips on full length, wasting memory
Added a comment, that hopefully makes things a little bit clearer:
StripElems are *only* usefull for MOVIE + IMAGE strips for all other strip
types one can set this pointer to NULL. (If that should cause otherwise
problems, then the code that doesn't check for NULL is to blame!)