Although "filtering" can be complex, requiring multiple passes in varying directions. So I don't endorse:
auto surfaces = scene->select(filter);
That would break down for what I have planned. I would however endorse something like:
auto renderables = scene->snapshot();
The locking is now atomic, non-blocking, and allows for arbitrary filtering algorithms including culling of non-visible renderables before the list is sent to the renderer.
Although "filtering" can be complex, requiring multiple passes in varying directions. So I don't endorse: select( filter) ;
auto surfaces = scene->
That would break down for what I have planned. I would however endorse something like:
auto renderables = scene->snapshot();
The locking is now atomic, non-blocking, and allows for arbitrary filtering algorithms including culling of non-visible renderables before the list is sent to the renderer.