BatchedMesh: add support for resizing instance count, geometry size #29577
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related issue: #29464
Description
Adds support for Batched
setGeometrySize
andsetInstanceCount
. If adequate extents of the necessary geometry and instance buffers remain unused then the buffers can be shrunk, as well. However due to buffer fragmentation after adding / removing geometry and instances to and from the BatchedMesh it may not be possible to shrink the buffer - eg if 1000 instances are added and then the first 999 are removed. We could handle this case if we were to re-map ids so the data in this buffers could be rearranged without breaking references but we've decided not to do that for complexity reasons, which I think is okay.To help with that issue the add geometry and instance functions have been adjusted to use earlier ids.
Tested by resizing geometry and instance buffers in the batched mesh demo and ensuring that there were no visual changes.