Skip to content

make circles look more like circles#939

Closed
cyrgani wants to merge 1 commit intonot-fl3:masterfrom
cyrgani:better-circles
Closed

make circles look more like circles#939
cyrgani wants to merge 1 commit intonot-fl3:masterfrom
cyrgani:better-circles

Conversation

@cyrgani
Copy link
Copy Markdown
Contributor

@cyrgani cyrgani commented Apr 5, 2025

Circles are currently 20-side polygons. This PR increases that number to 100 for much better visual effect. It also fixes an inconsistency: previously, circle outlines were 30-side polygons, but filled circles had just 20 sides.

Before

image

After

image

Testing this on an example project revealed that the old version took around 3µs per circle in release mode, while the new one took 4µs. Given that the circle is five times more precise now, that seems like a good tradeoff.

This supersedes #713.

@not-fl3
Copy link
Copy Markdown
Owner

not-fl3 commented Apr 5, 2025

It always will be a compromise, people do use draw_circle to draw a thousand of very little circles, and 5 would be a good enough number of vertices. And people will use draw_circles for full_screen circles, where even a 100 will be not enough.

20 looks like a decent middle ground tbh

@not-fl3 not-fl3 closed this Apr 5, 2025
@cyrgani
Copy link
Copy Markdown
Contributor Author

cyrgani commented Apr 5, 2025

For every use case, people can just call draw_poly and set whatever amount of sides they want. So I think it is just the question which use case for circles is more common and should be covered by draw_circle: many very small ones or fewer bigger ones. I don't know which one is more common though, so I see why you don't want to change this.

Maybe there is some better solution that calls into miniquad rendering directly without needing draw_poly and without speed losses?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants