-
Notifications
You must be signed in to change notification settings - Fork 55
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
Add Buffer::present_with_damage()
and Buffer::age()
#99
Conversation
c42958f
to
71ae6df
Compare
https://www.x.org/releases/X11R7.7/doc/damageproto/damageproto.txt
If we're using So I guess on X, we'd not use XDamage here, but could call |
Yep, iterating over rects and calling Now to look at how https://wiki.libsdl.org/SDL2/SDL_UpdateWindowSurfaceRects is implemented in other backends to see if it can be done elsewhere... Edit: Ah, |
007c74e
to
0720d64
Compare
Supported on Wayland, X11, and Win32. Fixes #39. try_for_each
f36f86e
to
7f78a60
Compare
Buffer::present_with_damage()
Buffer::present_with_damage()
and Buffer::age()
Everything here should work now, but is untested. |
Fixes #90.
Updated to use Still not properly tested, but there shouldn't be much that could go wrong here, and merging would help us work on other things without accumulating more conflicts. I still need to see about making use of both of these features in Iced's new software renderer. |
Updated to address conflicts with #104. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me!
I think we can merge this now. So more backend code changes can be made without adding conflicts. If any issues come up later, they can be fixed. |
* On MacOS, the contents scale is updated when set_buffer() is called, to adapt when the window is on a new screen (#68). * **Breaking:** Split the `GraphicsContext` type into `Context` and `Surface` (#64). * On Web, cache the document in the `Context` type (#66). * **Breaking:** Introduce a new "owned buffer" for no-copy presentation (#65). * Enable support for multi-threaded WASM (#77). * Fix buffer resizing on X11 (#69). * Add a set of functions for handling buffer damage (#99). * Add a `fetch()` function for getting the window contents (#104). * Bump MSRV to 1.64 (#81).
#39.
Implemented only for Wayland. Should be able to add an X implementation using
XDamage
, but I haven't looked at how that works yet. Onweb
we could use this to update only the changed part of the canvas possibly. If we need to convert the format anyway. I don't see any API for damage that could be used on macOS or Windows.Also should be tested in some way.