Originally meant to be a part of #525, but at the very last second I realized nasty interactions with the compatibility single-function-object conversion tools, which have to get fixed first. Things to do:
[ ] make SceneTools::combine() aware of implicit null mappings and trivial fields
not choking on them
probably also preserving them where possible instead of expanding
[ ] SceneTools::convertToSingleFunctionObjects() needs to be aware of these as well
in particular not removing SceneFieldFlag::ImplicitMapping for fields passed to combine(), as those will turn implicit null fields into placeholders
should it instead unconditionally expand them? probably for the best, especially given that neither the parent field nor the implicit mapping will stay implicit or trivial
Looks like I dug a really deep pit and then managed to fall at the very bottom. Yey. Or maybe there's some other solution / different way of implementing implicit or trivial fields without making them null? Some possibilities:
[ ] Make it possible to have each field in a separate allocation (and thus per-field DataFlags, etc.)?
thus the implicit / trivial fields could be a static memory / allocated in addition to a memory-mapped file
still won't solve the unnecessary overhead of having to allocate e.g. 400 kB of memory that contains just numbers 0-100k
and will make mapping shared between fields a lot more complicated, leading to each having to allocate its own (sigh!)
OTOH could make it easier to capture live data (and allow them to individually grow/shrink...)
Originally meant to be a part of #525, but at the very last second I realized nasty interactions with the compatibility single-function-object conversion tools, which have to get fixed first. Things to do:
SceneTools::combine()
aware of implicit null mappings and trivial fieldsSceneTools::convertToSingleFunctionObjects()
needs to be aware of these as wellSceneFieldFlag::ImplicitMapping
for fields passed tocombine()
, as those will turn implicit null fields into placeholdersLooks like I dug a really deep pit and then managed to fall at the very bottom. Yey. Or maybe there's some other solution / different way of implementing implicit or trivial fields without making them null? Some possibilities:
DataFlags
, etc.)?