Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

improve fill() routines #146

Closed
irmen opened this issue Jun 25, 2024 · 2 comments
Closed

improve fill() routines #146

irmen opened this issue Jun 25, 2024 · 2 comments

Comments

@irmen
Copy link
Owner

irmen commented Jun 25, 2024

The default buffer size for gfx2.fill() is 64 entries which is far too small to reliably fill all polygons, especially in high res screen modes.

Fix this maybe by using the stack/queue code in #145

Don't forget monogfx.fill() as well.

Another optimization that could be made is to remove the separate calls to horizontal_line, and instead immediately pset() the pixels after the pget()'s. Might even optimize that by using both vera data ports 1 for reading 1 for writing, with appropriate auto increment/decrement.

see discord DM from leroy for code

@irmen irmen changed the title change fill() routines to use a much larger buffer so that they don't abort halfway improve fill() routines Jun 26, 2024
@irmen
Copy link
Owner Author

irmen commented Aug 23, 2024

Note: the monogfx optimization work is being done in the following branch: monogfx_fill_optimization

gfx2 has been completed (performance wise, not the limited stack issue)

@irmen
Copy link
Owner Author

irmen commented Oct 12, 2024

optimized monogfx a bit, but there's room for future improvements if someone wants to implement masking and vera auto increment/decrement support when drawing the spans. It wil make the span code quite a bit more involved though. So I'm leaving it for now.

@irmen irmen closed this as completed Oct 12, 2024
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

No branches or pull requests

1 participant