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-08-20Depsgraph: refactor tagging after time changesJacques Lucke
This reverts {rB1693a5efe91999b60b3dc0bdff727473b3bd00bb} and implements an alternative solution. The old patch had the problem that the depsgraph would always evaluate at the current frame of the original scene (even when `DEG_evaluate_on_framechange` was used). Now it is possible to evaluate the depsgraph at a specific frame without having to change the original scene. Reviewers: sergey, sybren Differential Revision: https://developer.blender.org/D8616
2020-07-03Depsgraph: Use C++ style of guarded allocation of objectsSergey Sharybin
2020-06-29Depsgraph: introduce blender::deg namespaceJacques Lucke
Reviewers: sergey Differential Revision: https://developer.blender.org/D8150
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-04-28Cleanup: remove unnecessary includesJacques Lucke
2020-04-28Depsgraph: use BLI::Set for entry_tagsJacques Lucke
Reviewers: sergey Differential Revision: https://developer.blender.org/D7555
2020-04-28Depsgraph: Use BLI::Map in more placesJacques Lucke
Reviewers: sergey Differential Revision: https://developer.blender.org/D7519
2020-01-28Cleanup: changed NULL to nullptr in depsgraph C++ codeSybren A. Stüvel
No functional changes.
2020-01-24Depsgraph: Refactor, move debug struct to own fileSergey Sharybin
2020-01-24Depsgrapg: Refactor, move Relation to own fileSergey Sharybin
2020-01-24Depsgraph: Refactor, wrap debug fields into own structureSergey Sharybin
2019-10-11Depsgraph: Cleanup, promote is_evaluating querySergey Sharybin
This way it might be used for sanity checks in RNA API as well.
2019-09-11Depsgraph: Pass bmain to depsgraph object creationSergey Sharybin
Currently unused, but will allow to keep of an owner of the depsgraph. Could also simplify other APIs in the future by avoiding to pass bmain explicitly to relation update functions and things like that.
2019-08-25Cleanup: redundant struct declarationsCampbell Barton
2019-08-01Cleanup: misc spelling fixesCampbell Barton
T68035 by @luzpaz
2019-07-26Fix T66378: Missing animation update when switching view layerSergey Sharybin
Current frame is stored in a scene, and scene might have multiple view layers. The inactive view layers were not informed about scene's frame being changed, so when user switched back to view after changing scene frame it was in an inconsistent state between current scene frame and animation. Now we tag scene for time changes, so dependency graph can catch up and do proper update. Currently tagging is from quite generic place. Probably better approach would be to tag from where frame is actually being assigned. Downside of this is that it's easy to miss some places. Reviewers: brecht, mont29 Reviewed By: brecht Maniphest Tasks: T66378 Differential Revision: https://developer.blender.org/D5332
2019-05-29DrawManager: Cycles+GPencilJeroen Bakker
Fix for GPencil and Cycles Render draw type. GPencil objects were only shown when overlays were turned on. The cause of this is an optimization we did to not populate any draw engine when an external renderer was used with overlays turned off. This will check if there is any visible GPencil object in the scene. if so it will still perform the loop. `DEG_id_type_any_exists` can check if any object of a certain type_id is in the result. This check is also being used to check if there are any visible grease pencil objects as a precheck in `DRW_render_check_grease_pencil`. Reviewed By: brecht, fclem, antoniov Maniphest Tasks: T65191 Differential Revision: https://developer.blender.org/D4962
2019-05-23Render: Use dependency graph for compositor/sequencerSergey Sharybin
This change makes it so a minimal dependency graph which only includes compositor and sequencer is built for the render pipeline purposes. Tricky part here is that it's only compositor itself and sequencer who to use this dependency graph and IDs from it. Render engines are still to be provided original IDs because: - They will create dependency graph for the given scene, and currently it is not possible to create dependency graph from CoW scene. - IDs from the compositor/sequencer dependency graph are "stripped", as in, they wouldn't have all view layers, collections or objects required for proper final render. This creates annoying mess of mixing evaluated and original scene access in various parts of the pipeline. Fixes T63927: Compositing nodes - drivers don't really work Reviewers: brecht Maniphest Tasks: T63927 Differential Revision: https://developer.blender.org/D4911
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-02-18doxygen: add newline after \fileCampbell Barton
While \file doesn't need an argument, it can't have another doxy command after it.
2019-02-15Depsgraph: Move RNA lookup to an own query classSergey Sharybin
Currently should have no functional changes, but allows to implement runction optimizations more localized and easily.
2019-02-15Cleanup: IndentationSergey Sharybin
2019-02-08Fix T61231: File open and undo looses unkeyed changesSergey Sharybin
Only flush copy-on-write to animation when user makes changes.
2019-02-07Cleanup: sort struct blocks, descriptionCampbell Barton
2019-02-06Cleanup: remove redundant doxygen \file argumentCampbell Barton
Move \ingroup onto same line to be more compact and make it clear the file is in the group.
2019-02-01Cleanup: remove original authorCampbell Barton
Missed when removing contributors.
2019-02-01Cleanup: remove redundant, invalid info from headersCampbell Barton
BF-admins agree to remove header information that isn't useful, to reduce noise. - BEGIN/END license blocks Developers should add non license comments as separate comment blocks. No need for separator text. - Contributors This is often invalid, outdated or misleading especially when splitting files. It's more useful to git-blame to find out who has developed the code. See P901 for script to perform these edits.
2019-01-31Depsgraph: Comb code to a better state all overSergey Sharybin
Some summary of changes: - Don't use DEG prefix for types and enumerator values: the code is already inside DEG namespace. - Put code where it locally belongs to: avoid having one single header file with all sort of definitions in it. - Take advantage of modern C++11 enabled by default.
2019-01-31Depsgraph: Specify whether RNA path to be resolved as entry or exitSergey Sharybin
Makes it more explicit whether RNA property is used as a source dependency for something else, or whether some other dependency is being hooked up to evaluate that property.
2019-01-31Cleanup: Spelling in commentSergey Sharybin
2019-01-28Cleanup: sort forward declarations of enum & structCampbell Barton
Done using: source/tools/utils_maintenance/c_sort_blocks.py
2018-12-03Depsgraph: assert that mesh_get_eval_final/deform aren't used in eval.Alexander Gavrilov
Using those functions during multithreaded evaluation is a sure way to have a race condition and crash.
2018-11-22Depsgraph: Cleanup, make it easier to create relations with flagsSergey Sharybin
2018-11-16Fix T56673: Tara.blend from Blender cloud crashes on loadSergey Sharybin
The issue was caused by dependency cycle solver killing relation which was guaranteed various things: i.e. copy-on-write component orders and pose evaluation order (which must first run pose init function). Now it is possible to prevent such relations from being ignored. This is not a complete fix, but is enough to make this specific rig to work. Ideally, we also need to run copy-on-write operation prior to anything else.
2018-11-14Depsgraph: Fix missing point cache reset when physics changesSergey Sharybin
Among all the lines moved around, the general idea is quite simple. Actually, there are two ideas implemented there. First one, is when object itself is tagged for update, we tag its point cache component for evaluation, which makes it so point cache is properly reset. We do it implicitly because otherwise we'll need to go everywhere and add explicit tag in almost all the properties. Second thing is, we link all collider and force fields to a point cache component using special type of link. This type of link only allows flush if change is caused by a user update. This way reset does not happen when change is caused due to animation, but will properly happen when user causes indirect change to the objects which are part of physics simulation.
2018-11-07Cleanup/Refactor: move Main stuff into BKE's new main.c file (and header).Bastien Montagne
We already had a BKE_main.h header, no reason not to put there Main-specific functions, BKE_library has already more than enough to handle with IDs and library management!
2018-06-25Cleanup: refactor depsgraph physics API functions.Brecht Van Lommel
2018-06-25Depsgraph: cache collision relations, for performance and stability.Brecht Van Lommel
Same reasoning as effector relations in earlier commit.
2018-06-22Depsgraph: cache effector relations, for performance and stability.Brecht Van Lommel
To find all effectors in the scene, we need to loop over all objects. Doing this during depsgraph evaluation caused crashes because not all objects are guaranteed to be evaluated yet. To fix this, we now cache the relations as part of the dependency graph build. As a bonus this also makes evaluation faster for big scenes, since looping over all objects for each particle system is slow. Fixes T55156.
2018-06-15Dependency graph fixes for RigidBodyWorldSybren A. Stüvel
- rbw->group added to the depsgraph. - Mesh evaluation added when necessary. - Prevent of double-free by freeing the scene before objects.
2018-05-31Depsgraph: Begin concept of active dependency graphSergey Sharybin
When active dependency graph is evaluated, it will apply animation, drivers and scalar evaluation data (such as object matrix) to an original datablock. This way operators and tools can easily read data from original datablock. This will simplify porting them to copy-on-write, and solve issues when some operator will allocate new datablock based on original one, and will want to read data from it.
2018-05-30Fix missing Cycles 3D viewport updates when editing materials, lamps.Brecht Van Lommel
This introduces a new depsgraph API for getting updated datablocks, rather than getting it from bpy.data. * depsgraph.ids_updated gives a list of all datablocks in the depsgraph which have been updated. * depsgraph.id_type_updated('TYPE') is true if any datablock of the given type has been added, removed or modified. More API updates are coming to properly handle multiple depsgraphs and finer update granularity, but this should make Cycles work again.
2018-05-02Depsgraph: Add per-depsgraph debug name which is shown in the logsSergey Sharybin
This way we can see for which depsgraph datablock is being evaluated for.
2018-05-02Depsgraph: Allow per-depsgraph debug flagsSergey Sharybin
Currently only affects EVALUATION debug messages, rest are to be supported on per-depsgraph level.
2018-04-25Depsgraph: Avoid hash lookup for every evaluated scene querySergey Sharybin
Cache pointer to evaluated scene datablock on relations build time, that pointer never changes after that.
2018-04-23Merge branch 'master' into blender2.8Sergey Sharybin
2018-04-23Depsgraph: Add relation flag to avoid flush across itSergey Sharybin
This way we can avoid re-evaluation of certain parts of datablock when something unrelated has changed.
2018-04-23Merge branch 'master' into blender2.8Sergey Sharybin
2018-04-23Depsgraph: Cleanup, remove unused relation tagSergey Sharybin
2018-04-13Depsgraph: store mode and time in depsgraph, add view layer / scene accessors.Brecht Van Lommel
Scene, view layer and mode are now set in the constructor and never changed. Time is updated on frame changes to indicate which frame is being or has been evaluated last. This is a step towards making EvaluationContext obsolete. Differential Revision: https://developer.blender.org/D3144