rust-windowing/softbuffer

Update the crates.io version

marceline-cramer opened this issue · 5 comments

Hi, I'm using softbuffer in my toy terminal emulator project on Wayland, and I had to pull softbuffer as a git dependency in order for it to do proper Wayland damage tracking on redraws. Could you please publish the latest master onto crates.io?

I have been meaning to for a little bit already, but there are a few things that I wanted to finish first (namely making the Wayland implementation better). I'll push a new version soon, probably without the completely improved Wayland implementation.

I had been meaning to fork softbuffer and make my own improvements on Wayland. Do you need help with anything?

I don't have much hands-on experience with Wayland, no, but I figure that something like double-buffering (to get rid of the screen-tearing during normal operation and shearing on resize; would fix #11) would be pretty straight-forward to implement. I was planning on referencing tried-and-true Wayland shm implementations like minifb and foot, but if that doesn't work, I can take the time myself to learn the nitty-gritty specifics of Wayland. I need shared memory-based CPU graphics in lots of the projects I do, so I'm happy to put a lot of time into softbuffer's Wayland backend if it means that my projects can run on non-Wayland for other people too.

There are two major issues that I've personally noticed while using softbuffer that I plan to fix:

  • My compositor (Sway) greatly slows down with more than a few full-screen softbuffer windows updating. I want to add damage rects (#9) to the API to reduce the strain on the compositor.
  • Transparency is unsupported (#17). I can add this for Wayland and X11 (again, by referencing working impls) but not for other platforms. This would also require an API change.

0.2.0 is now released, see the changelog for changes.