tornavis/source/blender/draw
Hans Goudey 4d841e1b35 Mesh: Reimplement and unify topology maps
Combine the newer less efficient C++ implementations and the older
less convenient C functions. The maps now contain one large array of
indices, split into groups by a separate array of offset indices.
Though performance of creating the maps is relatively unchanged, the
new implementation uses 4 bytes less per source element than the C
maps, and 20 bytes less than the newer C++ functions (which also
had more overhead with larger N-gons). The usage syntax is simpler
than the C functions as well.

The reduced memory usage is helpful for when these maps are cached
in the near future. It will also allow sharing the offsets between
maps for different domains like vertex to corner and vertex to face.

A simple `GroupedSpan` class is introduced to make accessing the
topology maps much simpler. It combines offset indices and a separate
span, splitting it into chunks in an efficient way.

Pull Request: https://projects.blender.org/blender/blender/pulls/107861
2023-05-24 13:16:57 +02:00
..
engines Cleanup: spelling in comments, replace slang/informal terms 2023-05-24 20:27:13 +10:00
intern Mesh: Reimplement and unify topology maps 2023-05-24 13:16:57 +02:00
tests Cleanup: Move BKE_node.h to C++ 2023-05-15 15:14:22 +02:00
CMakeLists.txt Overlay-Next: Initial implementation 2023-05-23 15:00:38 +02:00
DRW_engine.h Cleanup: move doc-strings into headers, remove duplicates 2023-03-29 14:37:34 +11:00
DRW_pbvh.hh Mesh: Split MLoopTri poly indices into a separate array 2023-05-04 15:39:10 +02:00
DRW_select_buffer.h Cleanup: format, reduce line length & strip trailing space 2022-05-19 11:17:01 +10:00