5 releases
0.1.4 | Jan 24, 2020 |
---|---|
0.1.3 | Jan 24, 2020 |
0.1.2 | Aug 28, 2019 |
0.1.1 | Aug 27, 2019 |
0.1.0 | Aug 27, 2019 |
#702 in Graphics APIs
130KB
1.5K
SLoC
swsurface
This crate provides a software-rendered surface for winit
.
The goal of this crate is to provide a minimal drawing functionality
for every platform supported by winit
even if the drawing APIs that we
usually assume are available, such as OpenGL¹, aren't available in the
target environment. This crate is also useful as a fallback when they are
available, but failed due to an unrecoverable error.
¹ “Servo on Windows in VirtualBox gets 'NoAvailablePixelFormat'” servo/servo #9468
To this end, this crate is designed to panic only when preconditions are not met or under very pathologic circumstances that would cause winit to panic.
Unimplemented features
- Partial update - The application can redraw a portion, but
swsurface
always sends entire the windowfor now - Support for platforms other than: macOS, Windows, X11, Wayland
- X11: Support for color depths other than 24
- X11: Transparency
- Multi-threaded rendering (
Send
-ableSurface
) - Color management - we'll try to stick to sRGB for now
License: MIT/Apache-2.0
Dependencies
~2–10MB
~109K SLoC