Extend to a maximum of 256 component types #313
Merged
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.
Rework
Mask
to hold an array of 4 xuint64
to represent 256 bits. Everything else comes into place by itself.Alternative to #312:
Filter.Match
takes a mask pointer as argumentMask
is copied when using as a filter (is pointer receiver in Extend to a maximum of 256 component types #312)Primarily avoids
All(ids...)
either returning a pointer, or requiring users to store the result (temporarily) to be able to get a pointer to it.Performance remains unchanged, except that
MaskFilter
matches are about 3 times slower (i.e. filters with component inclusion and exclusion). Not sure why, as the mask functions used there are as fast as before.