osu-framework
osu-framework copied to clipboard
Implement `FastCircle` component
Adresses https://github.com/ppy/osu-framework/issues/6067, https://github.com/ppy/osu/issues/21495
Pros:
- No nested
Box
drawable (adds up in demanding scenarios) -
Correct masking when used inside
CircularContainer
- No overhead from masking info and no batch breaking in cases when multiple circles are being drawn consecutively (though I think SSBO supposed to fix that?)
Cons (which are holding me back from replacing current Circle
implementation with this one):
-
Circle
is no longer a container (so is theBox
which I think is fine) - No ability to set masking-related effects directly (again
Box
has the same properties) - Points above might be considered a breaking change, but easily fixeable by using
CircularContainer
instead - Texture coordinates abuse to pass draw size into the shader without uniform buffers
- Has a separate shader
Performance comparison in demanding scenarios:
master | pr |
---|---|