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-05-17Merge branch 'blender-v3.2-release'Richard Antalik
2022-05-17Fix T98021: Crash when using scene strip as sequencer inputRichard Antalik
Issue was caused by treating such strip as meta and using `seq->channels` directly, which is not valid for scene strips. Pointer to channels is now provided by function `SEQ_get_seqbase_from_sequence`.
2022-05-17Cleanup: use term 'filepath' for full file pathsCampbell Barton
2022-05-03Fix T97744: Speed effect causes memory leakRichard Antalik
Leak was caused because output image buffer was initialized twice. Once in speed effect strip and then by cross effect strip used for interpolation feature.
2022-05-03Fix T97507: Crash when deleting adjustment layerRichard Antalik
Issue was not properly fixed in 3cef9ebaf81 due to oversight. `SEQ_get_channels_by_seq` returned pointer to `seqbase` instead of `channels`.
2022-04-28VSE: Add option to limit timeline view heightRichard Antalik
When height is limited, it is defined by space occupied by strips, but at least channels 1 to 7 will be always visible. This allows it to easily overview timeline content by zooming out to maximum extent in Y axis and panning in X axis. More channels can be "created" on demand by moving strip to higher channel. When strip is removed and highest channel becomes empty, view will stay as is until it is moved down. Then new highest point is remembered and it is not possible to pan upwards until strip is moved to higher channel. Limiting takes into account height of scrubbing and markers area as well as scrollers. This means that when zoomed out to maximum extent, no strips are obstructed by fixed UI element. Fixes T57976 Reviewed By: Severin Differential Revision: https://developer.blender.org/D14263
2022-04-28VSE: Add precise drag and drop and strip previewsSebastian Parborg
This patch adds the drag and drop strip previews in the VSE. It also adds two new functions to the drag and drop API. 1. "draw_in_view" for callbacks that wants to draw elements in local viewport coordinates 2. "on_drag_start" that can be used for prefetching data only once at the start of the drag. Reviewed By: Julian, Campbell Differential Revision: http://developer.blender.org/D14560
2022-04-25VSE: Update first thumbnail when moving handleRichard Antalik
When handles are moved, job is created only for strips that need to update first thumbnail. ref T91618
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-21Fix T70844: Incorrect snappping of strips when effects attachedShrey Aggarwal
Sometimes, when moving strip with 2 input effect attached and causing strip overlap, this overlap is resolved incorrectly - too big offset is applied. This is because effects are not taken into consideration when "shuffeling" to resolve overlap. To fix usual cases (transitions), overlap between strip and it's effect is considered to be impossible. There are edge cases, but these would be much more complicated to implement and could have negative impact on performance. Reviewed By: ISS Differential Revision: https://developer.blender.org/D14578
2022-04-21VSE: Add frame selected operator for previewok what
This operator moves the view to show the selected visible strips. Reviewed By: ISS Differential Revision: https://developer.blender.org/D14222
2022-04-21Fix T97356: Crash when adding adjustment layer stripRichard Antalik
Crash was caused by incorrectly assuming, that rendered strip is meta when editing code in bulk, but this wasn't true and strip had no channels initialized, which caused crash on NULL dereference. Correct approach is to find list of channels where on same level as rendered strip, similar to how `SEQ_get_seqbase_by_seq` function works for list of strips.
2022-04-19Cleanup: Use correct capitalization of "F-Curve"Aaron Carlisle
2022-04-13Cleanup: avoid redundant float/int conversions in BLFCampbell Barton
Internally many offsets for BLF were integers but exposed as floats, since these are used in pixel-space, many callers were converging them back to integers. Simplify logic by using ints.
2022-04-11Cleanup: malformed C-style comment blocks, spellingCampbell Barton
- Missing star prefix. - Unnecessary indentation. - Blank line after dot-points (otherwise doxygen merges with the previous dot-point). - Use back-slash for doxygen commands. - Correct spelling.
2022-04-07Cleanup: clang-formatCampbell Barton
2022-04-06Fix T96595: Animation not duplicated for meta childrenRichard Antalik
Iterate over meta strip content and duplicate animation for all strips. recursively.
2022-04-05Fix T97071: Duplicating strip in locked channel creates overlapping stripsRichard Antalik
Add flag `SEQ_IGNORE_CHANNEL_LOCK` to indicate, that channel lock should not apply to strip. This flag must be cleared after transformation.
2022-04-05Sequencer: skip redundant F-curve GSet allocationCampbell Barton
2022-04-05Fix memory leak duplicating sequencer stripsCampbell Barton
Regression in [0] also skip creating a GSet when there are no F-curves. [0]: e74420124f3a429ad8a1492e56a7e1561d86d6f7
2022-04-05Cleanup: use doxygen links to struct membersCampbell Barton
2022-04-04Fix errors in sequencer channel headersRichard Antalik
Failing constraint test uncovered crashes on NULL dereference and missing channels initialization in `SEQ_editing_ensure()`.
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-29Fix T96582: Wipe effect not workingRichard Antalik
Caused by oversight in 0e38002dd5dd. Constant x/y value was used to calculate transition instead of pixel x/y coords.
2022-03-29Fix T96699: Splitting strip does not copy animationRichard Antalik
Since e49bf4019b49, animation is handled explicitly. Split operator wasn't updated. Re-use backup-duplicate-restore animation functions, that other operators use for splitting.
2022-03-25Cleanup: use count or num instead of nbrCampbell Barton
Follow conventions from T85728.
2022-03-23Cleanup: move documentation to headers, other minor correctionsCampbell Barton
2022-03-16Cleanup: rename cnt to countCampbell Barton
Follow naming from T85728.
2022-03-15Fix T96263: command line rendering affected by current scene subframeBrecht Van Lommel
2022-03-14Auto-generate RNA-structs declarations in `RNA_prototypes.h`Julian Eisel
So far it was needed to declare a new RNA struct to `RNA_access.h` manually. Since 9b298cf3dbec we generate a `RNA_prototypes.h` for RNA property declarations. Now this also includes the RNA struct declarations, so they don't have to be added manually anymore. Differential Revision: https://developer.blender.org/D13862 Reviewed by: brecht, campbellbarton
2022-03-08Cleanup: spelling in comments, use C++ comments for disabled codeCampbell Barton
2022-03-07Cleanup: use doxy-sections for pipeline, text_drag & effectsCampbell Barton
Also improve on the doc-string for RE_RenderFrame & RE_RenderAnim.
2022-03-02Fix potential crash during proxy buildingRichard Antalik
Last step of proxy building caused crash due to thread race contition when acessing ed->seqbase. Looking at code, it seems that calling IMB_close_anim_proxies on original strips is unnecessary so this code was removed to resolve this issue. Locking seqbase data may be possible, but it's not very practical as many functions access this data on demand which can easily cause program to freeze. Reviewed By: sergey Differential Revision: https://developer.blender.org/D14210
2022-02-23Cleanup: Remove repeated word in commentsCampbell 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
2022-02-10Cleanup: copyright in headers, spelling in commentsCampbell Barton
- Order year consistently. - Minor consistency (case, double-spacing). - Correct typos.
2022-02-09Cleanup: simplify copyright headers for sequence & imbufCampbell Barton
2022-02-07VSE: Add filter method to strip transformDimitry Kaplin
Previously, nearest interpolation filter was used for preview, because it offered good performance and bilinear was used for rendering. This is not always desirable behavior, so filter method can now be chosen by user. Chosen method will be used for preview and for rendering. Reviewed By: ISS Differential Revision: https://developer.blender.org/D12807
2022-02-02Cleanup: spelling in commentsCampbell Barton
2022-02-01Fix compile error with audaspace disabledJulian Eisel
Argument was removed in a recent commit.
2022-02-01Fix T94287: gaps between strips when adding moviesRichard Antalik
Currently, audio and video strips are synchronized based on data from media stream, which is nice, but this causes gaps between strips. This synchronization was implemented by moving movie strip position relative to sound, which doesn't make much sense for user which is mostly interested in editing video. Code was bit hard to read, so it has been simplified. Ideally video stream time would be easily accessible so synchronization could be done at any time, but this is not necessary at this point. Reviewed By: zeddb Differential Revision: https://developer.blender.org/D13948
2022-01-26Fix T94149: Incorrect sound strip lengthRichard Antalik
Fix formula in function `SEQ_sound_update_length`. Formula for sound strip length was changed in commit ded68fb1027, when strip is added to timeline, but it was not changed in function mentioned above.
2022-01-26VSE: Build proxies only for slow moviesRichard Antalik
This change applies only for automatic proxy building, when strip is added to timeline. Manual building process is not affected. Don't build proxy file if movie is already fast enough to seek. To determine seek performance, check if whole GOP can be decoded in 100 milliseconds. To consider some variation in GOP size, large number of packets are read, assuming that each packet will produce 1 frame. While this is not technically correct, it does give quite accurate estimate of maximum GOP size. This test will ensure consistent performance on wide array of machines. Check should be done in order of few milliseconds. Reviewed By: sergey Differential Revision: https://developer.blender.org/D11671
2022-01-25VSE: Use timecodes by defaultRichard Antalik
Movies with variable frame rate can cause mismatch of displayed frame when proxies are used. Since proxies are not used for rendering, this means, that output may be different than expected. This problem can be avoided when timecodes are used. Set used timecode to Record Run. Timecodes are built with proxies at the same time, therefore if proxies are built and used this will resolve possible mismatch of output. Record run is chosen, because it will show frames based on time they were encoded by encoder and should match behavior as if movie was played back at normal speed. This change is done only for new strips in order to not overwrite user defined settings. Other minor changes: - When proxies are enabled, size 25% is no longer set by default. It was mostly annoying anyway. - Silence warning when timecode file is not present. This was introduced in 4adbe31e2fc98f982aed3d97505513750ec348d4. Previously use of timecodes was hard-coded in sequencer and this error would spam console if timecodes would be enabled by default and proxies would be never built. ref: T95093 Reviewed By: sergey Differential Revision: https://developer.blender.org/D13905
2022-01-24Cleanup: sort struct forward declarationsCampbell Barton
2022-01-19VSE: Support copy-pasting strips with animationRichard Antalik
When copying strips between 2 scenes, it wasn't possible to copy animation curves along with strips. In this patch curves are copied into clipboard `ListBase`. When pasted, original curves are moved into temporary `ListBase` and curves in clipboard are moved into scene action. This is because when strips from clipboard have to be renamed, function `SEQ_ensure_unique_name()` does fix RNA paths of curves, but this is done globally for all curves within action. After strips are renamed, restore original curves from backup. Note: This patch handles only fcurves. Drivers and actions are currently not handled anywhere in VSE. Fixes T77530 Reviewed By: sergey Differential Revision: https://developer.blender.org/D13845
2022-01-19Cleanup: VSE animation handlingRichard Antalik
- Move functions that handle animation to own file - `animation.c` - Refactor `SEQ_offset_animdata` and `SEQ_free_animdata` functions - Add function `SEQ_fcurves_by_strip_get` to provide more granular and explicit way for operators to handle animation - Remove function `SEQ_dupe_animdata`, do curve duplication explicitly in operator code, which makes more sense to do. Further this function was also used for renaming strips which makes no sense. - Refactor usage of function `SEQ_free_animdata` and remove XXX comment. Now this functiuon is no longer called when `Sequence` data is freed implicitly, it is done explicitly in high level function `SEQ_edit_remove_flagged_sequences` Reviewed By: sergey Differential Revision: https://developer.blender.org/D13852
2022-01-12DNA: Add space clip editor defaultsSimon Lenz
This is my attempt of adding defaults for the space clip editor struct (in line with https://developer.blender.org/T80164). It adds the default allocation for `SpaceClip` and `node_composite_movieclip.cc`. This also solves the error below (for C++ files using the DNA_default_alloc), which was put forward by Sergey Sharybin. Differential Revision: https://developer.blender.org/D13367 Reviewed by: Julian Eisel
2022-01-12Revert "BLI: Refactor vector types & functions to use templates"Clément Foucault
Includes unwanted changes This reverts commit 46e049d0ce2bce2f53ddc41a0dbbea2969d00a5d.
2022-01-12BLI: Refactor vector types & functions to use templatesClment Foucault
This patch implements the vector types (i.e:`float2`) by making heavy usage of templating. All vector functions are now outside of the vector classes (inside the `blender::math` namespace) and are not vector size dependent for the most part. In the ongoing effort to make shaders less GL centric, we are aiming to share more code between GLSL and C++ to avoid code duplication. ####Motivations: - We are aiming to share UBO and SSBO structures between GLSL and C++. This means we will use many of the existing vector types and others we currently don't have (uintX, intX). All these variations were asking for many more code duplication. - Deduplicate existing code which is duplicated for each vector size. - We also want to share small functions. Which means that vector functions should be static and not in the class namespace. - Reduce friction to use these types in new projects due to their incompleteness. - The current state of the `BLI_(float|double|mpq)(2|3|4).hh` is a bit of a let down. Most clases are incomplete, out of sync with each others with different codestyles, and some functions that should be static are not (i.e: `float3::reflect()`). ####Upsides: - Still support `.x, .y, .z, .w` for readability. - Compact, readable and easilly extendable. - All of the vector functions are available for all the vectors types and can be restricted to certain types. Also template specialization let us define exception for special class (like mpq). - With optimization ON, the compiler unroll the loops and performance is the same. ####Downsides: - Might impact debugability. Though I would arge that the bugs are rarelly caused by the vector class itself (since the operations are quite trivial) but by the type conversions. - Might impact compile time. I did not saw a significant impact since the usage is not really widespread. - Functions needs to be rewritten to support arbitrary vector length. For instance, one can't call `len_squared_v3v3` in `math::length_squared()` and call it a day. - Type cast does not work with the template version of the `math::` vector functions. Meaning you need to manually cast `float *` and `(float *)[3]` to `float3` for the function calls. i.e: `math::distance_squared(float3(nearest.co), positions[i]);` - Some parts might loose in readability: `float3::dot(v1.normalized(), v2.normalized())` becoming `math::dot(math::normalize(v1), math::normalize(v2))` But I propose, when appropriate, to use `using namespace blender::math;` on function local or file scope to increase readability. `dot(normalize(v1), normalize(v2))` ####Consideration: - Include back `.length()` method. It is quite handy and is more C++ oriented. - I considered the GLM library as a candidate for replacement. It felt like too much for what we need and would be difficult to extend / modify to our needs. - I used Macros to reduce code in operators declaration and potential copy paste bugs. This could reduce debugability and could be reverted. - This touches `delaunay_2d.cc` and the intersection code. I would like to know @howardt opinion on the matter. - The `noexcept` on the copy constructor of `mpq(2|3)` is being removed. But according to @JacquesLucke it is not a real problem for now. I would like to give a huge thanks to @JacquesLucke who helped during this and pushed me to reduce the duplication further. Reviewed By: brecht, sergey, JacquesLucke Differential Revision: https://developer.blender.org/D13791