Age | Commit message (Collapse) | Author | |
---|---|---|---|
2020-07-22 | Cleanup: spelling | Campbell Barton | |
2020-07-21 | Particles: initial object socket and emitter node support | Jacques Lucke | |
Object sockets work now, but only the new Object Transforms and the Particle Mesh Emitter node use it. The emitter does not actually use the mesh surface yet. Instead, new particles are just emitted around the origin of the object. Internally, handles to object data blocks are passed around in the network, instead of raw object pointers. Using handles has a couple of benefits: * The caller of the function has control over which handles can be resolved and therefore limit access to specific data. The set of data blocks that is accessed by a node tree should be known statically. This is necessary for a proper integration with the dependency graph. * When the pointer to an object changes (e.g. after restarting Blender), all handles are still valid. * When an object is deleted, the handle is invalidated without causing crashes. * The handle is just an integer that can be stored per particle and can be cached easily. The mapping between handles and their corresponding data blocks is stored in the Simulation data block. | |||
2020-07-20 | BLI: add typedefs for containers that use raw allocators | Jacques Lucke | |
Those are useful when you have to create containers with static storage duration. If those would use Blender's guarded allocator, it would report memory leaks, that are not actually leaks. | |||
2020-07-20 | Particles: support removing particles during the simulation | Jacques Lucke | |
This still cannot be controlled by the user. Currently, all particles are killed after two seconds | |||
2020-07-20 | Refactor: Update integer type usage | Jacques Lucke | |
This updates the usage of integer types in code I wrote according to our new style guides. Major changes: * Use signed instead of unsigned integers in many places. * C++ containers in blenlib use `int64_t` for size and indices now (instead of `uint`). * Hash values for C++ containers are 64 bit wide now (instead of 32 bit). I do hope that I broke no builds, but it is quite likely that some compiler reports slightly different errors. Please let me know when there are any errors. If the fix is small, feel free to commit it yourself. I compiled successfully on linux with gcc and on windows. | |||
2020-07-18 | Simulation: cleanup deduplicating attribute input nodes | Jacques Lucke | |
2020-07-17 | Cleanup: avoid static initialization order issues when accessing CPPTypes | Jacques Lucke | |
Instead of depending on static initialization order of globals use static variables within functions. Those are initialized on first use. This is every so slighly less efficient, but avoids a full class of problems. | |||
2020-07-16 | Nodes: support default function for partially implemented nodes | Jacques Lucke | |
2020-07-16 | Cleanup: missing CMake headers from source lists | Campbell Barton | |
2020-07-13 | Cleanup: fix clang tidy warning | Jacques Lucke | |
The code was actually correct, but clang tidy complaint about using the Vector after it was moved from. | |||
2020-07-12 | Functions: minor improvements | Jacques Lucke | |
2020-07-12 | Functions: minor api improvements | Jacques Lucke | |
2020-07-11 | Nodes: support implicit conversions and incorrectly linked sockets | Jacques Lucke | |
2020-07-11 | Fix: incorrect attribute type in network | Jacques Lucke | |
2020-07-10 | Functions: add utility to find dependencies of input sockets | Jacques Lucke | |
2020-07-10 | Functions: make constant folding work on unfinished networks | Jacques Lucke | |
2020-07-10 | Functions: use new is-equal and hash function of CPPType | Jacques Lucke | |
2020-07-10 | Functions: make generic types hashable | Jacques Lucke | |
2020-07-10 | Functions: make generic types equality comparable | Jacques Lucke | |
2020-07-10 | Cleanup: various cleanups in for CPPType | Jacques Lucke | |
2020-07-10 | Cleanup: structure CPPType according to code style guide | Jacques Lucke | |
2020-07-10 | Cleanup: spelling | Campbell Barton | |
2020-07-08 | Cleanup: remove unnecessary calls to as_span | Jacques Lucke | |
This uses the new implicit conversions and constructors that have been committed in the previous commit. I tested these changes on Linux with gcc and on Windows. | |||
2020-07-08 | Cleanup: use c++17 helper variable templates | Jacques Lucke | |
2020-07-08 | Functions: add AttributesRef class | Jacques Lucke | |
This is the same as MutableAttributesRef, but the data in it cannot be changed. | |||
2020-07-08 | Cleanup: use different internal socket name | Jacques Lucke | |
2020-07-08 | Functions: support hashing MFDataType and CPPType | Jacques Lucke | |
2020-07-08 | Functions: implement common subnetwork elimination optimization | Jacques Lucke | |
This was the last of the three network optimizations I developed in the functions branch. Common subnetwork elimination and constant folding together can get rid of most unnecessary nodes. | |||
2020-07-08 | Functions: Support getting MFSocket based on its id | Jacques Lucke | |
2020-07-08 | Functions: Support accessing socket index of MFSocket | Jacques Lucke | |
2020-07-08 | Functions: initial hash/equals implementation for constant multi-functions | Jacques Lucke | |
2020-07-08 | Functions: allow multi-functions to override a hash and equals function | Jacques Lucke | |
2020-07-08 | Functions: add dead node removal and constant folding optimization | Jacques 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-08 | Cleanup: fix comment | Jacques Lucke | |
2020-07-07 | Functions: cleanup loop that traverses the MFNetwork | Jacques Lucke | |
2020-07-07 | Functions: add generic functions that output constants | Jacques Lucke | |
2020-07-07 | Functions: extend multi-function network api | Jacques Lucke | |
2020-07-07 | Functions: Add debug print and destruct callback to CPPType | Jacques Lucke | |
2020-07-03 | Cleanup: use nested namespaces | Jacques Lucke | |
2020-07-03 | Cleanup: use trailing underscore for non-public data members | Jacques Lucke | |
2020-06-30 | Functions: provide dummy multi function | Jacques Lucke | |
Sometimes it is convenient to be able to return a reference to some dummy function. | |||
2020-06-30 | Functions: add methods to multi-function network classes | Jacques Lucke | |
Those are necessary to query and modify the network. | |||
2020-06-30 | Functions: use raw allocator for function signature | Jacques Lucke | |
This allows multi-functions to have static storage duration. | |||
2020-06-30 | Functions: add two more customizable multi-functions | Jacques Lucke | |
2020-06-29 | BLI: remove blender::Optional in favor of std::optional | Jacques Lucke | |
`std::optional` can be used now, because we switched to C++17. | |||
2020-06-29 | Cleanup: rename namespace DotExport to dot | Jacques Lucke | |
2020-06-27 | Functions: add MutableAttributesRef data structure | Jacques 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-27 | Cleanup: make it easier to check if a CPPType is a specific compile time type | Jacques Lucke | |
2020-06-25 | Cleanup: spelling | Campbell Barton | |
2020-06-23 | Cleanup: remove some dead code | Jacques Lucke | |