tornavis/source/blender/blenlib
Jacques Lucke a72e7a220d Volumes: refactor volume grid storage
This refactors how volume grids are stored with the following new goals in mind:
* Get a **stand-alone volume grid** data structure that can be used by geometry nodes.
  Previously, the `VolumeGrid` data structure was tightly coupled with the `Volume` data block.
* Support **implicit sharing of grids and trees**. Previously, it was possible to share data
  when multiple `Volume` data blocks loaded grids from the same `.vdb` files but this was
  not flexible enough.
* Get a safe API for **lazy-loading and unloading** of grids without requiring explicit calls
  to some "load" function all the time.
* Get a safe API for **caching grids from files** that is not coupled to the `Volume` data block.
* Get a **tiered API** for different levels of `openvdb` involvement:
  * No `OpenVDB`: Since `WITH_OPENVDB` is optional, it's helpful to have parts of the API that
    still work in this case. This makes it possible to write high level code for volumes that does
    not require `#ifdef WITH_OPENVDB` checks everywhere. This is in `BKE_volume_grid_fwd.hh`.
  * Shallow `OpenVDB`: Code using this API requires `WITH_OPENVDB` checks. However, care
  is taken to not include the expensive parts of `OpenVDB` and to use forward declarations as
  much as possible. This is in `BKE_volume_grid.hh` and uses `openvdb_fwd.hh`.
  * "Full" `OpenVDB`: This API requires more heavy `OpenVDB` includes. Fortunately, it turned
  out to be not necessary for the common API. So this is only used for task specific APIs.

At the core of the new API is the `VolumeGridData` type. It's a wrapper around an
`openvdb::Grid` and adds some features on top like implicit sharing, lazy-loading and unloading.
Then there are `GVolumeGrid` and `VolumeGrid` which are containers for a volume grid.
Semantically, each `VolumeGrid` has its own independent grid, but this is cheap due to implicit
sharing. At highest level we currently have the `Volume` data-block which contains a list of
`VolumeGrid`.

```mermaid
flowchart LR
  Volume --> VolumeGrid --> VolumeGridData --> openvdb::Grid
```

The loading of `.vdb` files is abstracted away behind the volume file cache API. This API makes
it easy to load and reuse entire files and individual grids from disk. It also supports caching
simplify levels for grids on disk.

An important new concept are the "tree access tokens". Whenever some code wants to work
with an openvdb tree, it has to retrieve an access token from the corresponding `VolumeGridData`.
This access token has to be kept alive for as long as the code works with the grid data. The same
token is valid for read and write access. The purpose of these access tokens is to make it possible
to detect when some code is currently working with the openvdb tree. This allows freeing it if it's
possible to reload it later on (e.g. from disk). It's possible to free a tree that is referenced by
multiple owners, but only no one is actively working with. In some sense, this is similar to the
existing `ImageUser` concept.

The most important new files to read are `BKE_volume_grid.hh` and `BKE_volume_grid_file_cache.hh`.
Most other changes are updates to existing code to use the new API.

Pull Request: https://projects.blender.org/blender/blender/pulls/116315
2023-12-20 15:32:52 +01:00
..
intern Cleanup: variable naming, reduce variable scope 2023-12-18 12:26:39 +11:00
tests Cleanup: Remove unnecessary C API for delaunay triangulation 2023-12-14 11:40:06 -05:00
BLI_alloca.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_allocator.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_any.hh Geometry Nodes: refactor storage for socket values 2023-12-17 14:00:07 +01:00
BLI_args.h Cleanup: Add a copyright notice to files and use SPDX format 2023-05-31 16:19:06 +02:00
BLI_array.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_array.hh Cleanup: remove C++ RawArray 2023-08-25 11:46:37 +02:00
BLI_array_store.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_array_store_utils.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_array_utils.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_array_utils.hh GPv3: Overlay: Only show visible and editable materials 2023-12-08 10:38:12 +01:00
BLI_asan.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_assert.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_astar.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_atomic_disjoint_set.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_binary_search.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_bit_group_vector.hh Subdiv: Store multires sculpt grid visibility in BitGroupVector 2023-12-02 20:05:29 +01:00
BLI_bit_ref.hh Cleanup: fewer iostreams related includes from BLI/BKE headers 2023-08-16 09:51:37 +02:00
BLI_bit_span.hh Subdiv: Store multires sculpt grid visibility in BitGroupVector 2023-12-02 20:05:29 +01:00
BLI_bit_span_ops.hh Sculpt: Separate invert visibility operator from face sets 2023-12-06 23:33:46 -05:00
BLI_bit_vector.hh Subdiv: Store multires sculpt grid visibility in BitGroupVector 2023-12-02 20:05:29 +01:00
BLI_bitmap.h DRW/GPU: move .c files to C++ 2023-07-27 14:16:58 +02:00
BLI_bitmap_draw_2d.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_blenlib.h Cleanup: Add a copyright notice to files and use SPDX format 2023-05-31 16:19:06 +02:00
BLI_bounds.hh Curves: Sculpt mode frame selected operator support 2023-11-03 09:42:56 +01:00
BLI_bounds_types.hh PBVH: Use C++ Bounds type for node bounds 2023-12-04 12:45:23 -05:00
BLI_boxpack_2d.h Cleanup: Add a copyright notice to files and use SPDX format 2023-05-31 16:19:06 +02:00
BLI_buffer.h CMake: enable comma-subscript GCC warning 2023-08-17 23:17:30 +10:00
BLI_cache_mutex.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_color.hh Cleanup: reduce boilerplate for equality operators for structs 2023-11-20 09:39:13 +01:00
BLI_color_mix.hh Cleanup: compiler warnings (unused functions & variable) 2023-07-15 15:45:03 +10:00
BLI_compiler_attrs.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_compiler_compat.h Revert changes from main commits that were merged into blender-v4.0-release 2023-10-30 21:40:35 +01:00
BLI_compiler_typecheck.h Cleanup: spelling & punctuation in comments 2023-09-14 13:25:24 +10:00
BLI_compute_context.hh Cleanup: reduce boilerplate for equality operators for structs 2023-11-20 09:39:13 +01:00
BLI_console.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_convexhull_2d.h Cleanup: remove spaces from commented arguments 2023-09-22 12:21:18 +10:00
BLI_cpp_type.hh Cleanup: fewer iostreams related includes from BLI/BKE headers 2023-08-16 09:51:37 +02:00
BLI_cpp_type_make.hh Cleanup: fewer iostreams related includes from BLI/BKE headers 2023-08-16 09:51:37 +02:00
BLI_cpp_types.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_cpp_types_make.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_delaunay_2d.hh Cleanup: Remove unnecessary C API for delaunay triangulation 2023-12-14 11:40:06 -05:00
BLI_devirtualize_parameters.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_dial_2d.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_disjoint_set.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_dlrbTree.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_dot_export.hh Cleanup: fewer iostreams related includes from BLI/BKE headers 2023-08-16 09:51:37 +02:00
BLI_dot_export_attribute_enums.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_dynlib.h Cleanup: Add a copyright notice to files and use SPDX format 2023-05-31 16:19:06 +02:00
BLI_dynstr.h Cleanup: Add a copyright notice to files and use SPDX format 2023-05-31 16:19:06 +02:00
BLI_easing.h Cleanup: Add a copyright notice to files and use SPDX format 2023-05-31 16:19:06 +02:00
BLI_endian_defines.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_endian_switch.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_endian_switch_inline.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_enumerable_thread_specific.hh Cleanup: clarify #ifndef checks in trailing #endif comments 2023-12-07 10:38:54 +11:00
BLI_expr_pylike_eval.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_fileops.h BLI_fileops: Harmonize 'rename' behaviors accross platforms. 2023-11-30 22:35:00 +01:00
BLI_fileops.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_fileops_types.h Cleanup: Add a copyright notice to files and use SPDX format 2023-05-31 16:19:06 +02:00
BLI_filereader.h Fix build error on Windows after BLI_read changes 2023-10-10 15:36:15 +02:00
BLI_fnmatch.h Cleanup: Add a copyright notice to files and use SPDX format 2023-05-31 16:19:06 +02:00
BLI_function_ref.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_generic_array.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_generic_pointer.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_generic_span.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_generic_value_map.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_generic_vector_array.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_generic_virtual_array.hh Cleanup: remove spaces from commented arguments 2023-09-22 12:21:18 +10:00
BLI_generic_virtual_vector_array.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_ghash.h Cleanup: Add a copyright notice to files and use SPDX format 2023-05-31 16:19:06 +02:00
BLI_gsqueue.h Cleanup: Add a copyright notice to files and use SPDX format 2023-05-31 16:19:06 +02:00
BLI_hash.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_hash.hh Cleanup: Remove unnecessary includes from C++ data structure headers 2023-09-01 21:37:11 +02:00
BLI_hash_md5.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_hash_mm2a.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_hash_mm3.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_hash_tables.hh Cleanup: Remove unnecessary includes from C++ data structure headers 2023-09-01 21:37:11 +02:00
BLI_heap.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_heap_simple.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_implicit_sharing.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_implicit_sharing.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_implicit_sharing_ptr.hh Volumes: refactor volume grid storage 2023-12-20 15:32:52 +01:00
BLI_index_mask.hh Cleanup: to_bools comment 2023-12-03 15:41:04 +05:30
BLI_index_range.hh Cleanup: fewer iostreams related includes from BLI/BKE headers 2023-08-16 09:51:37 +02:00
BLI_inplace_priority_queue.hh Cleanup: fewer iostreams related includes from BLI/BKE headers 2023-08-16 09:51:37 +02:00
BLI_iterator.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_jitter_2d.h Cleanup: Add a copyright notice to files and use SPDX format 2023-05-31 16:19:06 +02:00
BLI_kdopbvh.h Cleanup: use style for doxygen comment blocks 2023-11-30 14:15:11 +11:00
BLI_kdtree.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_kdtree_impl.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_lasso_2d.h Cleanup: Add a copyright notice to files and use SPDX format 2023-05-31 16:19:06 +02:00
BLI_lazy_threading.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_length_parameterize.hh Cleanup: fewer BLI_color.hh et al includes 2023-08-16 14:48:53 +03:00
BLI_linear_allocator.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_link_utils.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_linklist.h Cleanup: Add a copyright notice to files and use SPDX format 2023-05-31 16:19:06 +02:00
BLI_linklist_lockfree.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_linklist_stack.h BMesh: move bmesh module to C++ 2023-07-26 16:12:55 +02:00
BLI_listbase.h Revert changes from main commits that were merged into blender-v4.0-release 2023-10-30 21:40:35 +01:00
BLI_listbase_wrapper.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_map.hh BLI: support checking if two maps are the same 2023-11-21 13:38:43 +01:00
BLI_map_slots.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_math_angle_types.hh Cleanup: reduce boilerplate for equality operators for structs 2023-11-20 09:39:13 +01:00
BLI_math_axis_angle.hh Cleanup: Remove C header from C++ math header 2023-11-11 21:09:54 +01:00
BLI_math_axis_angle_types.hh Cleanup: reduce boilerplate for equality operators for structs 2023-11-20 09:39:13 +01:00
BLI_math_base.h cleanup: remove "sa" acos/asin/sqrt functions and use "safe_" variants 2023-11-07 19:49:01 +01:00
BLI_math_base.hh Cleanup: Make format 2023-11-13 08:12:39 +01:00
BLI_math_base_safe.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_math_basis_types.hh Cleanup: fewer iostreams related includes from BLI/BKE headers 2023-08-16 09:51:37 +02:00
BLI_math_bits.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_math_boolean.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_math_color.h Cleanup: Add a copyright notice to files and use SPDX format 2023-05-31 16:19:06 +02:00
BLI_math_color.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_math_color_blend.h Cleanup: reduce amount of math-related includes 2023-08-10 14:51:40 +03:00
BLI_math_euler.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_math_euler_types.hh Cleanup: reduce boilerplate for equality operators for structs 2023-11-20 09:39:13 +01:00
BLI_math_geom.h Cleanup: use const variables and arguments 2023-11-30 14:14:02 -05:00
BLI_math_inline.h Cleanup: Add a copyright notice to files and use SPDX format 2023-05-31 16:19:06 +02:00
BLI_math_interp.h ImBuf: optimize IMB_transform 2023-12-14 15:10:30 +01:00
BLI_math_matrix.h Cleanup: Add a copyright notice to files and use SPDX format 2023-05-31 16:19:06 +02:00
BLI_math_matrix.hh Fix: from_up_axis sign 2023-12-13 19:27:30 +01:00
BLI_math_matrix_types.hh Cleanup: fewer iostreams related includes from BLI/BKE headers 2023-08-16 09:51:37 +02:00
BLI_math_mpq.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_math_quaternion.hh Fix: Debug build error after previous commit 2023-11-11 22:15:02 +01:00
BLI_math_quaternion_types.hh Cleanup: reduce boilerplate for equality operators for structs 2023-11-20 09:39:13 +01:00
BLI_math_rotation.h Armature: apply new DualQuat scale handling to constraints and crazyspace. 2023-09-04 14:49:28 +02:00
BLI_math_rotation.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_math_rotation_legacy.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_math_rotation_types.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_math_solvers.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_math_statistics.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_math_time.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_math_vector.h BLI_math: add add_v3_uchar_clamped (previously color_add_v3_i) 2023-09-07 15:54:53 +10:00
BLI_math_vector.hh Revert changes from main commits that were merged into blender-v4.0-release 2023-10-30 21:40:35 +01:00
BLI_math_vector_mpq_types.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_math_vector_types.hh BLI: Math: Allow vector of 1 component 2023-09-03 16:43:45 +02:00
BLI_memarena.h Cleanup: spelling in comments, strings 2023-12-07 12:45:27 +11:00
BLI_memblock.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_memiter.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_memory_utils.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_memory_utils.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_mempool.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_mesh_boolean.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_mesh_intersect.hh Cleanup: fewer iostreams related includes from BLI/BKE headers 2023-08-16 09:51:37 +02:00
BLI_mmap.h Revert changes from main commits that were merged into blender-v4.0-release 2023-10-30 21:40:35 +01:00
BLI_multi_value_map.hh BLI: support checking if two maps are the same 2023-11-21 13:38:43 +01:00
BLI_noise.h Cleanup: Add a copyright notice to files and use SPDX format 2023-05-31 16:19:06 +02:00
BLI_noise.hh Nodes: Merge Musgrave node into Noise node 2023-11-18 09:40:44 +01:00
BLI_offset_indices.hh Cleanup: Forward declare some classes in mesh headers 2023-12-13 09:18:39 -05:00
BLI_offset_span.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_ordered_edge.hh Mesh: add index-independent test for mesh equality 2023-11-27 16:10:43 +01:00
BLI_parameter_pack_utils.hh Cleanup: remove spaces from commented arguments 2023-09-22 12:21:18 +10:00
BLI_path_util.h BLI_path: add BLI_path_slash_skip utility function 2023-06-13 14:36:32 +10:00
BLI_polyfill_2d.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_polyfill_2d_beautify.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_pool.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_probing_strategies.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_quadric.h Cleanup: Add a copyright notice to files and use SPDX format 2023-05-31 16:19:06 +02:00
BLI_rand.h Cleanup: correct file names in comments after C -> C++ renaming 2023-07-31 13:02:30 +10:00
BLI_rand.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_range.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_rect.h Cleanup: utility function to multiple rctf/rcti 2023-07-07 15:42:07 +10:00
BLI_resource_scope.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_scanfill.h Cleanup: Add a copyright notice to files and use SPDX format 2023-05-31 16:19:06 +02:00
BLI_serialize.hh ID properties: Support enum values with items 2023-12-15 10:20:44 +01:00
BLI_session_uuid.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_set.hh BLI: assert that hash of key is the same after inserting it in hash table 2023-10-07 23:14:04 +02:00
BLI_set_slots.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_shared_cache.hh Fix: Crash in sculpt mode with shared normals caches 2023-08-29 17:07:42 +02:00
BLI_simd.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_smaa_textures.h Cleanup: Add a copyright notice to files and use SPDX format 2023-05-31 16:19:06 +02:00
BLI_sort.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_sort.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_sort_utils.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_span.hh Cleanup: Add const to MutableSpan methods 2023-11-13 19:09:09 +01:00
BLI_stack.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_stack.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_strict_flags.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_string.h UI: File Browser Display Narrowing 2023-11-17 00:11:40 +01:00
BLI_string_cursor_utf8.h Cleanup: use strict flags for string utilities & cursor 2023-09-20 12:11:30 +10:00
BLI_string_ref.hh Cleanup: fewer iostreams related includes from BLI/BKE headers 2023-08-16 09:51:37 +02:00
BLI_string_search.hh UI: support different main word heuristics in string search 2023-10-20 13:50:10 +02:00
BLI_string_utf8.h Tests: ensure BLI_str_utf8_offset_from_index index is logically clamped 2023-12-13 12:14:29 +11:00
BLI_string_utf8_symbols.h Revert changes from main commits that were merged into blender-v4.0-release 2023-10-30 21:40:35 +01:00
BLI_string_utils.hh Revert changes from main commits that were merged into blender-v4.0-release 2023-10-30 21:40:35 +01:00
BLI_struct_equality_utils.hh Cleanup: reduce boilerplate for equality operators for structs 2023-11-20 09:39:13 +01:00
BLI_sub_frame.hh Cleanup: reduce boilerplate for equality operators for structs 2023-11-20 09:39:13 +01:00
BLI_sys_types.h Cleanup: Add a copyright notice to files and use SPDX format 2023-05-31 16:19:06 +02:00
BLI_system.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_task.h Cleanup: Move BMesh headers to C++ 2023-12-05 23:01:12 +01:00
BLI_task.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_tempfile.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_threads.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_timecode.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_timeit.hh Cleanup: Remove iostreams include from timeit header 2023-11-13 10:42:29 +01:00
BLI_timer.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_unique_sorted_indices.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_utildefines.h Cleanup: Add a copyright notice to files and use SPDX format 2023-05-31 16:19:06 +02:00
BLI_utildefines_iter.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_utildefines_stack.h Build: replace Blender specific DEBUG by standard NDEBUG 2023-12-06 16:05:14 +01:00
BLI_utildefines_variadic.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_utility_mixins.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_uuid.h Cleanup: fewer iostreams related includes from BLI/BKE headers 2023-08-16 09:51:37 +02:00
BLI_uvproject.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_vector.hh BLI: destruct non-trivial types after using remove_if 2023-12-12 10:42:04 +01:00
BLI_vector_list.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_vector_set.hh BLI: assert that hash of key is the same after inserting it in hash table 2023-10-07 23:14:04 +02:00
BLI_vector_set_slots.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_virtual_array.hh Revert changes from main commits that were merged into blender-v4.0-release 2023-10-30 21:40:35 +01:00
BLI_virtual_vector_array.hh License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
BLI_voxel.h Cleanup: Remove unused voxel sampling functions 2023-11-28 13:30:18 -05:00
BLI_winstuff.h Cleanup: remove unused defines 2023-12-17 16:04:42 +11:00
BLI_winstuff_com.hh Fix #112729: Update pinned blender shortcut 2023-11-01 01:44:51 +01:00
CMakeLists.txt Cleanup: Move BLI_delaunay_2d.hh to C++ 2023-12-14 10:05:35 -05:00
PIL_time.h Cleanup: Add a copyright notice to files and use SPDX format 2023-05-31 16:19:06 +02:00
PIL_time_utildefines.h License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00