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-07-17Cleanup: Removed incorrect `// namespace DEG` commentSybren A. Stüvel
No functional changes.
2020-07-16Fix T78920: missing depsgraph relation when using sound strips in VSESybren A. Stüvel
Having a sound strip in the VSE caused a missing relation error to be logged on the console. This was caused by the AUDIO depsgraph component not having an entry node. This commits adds that node, and sets up relations correctly. Differential Revision: https://developer.blender.org/D8290 Reviewed By: Sergey
2020-07-10Cleanup: spellingCampbell Barton
2020-07-09Particles: Create a simulation state for every Particle Simulation nodeJacques Lucke
Every Particle Simulation node has a name (or a path when it is in a node group). This name has to be used in the Simulation modifier on a point cloud to see the particles. Caching has been disabled for now, because it was holding back development a bit. To reset the simulation, go back to frame 1. Currently, there is no way to influence the simulation. There are just some randomly moving points. Changing that is the next step.
2020-07-03Clang-Tidy: More fixed of redundant check before deleteSergey Sharybin
For some reason got unnoticed in the original cleanup pass.
2020-07-03Clang-Tidy: Enable redundant static qualifier warningSergey Sharybin
This change enables readability-static-definition-in-anonymous-namespace warning in .clang-tidy configuration.
2020-07-03Depsgraph: Use C++ style of guarded allocation of objectsSergey Sharybin
2020-06-30Fix missing relation in compositor depsgraphSybren A. Stüvel
This is a fix for c7694185c92. An object without base can still be in the depsgraph, and then the `VIEW_LAYER_EVAL` node does not exist. This popped up while @Sergey was looking into T78264.
2020-06-30LibOverride: properly tag owner ID for override refresh, when embedded one ↵Bastien Montagne
is affected. Note that this is partially WIP code, we only take care of shapekeys here for now. Also, move this tagging for liboverride refresh into same chack as the one for tagging editors, sounds more logical that way.
2020-06-29Depsgraph: introduce blender::deg namespaceJacques Lucke
Reviewers: sergey Differential Revision: https://developer.blender.org/D8150
2020-06-29BLI: remove blender::Optional in favor of std::optionalJacques Lucke
`std::optional` can be used now, because we switched to C++17.
2020-06-29Cleanup: use std::make_unique instead of blender::make_uniqueJacques Lucke
This is possible, because we use C++17 now.
2020-06-27Docs: correct invalid doxygen params & referencesCampbell Barton
2020-06-26Cleanup: Depsgraph, remove unused `Base *` parameterSybren A. Stüvel
The `Base *` parameter of `DepsgraphRelationBuilder::build_object()` was made redundant by c7694185c92aa. This commit actually removes it. No functional changes.
2020-06-26Fix T78071: Drivers reading object visibility not updating automaticallySybren A. Stüvel
A driver reading `Object.hide_viewport` would break when that object was hidden. Hidden objects don't have the `OBJECT_BASE_FLAGS` node in the depsgraph, but that node was required for the driver to work. Now the `OBJECT_FROM_LAYER` component (which optionally contains the `OBJECT_FROM_LAYER` node) has explicit `ENTRY` and `EXIT` nodes, which are used for relations with other components. These relations now remain valid, even when the `OBJECT_FROM_LAYER` node is absent. Differential Revision: https://developer.blender.org/D8124 Reviewed By: sergey
2020-06-25Revert "Fix T78071: Drivers reading object visibility not updating ↵Sybren A. Stüvel
automatically" This reverts commit baa0da3e69a1225cd18c075be5563c7d811b5347. The commit causes some issues I didn't foresee, I'd rather take the time to do it properly than hastily try and commit a fix for it.
2020-06-25Cleanup: spellingCampbell Barton
2020-06-25Fix T78071: Drivers reading object visibility not updating automaticallySybren A. Stüvel
An object can be targeted by a driver that reads its `hide_viewport` or `hide_render` property. The existence of such a driver will create a relation between the 'sync base flags' depsgrpah node, and the datablock containing the driver. When the object is hidden, however, it has no base, and thus it had no 'sync base flags' depsgraph node. To support such a driver, that depsgraph node is now always added, but for hidden objects it will just be a no-op. If the node is not used by anything, it will be automatically disconnected and have a negligible effect on performance.
2020-06-23Fix T77712: Crash on proxied rig, custom bone shape, driver targeting rigSybren A. Stüvel
It turns out that `DepsgraphNodeBuilder::build_object_data_geometry(Object *object, bool is_object_visible)` was called for the custom shape with `is_object_visible=false` when there are drivers, and `is_object_visible=true` when there aren't any.
2020-06-18LibOverride: only tag actually changed orig IDs for automatic override diffing.Bastien Montagne
This makes any operation (including mere bone selection) several times faster on some complex production character, since we typically now only need to diff a single ID, instead of tens of them.
2020-06-18Depsgraph: use blender::Map instead of std::mapJacques Lucke
We decided to use our own map data structure in general for better readability and performance. Reviewers: sergey Differential Revision: https://developer.blender.org/D7987
2020-06-15Fix unhandled RECALC options in depsgraph code after recent change.Bastien Montagne
Spotted by @LazyDodo on IRC, thanks.
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-10Depsgraph: use blender::Set instead of std::setJacques Lucke
We decided that `blender::Set` should be the default choice for a set data structure in Blender. Reviewers: sergey Differential Revision: https://developer.blender.org/D7982
2020-06-10Depsgraph: use blender::Vector instead of std::vectorJacques Lucke
We decided that `blender::Vector` should be the default choice for a vector data structure in Blender. Reviewers: sergey Differential Revision: https://developer.blender.org/D7981
2020-06-10Depsgraph: use native Set data structureJacques Lucke
Differential Revision: https://developer.blender.org/D7982
2020-06-10BLI: update behavior of Map.lookup_or_addJacques Lucke
Previously, this function would expect a callback function as parameter. This behavior is now in Map.lookup_or_add_cb. The new version just takes the key and value directly.
2020-06-09Cleanup: move hashing of OperationIDKey to member functionJacques Lucke
2020-06-09BLI: rename ArrayRef to SpanJacques Lucke
This also renames `MutableArrayRef` to `MutableSpan`. The name "Span" works better, because `std::span` will provide similar functionality in C++20. Furthermore, a shorter, more concise name for a common data structure is nice.
2020-06-09BLI: put C++ data structures in "blender" namespace instead of "BLI"Jacques Lucke
We plan to use the "blender" namespace in other modules as well.
2020-06-09BLI: generally improve C++ data structuresJacques Lucke
The main focus here was to improve the docs significantly. Furthermore, I reimplemented `Set`, `Map` and `VectorSet`. They are now (usually) faster, simpler and more customizable. I also rewrote `Stack` to make it more efficient by avoiding unnecessary copies. Thanks to everyone who helped with constructive feedback. Approved by brecht and sybren. Differential Revision: https://developer.blender.org/D7931
2020-06-08Simulations: initial simulation state and cacheJacques Lucke
The current particle state is stored in a `CustomData` instance and the cache is stored in `PointCache`. The current state exists on the copy-on-write copies of the simulation, while the cache only exists in the original data block. This patch implements a temporary trivial particle simulation that does not use the node system yet. It is used for testing and will be replaced soon. `PointCache` still has some limitations that need to be overcome using separate refactorings. For example, we need to be able to store the number of particles in the point cache. Also we need to change which attributes are stored for a particle system more dynamically than is currently possible afaik. Reviewers: brecht Differential Revision: https://developer.blender.org/D7836
2020-06-02Depsgraph: Remove unneeded `RNA_path_resolve`Jeroen Bakker
Found during research of {T77124}. In `build_driver_data` an identical RNA_path is resolved twice. In stead of resolving it twice this patch will construct the `property_exit_key` based on the resolution of `property_entry_key`. This change isn't noticeable for users. Just a cleanup as it isn't needed to do the same logic twice. Reviewed By: Sergey Sharybin Differential Revision: https://developer.blender.org/D7872
2020-06-02Merge branch 'blender-v2.83-release'Bastien Montagne
2020-06-02Cleanup: use C++'s nullptr instead of our own C NULL define, in C++ code.Bastien Montagne
2020-06-02Merge branch 'blender-v2.83-release'Bastien Montagne
2020-06-02Fix T77192: Crash when opening bunny.blend file.Bastien Montagne
New depsgraph code handling drivers was not checking for possible NULL rna_path, as done everywhere else in code...
2020-05-28Fix T65889: Hair Particles not updating when using image sequenceSergey Sharybin
2020-05-28Depsgraoh: Fix missing texture node allocationSergey Sharybin
It was causing wrong binding for image animation: since there was no ID node for texture at the moment of build_animdata original texture ID was passed to the callback. This is not what is supposed to happen. This is part of fix for T65889.
2020-05-28Cleanup: spellingCampbell Barton
2020-05-25Simulations: pass simulation data block to update functionJacques Lucke
2020-05-25Merge remote-tracking branch 'origin/blender-v2.83-release'Sybren A. Stüvel
2020-05-25Fix T76897: Lamp Power Not Updating from DriverSybren A. Stüvel
Lamps were not tagged with `ID_RECALC_SHADING` when they were updated from drivers. As a result, Cycles considered the lamp as unchanged. This is resolved by having a (seemingly non-functional) callback in a new `LIGHT_UPDATE` depsgraph node. This patch unconditionally adds the `LIGHT_UPDATE` node + the relation from the lamp's PARAMETERS node. Differential Revision: https://developer.blender.org/D7822 Reviewed by: brecht
2020-05-19Merge branch 'blender-v2.83-release'Philipp Oeser
2020-05-19Fix T76689: Armature layers not indicating the existence of bonesSybren A. Stüvel
From what I can see, there are two issues at play in {T76689} and its merged-in report {T76590}: - In Blender ≤ 2.79 the bone layer dots were updated in the draw code. This ensured the info was up to date before drawing. This is no longer possible, as the drawing code uses evaluated objects, and those should not be written to. This has been addressed in rB709f126e8143 by calling the update function explicitly in various places in the code. The problem is that this wasn't added to all necessary spots. - When in edit mode, changes are made to the edit bones but not to the 'actual' bones (this is synced when exiting edit mode). This causes undo to mess up the layer indicators. I think both issues can be addressed by having the dependency graph update the used layer info as part of the armature evaluation. This will make the undo system work properly, and allows the removal of some `BKE_armature_refresh_layer_used()` from various places. There is still the issue that there are two functions (`BKE_armature_refresh_layer_used()` and `ED_armature_edit_refresh_layer_used()`) that are both responsible for updating `bArmature::layer_used`. This is a trickier thing to solve, though, as the definition of the `EditBone` struct resides in the armature editor module. This means that blenkernel can't iterate over edit bones, but on the other hand the dependency graph shouldn't call any editor functions either. This is why I left the `ED_armature_edit_refresh_layer_used()` calls untouched. The downside of recalculating `layer_used` from the dependency graph (at least in the way that I did it now) is that it is called every time a user moves a bone in pose mode. This frequency of updates is not necessary. Differential Revision: https://developer.blender.org/D7709
2020-05-14Fluid: Rename smoke flow forces to fluid flow forcesSebastián Barschkis
Better to use more general term since in theory these forces can be used for smoke and liquid.
2020-05-13Simulation: Add modifier to access simulation dataJacques Lucke
For now the "Simulation" modifier only exists for point cloud objects, because we need this for the particle system. Right now, the modifier is doing nothing. There is a new `DEG_add_simulation_relation` function that is used by the modifier to make sure that the simulation is evaluated before the modifier is executed. Reviewers: brecht, sergey Differential Revision: https://developer.blender.org/D7549
2020-05-09Cleanup: doxy commentsCampbell Barton
2020-05-09Cleanup: spellingCampbell Barton
2020-05-08Cleanup: take includes out of 'extern "C"' blocksJacques Lucke
Surrounding includes with an 'extern "C"' block is not necessary anymore. Also that made it harder to add any C++ code to some headers, or include headers that have "optional" C++ code like `MEM_guardedalloc.h`. I tested compilation on linux and windows (and got help from @LazyDodo). If this still breaks compilation due to some linker error, the header containing the symbol in question is probably missing an 'extern "C"' block. Differential Revision: https://developer.blender.org/D7653