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

Separate layout and drawing in order to measure and improve performance #67

Closed
cmeyer opened this issue Apr 10, 2023 · 1 comment
Closed
Labels
audience - developer affects internal development or blocks another issue effort - week a week or less impact - critical has no practical workaround and prevents regular use reach - medium affects several users weekly

Comments

@cmeyer
Copy link
Collaborator

cmeyer commented Apr 10, 2023

Notes from 2023-04-01:

Here are some ideas about the drawing architecture to address the slow resizing behavior on Windows.

  • separate layout into something that is separate from the canvas item.
  • separate repainting into something that is separate from the canvas item.
  • automatically handle layering during repainting. layering is necessary when repainting requires a background task and caching, i.e. drawing line plot or images.
  • retained drawing model?
  • the canvas item can maintain a current layout and repaint model.
  • copying the layout/repaint models should be O(1) if possible; this makes it fast to launch threads for layout and repaint.
  • modifying the layout/repaint models may be O(n) or worse; this is only to facilitate O(1) above.
  • make measurable functions to do layout, drawing prep, and drawing to screen
  • write an animation for measuring performance using underlying measurable functions
@cmeyer cmeyer added impact - critical has no practical workaround and prevents regular use reach - medium affects several users weekly audience - developer affects internal development or blocks another issue effort - week a week or less labels Mar 1, 2024
@cmeyer cmeyer self-assigned this Mar 1, 2024
@cmeyer cmeyer added the priority - medium automated priority tag label Mar 5, 2024
@cmeyer cmeyer removed the priority - medium automated priority tag label Jul 3, 2024
@cmeyer cmeyer removed their assignment Jul 11, 2024
@cmeyer
Copy link
Collaborator Author

cmeyer commented Jan 13, 2025

closed with nionui 9.0

@cmeyer cmeyer closed this as completed Jan 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
audience - developer affects internal development or blocks another issue effort - week a week or less impact - critical has no practical workaround and prevents regular use reach - medium affects several users weekly
Projects
None yet
Development

No branches or pull requests

1 participant