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-08Functions: Support getting MFSocket based on its idJacques Lucke
2020-07-08Functions: Support accessing socket index of MFSocketJacques Lucke
2020-07-08Functions: initial hash/equals implementation for constant multi-functionsJacques Lucke
2020-07-08Functions: allow multi-functions to override a hash and equals functionJacques Lucke
2020-07-08Functions: add dead node removal and constant folding optimizationJacques Lucke
Those optimizations work on the multi-function network level. Not only will they make the network evaluation faster, but they also simplify the network a lot. That makes it easier to understand the exported dot graph.
2020-07-08Cleanup: fix commentJacques Lucke
2020-07-07Functions: cleanup loop that traverses the MFNetworkJacques Lucke
2020-07-07Functions: add generic functions that output constantsJacques Lucke
2020-07-07Functions: extend multi-function network apiJacques Lucke
2020-07-07Functions: Add debug print and destruct callback to CPPTypeJacques Lucke
2020-07-03Cleanup: use nested namespacesJacques Lucke
2020-07-03Cleanup: use trailing underscore for non-public data membersJacques Lucke
2020-06-30Functions: provide dummy multi functionJacques Lucke
Sometimes it is convenient to be able to return a reference to some dummy function.
2020-06-30Functions: add methods to multi-function network classesJacques Lucke
Those are necessary to query and modify the network.
2020-06-30Functions: use raw allocator for function signatureJacques Lucke
This allows multi-functions to have static storage duration.
2020-06-30Functions: add two more customizable multi-functionsJacques Lucke
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: rename namespace DotExport to dotJacques Lucke
2020-06-27Functions: add MutableAttributesRef data structureJacques Lucke
This will be used to reference the content of a CustomData structure in C++ code, that does not need to know who owns the data but only works with it.
2020-06-27Cleanup: make it easier to check if a CPPType is a specific compile time typeJacques Lucke
2020-06-25Cleanup: spellingCampbell Barton
2020-06-23Cleanup: remove some dead codeJacques Lucke
2020-06-23Functions: Multi Function NetworkJacques Lucke
A multi-function network is a graph data structure, where nodes are multi-functions (or dummies) and links represent data flow. New multi-functions can be derived from such a network. For that one just has to specify two sets of sockets in the network that represent the inputs and outputs of the new function. It is possible to do optimizations like constant folding on this data structure, but that is not implemented in this patch yet. In a next step, user generated node trees are converted into a MFNetwork, so that they can be evaluated efficiently for many particles. This patch also includes some tests that cover the majority of the code. However, this seems to be the kind of code that is best tested by some .blend files. Building graph structures in code is possible, but is not easy to understand afterwards. Reviewers: brecht Differential Revision: https://developer.blender.org/D8049
2020-06-22Functions: add utilities that allow creating some multi-functions with less ↵Jacques Lucke
typing
2020-06-22Functions: Various improvements to the spans and generic data structuresJacques Lucke
Most of this code is covered by unit tests.
2020-06-16Functions: Multi FunctionJacques Lucke
This adds the `MultiFunction` type and some smallish utility types that it uses. A `MultiFunction` encapsulates a function that is optimized for throughput by always processing many elements at once. This is an important part of the new particle system, because it allows us to execute user generated node trees for many particles efficiently. Reviewers: brecht Differential Revision: https://developer.blender.org/D8030
2020-06-13Cleanup: spellingCampbell Barton
2020-06-12Functions: Wrap into blender namespaceSergey Sharybin
Similar to previous commit, aims to resolve compilation on devtoolset-6.
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-08Functions: Run-time type system and index maskJacques Lucke
This adds a new `CPPType` that encapsulates information about how to handle instances of a specific data type. This is necessary for the function evaluation system, which will be used to evaluate most of the particle node trees. Furthermore, this adds an `IndexMask` class which offers a surprisingly useful abstraction over an array containing unsigned integers. It makes two assumptions about the underlying integer array: * The integers are in ascending order. * There are no duplicates. `IndexMask` will be used to "select" certain particles that will be processed in a data-oriented way. Sometimes, operations don't have to be applied to all particles, but only some, those that are in the indexed by the `IndexMask`. The two limitations imposed by an `IndexMask` allow for better performance. Reviewers: brecht Differential Revision: https://developer.blender.org/D7957