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
2020-09-29Quiet unused variable warningJacques Lucke
2020-09-24Fix part of asserts in LibOverride when resynching.Bastien Montagne
We can only re-apply overrides fron the old local overrides to the newly generated ones after all IDs have been properly remapped and renamed. Otherwise override operations based on ID names may fail. Related to T81059, found while investigating it.
2020-09-24Fix LibOverride Resync generating orphaned data-blocks.Bastien Montagne
Part of the code handling deletion of old, not needed anymore local override IDs, was not working properly, effectively only deleting one ID ever. New code should also be a bit faster, though this should not be really visible from user perspective. Related to T81059, found while investigating it.
2020-09-24Fix crash related to liboverride differential operations code.Bastien Montagne
Root of the issue is how we generate the storage ID for the differential override operations. However, since those are disabled anyway currently, simply comment out creation of this copy for now, we can revisit this if/when we decide to re-activate differential overrides. Related to T81059, found while investigating it.
2020-09-24Cleanup: spellingCampbell Barton
2020-09-23LibOverride: Add operator to convert a proxy object into an override.Bastien Montagne
In the end the process is surpringly simple, we only need to manually convert the proxy itself into an override (which is trivial), and then run common code with the default 'make override' operation. Fix T81059: Add operator to convert proxies to library overrides.
2020-09-23Fix (unreported) LibOverride: RNA asserts when applying overrides.Bastien Montagne
Some RNA setters require ID data they operate on to be in G_MAIN. Unfortunately, when we apply overrides as part of a .blend file reading, new Main is not yet made global one, so we have to do it temporarily here. This is a fairly ugly hack, but it should be harmless and safe.
2020-09-23LibOverride: Tweak override creation code.Bastien Montagne
This is a first step towards supporting conversion of proxies, done separately to make it easy to pinpoint in case it would create problems. It is not expected to cause any change in behavior currently.
2020-09-08Cleanup: consistent syntax for doxygen parametersCampbell Barton
Also use back-slash instead of '@'.
2020-08-29Cleanup: spellingCampbell Barton
2020-08-28Merge branch 'blender-v2.90-release' into masterBastien Montagne
2020-08-28Fix T80078: Overrides: Crash with animated IK control on linked armature.Bastien Montagne
Issue was with our dear posebones again... when applying overrides we keep the same address/pointer for the IDs themselves, (which avoids us the need to remap their usages), but their inner data is often re-allocated. Therefore, we need once again to go over armature objects and invalidate their posebone pointers. This should also be back-ported to Blender LTS 2.83. Maniphest Tasks: T80078 Differential Revision: https://developer.blender.org/D8734
2020-08-20LibOverride: Add 'delete and use linked data' operation.Bastien Montagne
This will re-link all usages of a library override data-block (including all of its override dependencies) to its reference linked IDs, and delete those liboverrides. As usual, it is available in the ID sub-menu of the outliner context right-click menu. Part of T76555.
2020-08-20Cleanup: clang-formatCampbell Barton
2020-08-19LibOverride: Add initial version of 'resync' operation.Bastien Montagne
Available from the usual ID submenu in the Outliner context menu. The goal of this operator is to re-create the override from the linked data, while preserving existing defined overrides. This allows to update local opverrides when relations between datablocks are changed in source library linked data. Part of T76555.
2020-08-13Merge branch 'blender-v2.90-release' into masterBastien Montagne
2020-08-13Fix T79591: Liboverride: do not update overrides on missing linked data.Bastien Montagne
It makes no sense to generate/update overrides from missing (broken linked) reference data, just keep existing ones unchanged then.
2020-08-07Cleanup: Blenkernel, Clang-Tidy else-after-return fixesSybren A. Stüvel
This addresses warnings from Clang-Tidy's `readability-else-after-return` rule in the `source/blender/blenkernel` module. No functional changes.
2020-08-05Cleanup: missing 'initialize' -> 'init' from previous cleanupCampbell Barton
2020-07-27Cleanup: comments.Bastien Montagne
2020-07-27Cleanup: Minor renaming.Bastien Montagne
2020-07-23Cleanup: Clang format.Bastien Montagne
2020-07-23Fix (unreported) bad handling of pointers in overrides with shapekeys.Bastien Montagne
2020-07-23LibOverride: Add core functions to reset a library override.Bastien Montagne
This means that we delete all override properties except for those over ID pointers *if* the assigned pointer matches the linked data hierarchy. Then we reload affected datablocks.
2020-07-23LibOverride: Fix missing ID update tag in `BKE_lib_override_library_update`.Bastien Montagne
2020-07-23LibOverride: change runtime data into a real struct.Bastien Montagne
Needed for upcoming changes.
2020-07-23LibOverride: Optimize/fix new generic 'relation-based' make override code.Bastien Montagne
This commit mostly avoids following 'loop back' ID pointers, since those should never define an actual relationship.
2020-07-21Cleanup: Comments.Bastien Montagne
2020-07-21Fix (unreported) LibOverride creation adding things to linked collections.Bastien Montagne
This is strictly forbidden, and sill cause crashes with undo in some cases...
2020-07-20Fix (unreported) bad handling of shapekeys when applying override rules.Bastien Montagne
We need to do a full proper swap of those shape keys as well, previous code ended up breaking relationships between data-blocks...
2020-07-20Fix T78958: Library Override crash: undo make local.Bastien Montagne
2020-07-16Cleanup: spellingCampbell Barton
2020-07-15LibOverride: move most of 'complete override creation' from ED_object to ↵Bastien Montagne
BKE_lib_override. This code is fairly complex and can be used in more places, better not duplicate that logic and just have it in BKE area.
2020-07-14Cleanup: function name not following its module conventions.Bastien Montagne
2020-07-14LibOverride: Move code tagging reauired dependencies of an override into BKE.Bastien Montagne
This is fairly generic code that can be re-used in other places.
2020-07-13LibOverride: Cleanup: Remove option to disable library overrides.Bastien Montagne
Code is mature enough now to not need this anymore, people who do not want to use liboverrides can just not create them.
2020-07-01Cleanup: spellingCampbell Barton
2020-06-30LibOverride: Add proper handling of shapekeys to core override code itself.Bastien Montagne
2020-06-30LibOverride: Add concept of 'embedded'/'virtual' override.Bastien Montagne
IDs like embedded ones (master collections, root node trees) cannot be linked, and thus cannot be real override themselves. Since they are managed by their owner ID, that one will also have the overrides for their locally edited properties. We still need a way to mark them as overridden though, for various UI and override-internal purposes, this is done using a new ID flag. Note that since Shae Keys are not linkable, and their pointers are not editable in RNA, they are also considered as embedded from override point of view.
2020-06-30Cleanup: LibOverride: Naming.Bastien Montagne
2020-06-30LibOverride: Fix improper update of depsgraph relations.Bastien Montagne
2020-06-30Cleanup: LibOverride: Replace raw pointers checks by proper macros.Bastien Montagne
This is cleaner, but also crucial to avoid weird issues when behaviors of those checks are modified...
2020-06-30Cleanup (from clang format)...Bastien Montagne
2020-06-19LibOverride: Cleanup: remove unused parameter.Bastien Montagne
2020-06-19LibOverride: Parallelize diffing of Main database.Bastien Montagne
This will not give any noticeable improvements in common editing tasks, since then usually only a very few IDs are changed and checked for override updates. However, it makes full override diffing process several times faster (happens usually when saving a .blend file, but could also help e.g. when multi-editing several override objects at the same time...).
2020-06-19LibOverride: add some more debug timing prints...Bastien Montagne
2020-06-18LibOverride: Improve performances by using better string hashing function.Bastien Montagne
This is not really huge improvements, but 2% are always good to have.
2020-06-18LibOverride: increase speed of RNA diffing process.Bastien Montagne
By using own path construction instead of handy printf-like functions, we get a 10% improvement on overall diffing process! This remains way to slow on some complex production characters, but always good to have still.
2020-06-12LibOverride: Remove 'auto override' option.Bastien Montagne
Now all overrides are handled that way. Performances of the process look decent enough, even with production characters... If performance issues still arise, we'll investigate other solutions. This should also make T73154 obsolete now.
2020-06-10Enable (deep) copy of overrides.Bastien Montagne
This commit enables basic copy of overrides on generic ID level, as well as from (deep) copy operators for objects and collections. So e.g. if your linked overridden caracter is in a collection, you can now (from the outliner) Duplicate that override collection to get a new overriding copy of the character. We still need operators (new or modifying existing ones) to handle that from 3DView e.g. Note that deep copy code for objects/collections (and incidently animdata) had to be modified to avoid duplicating/making local IDs that remain linked ones being used by overrides ones.