TODO 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. EXAMPLES
  2. * filter on runtime values/variables (not only types)
  3. * support to polymorphic types (see #859)
  4. DOC:
  5. * custom storage/view
  6. * update entity doc when the storage based model is in place
  7. * in-place O(1) release/destroy for non-orphaned entities, out-of-sync model
  8. * view: single vs multi type views are no longer a thing actually
  9. * bump entities, reserved bits on identifiers
  10. TODO:
  11. * further optimize exclusion lists in multi type views (no existence check)
  12. * further improve meta resolve function by id (bimap)
  13. * get rid of observers, storage based views made them pointless - document alternatives
  14. * deprecate non-owning groups in favor of owning views and view packs, introduce lazy owning views
  15. * bring nested groups back in place (see bd34e7f)
  16. * work stealing job system (see #100) + mt scheduler based on const awareness for types
  17. * view: reduce inst due to/improve perf with index-based approach in dispatch_get/pick_and_each/each (single type too, define storage ::at and ::at_as_tuple)
  18. * view: update natvis as needed after the last rework, merge pools/filter in the same array, drop check (?) and turn view into a position
  19. * view: type-only view_iterator (dyn get/excl sizes), type-only basic_common_view (dyn get/excl sizes with pointer to array from derived)
  20. * combine version-mask-vs-version-bits tricks with reserved bits to allow things like enabling/disabling
  21. * self contained entity traits to avoid explicit specializations (ie enum constants)
  22. * auto type info data from types if present
  23. * test: push sharing types further
  24. * after non-continuous generation for entity storage:
  25. - get/reset placeholder to position after saving/loading (avoid long lookup)
  26. - allow skipping/reserving entity identifiers
  27. - documentation for reserved entities
  28. * storage entity: no emplace/insert, rename and add a fast range-push from above
  29. * view: propagate tombostone check request to iterator
  30. * table: pop back to support swap and pop, single column access, empty type optimization
  31. * checkout tools workflow
  32. * review constrained noexcept-ness (ie sigh)
  33. * registry::view const invokes refresh multiple times implicitly
  34. * improve front (no multiple checks) and back (ie no contains) for multi-type view
  35. * cleanup common view from tricks to handle single swap-only and in-place, if constexpr branches
  36. * exploit ref/cref in any to avoid invoking the vtable if possible
  37. * entity based component_traits
  38. * copy-and-swap for any and meta_any
  39. * review cmake warning about FetchContent_Populate (need .28 and EXCLUDE_FROM_ALL for FetchContent)
  40. * deprecate meta properties in favor of custom data
  41. * make meta objects safe to use with null nodes
  42. * meta: vectors for details and props
  43. * suppress -Wself-move on CI with g++13
  44. * view and view iterator specializations for multi, single and filtered elements
  45. * organizer support to groups
  46. * meta factory: share code and cleanup after the map-to-vector rework
  47. * update natvis for meta, many nodes changes due to the map-to-vector switch
  48. * meta range: move id to meta objects and return plain types (?), then remove id from meta base and meta ctor too
  49. * refine find_member in meta and use it also for conv and the others