Experiment with AvaloniaRenderingFrameProvider #19
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.
Hello!
This library looks very interesting, thank you for your work :).
Noticed that Avalonia FrameProvider version used DispatcherTimer, which isn't necessary the best implementation conceptually for frames. As well as WPF version actually uses render timer callbacks.
Starting with 11.0 version we also have an equivalent APIs -
TopLevel.RequestAnimationFrame(Action)
where callback is synchronized with render timer and display framerate.There is a big problem though. In WPF similar API is static and can be accessed from anywhere. In Avalonia, since we support multiple platforms, it gets more complicated, and this API is only accessible from the specific TopLevel. Where TopLevel can be an any Window, or a single root on mobile/browser. Obviously, it's quite hard to access from the framework initialization.