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-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-10LibOverride: Fix issues related to ID name differences.Bastien Montagne
Local datablocks (including overrides) need to have a unique name, which can then differ from the reference linked one (especially when there are several local overrides of a same linked data). Issue is, ID name is a 'rna name property', and as such used as reference when dealing with override of collections of IDs, so we cannot have a changing name. The solution implemented here should work and is simple, but it may have some issues in corner cases (time will say), it is not really robust. Alternative solution would be to store ID pointers as reference in override operations, instead of there name. But that would potentially add quiet a lot of overhead to foreach looping in `lib_query.c`.
2020-04-16Fix T75730: Properly remove unused override properties/operations.Bastien Montagne
While code is supposed to handle gracefully invalid override operations, it is much cleaner to avoid those completely.
2020-04-16Refactor/strengthen a bit invalid operands checks when applying an override ↵Bastien Montagne
operation.
2020-04-03Code Quality: Replace for loops with LISTBASE_FOREACHDalai Felinto
Note this only changes cases where the variable was declared inside the for loop. To handle it outside as well is a different challenge. Differential Revision: https://developer.blender.org/D7320
2020-04-03Cleanup: Including "BLI_listbase.h" for LISTBASE_FOREACH macroDalai Felinto
These headers are not needed right away, but will be in the upcoming commit.
2020-03-19Cleanup: `make format` after SortedIncludes changeDalai Felinto
2020-03-19Cleanup: spellingCampbell Barton
2020-02-11CLeanup: clang-formatCampbell Barton
2020-02-10Cleanup: Rename `BKE_library_override_` functions to `BKE_lib_override_library_`Bastien Montagne
pqrt of T72604.
2020-02-10Cleanup/refactor: Rename `BKE_library` files to `BKE_lib`.Bastien Montagne
Note that `BKE_library.h`/`library.c` were renamed to `BKE_lib_id.h`/`lib_id.c` to avoid having a too generic name here. Part of T72604.
2019-12-11Cleanup: disable debug print define in override code.Bastien Montagne
Thanks to Blazej Floch (@bfloch) for the head-up.
2019-11-24Cleanup: doxygen commentsCampbell Barton
Also correct some outdated symbol references, add missing 'name' commands.
2019-11-22LibOverride: Make diffing several times faster.Bastien Montagne
Diffing on undo steps is a critical performance point of override system, although not required for override itself, it gives user immediate feedback ove what is overridden. Profiling showed that rna path text search over overrides operations was by far the most costly thing here, so now using a runtime temp ghash mapping for this search instead. Seems to give at least 5 times speedup on big production rig.
2019-11-08Fix T70789: Using Remove Single Override breaks file loading (crash).Bastien Montagne
We only need to refine rna pointer for actual collection properties, other arrays we handle directly the the appy callback.
2019-10-04LibOverride: Fix last main issue with overriding custom properties.Bastien Montagne
Now, custom props defined as overriddable can be overridden, saved, reloaded, etc. That fixes the last main issue with them. Note that custom props still have a lot of glitches and weirdness in their overriding behavior, but for now the most important is finally achieved, will let them rest and settle a bit, those have been incredibly painful to tame... :(
2019-10-04LibOverride: Fix bad handling of 'store' callback in IDProps case.Bastien Montagne
We need same kind of default handling for IDProps as we already have for the diff callback.
2019-09-25LibOverride: Fix several issues in handling of overridable status for IDProps.Bastien Montagne
The triple possible status of an PropertyRNA (actual C-defined prop, py-defined IDprop behaving similar ot RNA one, or actual 'pure' custom prop) is really confusing... Not to mention the _RNA_UI ugly thingy on top of that. :/
2019-08-23RNA: Cleanup PointerRNA structJacques Lucke
The old layout of `PointerRNA` was confusing for historic reasons: ``` typedef struct PointerRNA { struct { void *data; } id; struct StructRNA *type; void *data; } PointerRNA; ``` This patch updates it to: ``` typedef struct PointerRNA { struct ID *owner_id; struct StructRNA *type; void *data; } PointerRNA; ``` Throughout the code base `id.data` was replaced with `owner_id`. Furthermore, many explicit pointer type casts were added which were implicit before. Some type casts to `ID *` were removed. Reviewers: brecht, campbellbarton Differential Revision: https://developer.blender.org/D5558
2019-08-22Cleanup: Split some code out of rna_access.cBastien Montagne
That file was getting out of control, now comparison/override RNA code is in `rna_access_compare_override.c`. 1K lines of code for now, but that area is likely to grow more in the future... Note that we can probably split more out of `rna_access.c`, but for now that will do.