-
Notifications
You must be signed in to change notification settings - Fork 3
Conversation
madsmtm
commented
Dec 21, 2022
- Added @jackpot51 as Redox maintainer.
- Added myself as macOS maintainer
I'd been looking for something like this crate for a long time, and only very recently discovered soft buffer and found it to finally tick the boxes I was looking for. So I'm even more delighted to see the fork under the umbrella here and I subscribed to GH notifications for this repo. I'm familiar with the other platforms in general but not swbuf's specific implementation. |
Would be good to ask the winit maintainers for each platform. I have the ability to test changes for all platforms but web (until I figure out how that is supposed to be tested), but I don't understand any except the Redox/Orbital platform in enough depth to be maintainer. |
If we don't find anyone for X11 or Wayland I would like to take those on. |
Any
Also pinging Android people (@rust-mobile @rib @MarijnS95 @dvc94ch @msiglreith) to see if any of those would be interested in adding an Android implementation of this? |
@madsmtm I could take on the Windows backend and/or the X11 backend. |
I can maintain the Wayland backend. |
Cool, I've sent you an invite to the repo! (Note that multiple people can be "maintainer" of each platform, and I mean, we're all in it together, it's mostly to give contributors some sort of expectation of who to ping if they want their change going through). |
https://github.com/MarijnS95/ndk/compare/window-lock Maybe an Android backend would incentivize to pull that over the finish line. |
There's been some discussion about whether using DX11 or DX12 would be better than GDI on Windows, so I guess the goal would be to use whatever mechanism is best on Android to get an image onto the screen. I don't know what the NDK APIs are like. |
On a proper compositor/gralloc the buffer returned by Android here should 1 be a pointer to some DMA that is accessible by the DRM hardware (i.e. a DRM plane) that it can scanout directly (and why odd formats and strides are forced on the user here). On the contrary using a GPU API for purely CPU draws typically involves some sort of On desktop you typically need something like that anyway though, to get pixel data out of system memory into the dedicated GPU where presentation hardware and the physical connector to a monitor lives. Regardless, Android's Footnotes
|
7b3b967
to
24fd9ed
Compare
Hi, I'm the original softbuffer maintainer. Sorry for not being as active with reviewing PRs and such as I'd like to have been. Some circumstances, most recently just being busy, prevented me from doing so. There are a lot of good changes here, and I don't think that it makes much sense to fragment things when we have the original softbuffer crate. As such, I'd like to propose this:
After that, I can help coordinate changes between each platform maintainer. Unfortunately I am not an expert in any of these platforms (as was probably obvious to everyone who looked at some of my platform code), so taking a particular platform myself may not be ideal — but I can absolutely coordinate the changes between platforms, external API updates, etc. to get updates pushed out properly and going forward I expect to have more time (after working through what was keeping me busy). I can also add some other people on the crates.io package in case I do get busy again. If you all don't want me involved after being gone like that, I understand, but I do care about this library and I'm thrilled to see it getting so much attention from people who know more about these platforms than I do so I'd like to remain involved in this capacity. |
Really the most important thing is to figure out the best API for someone how just wants a way to put pixels on the screen in a cross-platform without an intimate knowledge of each backend (while conforming to what is possible and efficient across backends).
If want to move the |
I've been mulling over how to improve the API based on some issues that were raised previously, so I have some thoughts here. I see 4 potential issues with the API as it stands now:
Of these, I'm only certain that 3 needs to be fixed. Frankly, I don't know why I made it u16 to begin with. It was the wrong choice, but also a trivial fix. For 2 and 3 I see two general possibilities for how to fix it. We could add more methods alongside For 4, the fix seems orthogonal to the other fixes. We need some way to consider formats that are supported variously between different backend APIs, and also some way for users to write to a window without having to worry too much about that. Again, taking a page from Vulkan seems reasonable here — we can have a set of known formats, a set of supported formats, and at least one guaranteed-supported format. Also, to ease the difficulty of supporting several formats, it may make sense to add an optional
I'll also need to transfer the commits, but that's easy enough. I'm ready to execute this transfer once someone on rust-windowing is ready to coordinate on that end. |
Great to hear @john01dav! - And no worries about being absent, we all have a life outside of open source, and motivation is a hard thing to come by! I've sent you an invite to the organization, and have trired to set up the permissions such that you can transfer the repo - let me know if you need something else |
When you get there, would you mind adding maybe @kchibisov, @jackpot51, @notgull, and myself to the crate? Then I can add Also, people are quire active on Matrix wrt. softbuffer recently, so you may want to join that (also to be easier to reach ;) ) |
Moved to rust-windowing/softbuffer#47 since the repository was transfered |