Blender Git Commit Log

Git Commits -> Revision 0a90765

Revision 0a90765 by Jacques Lucke (master)
June 8, 2020, 15:37 (GMT)
Functions: Run-time type system and index mask

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

Commit Details:

Full Hash: 0a907657d4d525d320e0c8518f583b7210736214
Parent Commit: b5846eb
Lines Changed: +1448, -0

8 Added Paths:

/source/blender/blenlib/BLI_index_mask.hh (+212, -0) (View)
/source/blender/functions/CMakeLists.txt (+40, -0) (View)
/source/blender/functions/FN_cpp_type.hh (+726, -0) (View)
/source/blender/functions/FN_cpp_types.hh (+48, -0) (View)
/source/blender/functions/intern/cpp_types.cc (+41, -0) (View)
/tests/gtests/blenlib/BLI_index_mask_test.cc (+39, -0) (View)
/tests/gtests/functions/CMakeLists.txt (+39, -0) (View)
/tests/gtests/functions/FN_cpp_type_test.cc (+299, -0) (View)

4 Modified Paths:

/source/blender/blenlib/CMakeLists.txt (+1, -0) (Diff)
/source/blender/CMakeLists.txt (+1, -0) (Diff)
/tests/gtests/blenlib/CMakeLists.txt (+1, -0) (Diff)
/tests/gtests/CMakeLists.txt (+1, -0) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021