Skip to content

Commit 5ac5c73

Browse files
authored
Add explicit support tiers (#323)
Also adds `PULL_REQUEST_TEMPLATE.md` and fixes `CODEOWNERS`.
1 parent f0edb18 commit 5ac5c73

File tree

3 files changed

+50
-37
lines changed

3 files changed

+50
-37
lines changed

.github/CODEOWNERS

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
# Android
2-
/src/android.rs @MarijnS95
2+
/src/backends/android.rs @MarijnS95
33

44
# Apple platforms
5-
/src/cg.rs @madsmtm
5+
/src/backends/cg.rs @madsmtm
66

77
# DRM/KMS (no maintainer)
8-
/src/kms.rs
8+
/src/backends/kms.rs
99

1010
# Redox
11-
/src/orbital.rs @jackpot51
11+
/src/backends/orbital.rs @jackpot51
1212

1313
# Wayland
14-
/src/wayland @ids1024
14+
/src/backends/wayland @ids1024
1515

1616
# Web
17-
/src/web.rs @daxpedda
17+
/src/backends/web.rs @daxpedda
1818

1919
# Windows
20-
/src/win32.rs @notgull
20+
/src/backends/win32.rs @notgull
2121

2222
# X11
23-
/src/x11.rs @notgull
23+
/src/backends/x11.rs @notgull

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<!-- Thanks for contributing! -->
2+
3+
<!-- If your pull request only touches a single backend, feel free to prune the following list: -->
4+
5+
Tested on:
6+
- [ ] AppKit (tier 1)
7+
- [ ] Wayland (tier 1)
8+
- [ ] Win32 (tier 1)
9+
- [ ] XCB / Xlib (tier 1)
10+
- [ ] Android NDK (tier 2)
11+
- [ ] UIKit (tier 2)
12+
- [ ] Web (tier 2)
13+
- [ ] DRM/KMS (tier 3)
14+
- [ ] Orbital (tier 3)
15+
16+
<!-- Note that it's okay to leave these unchecked, this is just a signal to the reviewer that they need to test it themselves. PRs may be merged when all tier 1 backends have been tested. -->

README.md

Lines changed: 26 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -27,35 +27,32 @@ pixels when its GPU-accelerated post-processing effects are not needed.
2727
This library is dual-licensed under MIT or Apache-2.0, just like minifb and rust. Significant portions of code were taken
2828
from the minifb library to do platform-specific work.
2929

30-
## Platform support:
31-
32-
Some, but not all, platforms supported in [raw-window-handle](https://crates.io/crates/raw-window-handle) are supported
33-
by Softbuffer. Pull requests are welcome to add new platforms! **Nonetheless, all major desktop platforms that winit uses
34-
on desktop are supported.**
35-
36-
For now, the priority for new platforms is:
37-
38-
1. to have at least one platform on each OS working (e.g. one of Win32 or WinRT, or one of Xlib, Xcb, and Wayland) and
39-
2. for that one platform on each OS to be the one that winit uses.
40-
41-
(PRs will be accepted for any platform, even if it does not follow the above priority.)
42-
43-
| Platform ||
44-
|-----------|--|
45-
|Android NDK||
46-
| AppKit ||
47-
| Orbital ||
48-
| UIKit ||
49-
| Wayland ||
50-
| Web ||
51-
| Win32 ||
52-
| WinRT ||
53-
| XCB ||
54-
| Xlib ||
55-
56-
✅: Present\
57-
❔: Immature\
58-
❌: Absent
30+
## Platform support
31+
32+
Softbuffer supports many platforms, some to a higher degree than others. This is codified with a "tier" system. Tier 1 platforms can be thought of as "tested and guaranteed to work", tier 2 as "will likely work", and tier 3 as "builds in CI".
33+
34+
The current status is as follows (based on the list of platforms exposed by [`raw-window-handle`](https://crates.io/crates/raw-window-handle)):
35+
36+
| Platform | Tier | Available |
37+
| ------------------ | ---- | --------- |
38+
| AppKit (macOS) | 1 ||
39+
| Wayland | 1 ||
40+
| Win32 | 1 ||
41+
| XCB / Xlib (X11) | 1 ||
42+
| Android NDK | 2 ||
43+
| UIKit (iOS) | 2 ||
44+
| WebAssembly | 2 ||
45+
| DRM/KMS | 3 ||
46+
| Orbital | 3 ||
47+
| GBM/KMS | N/A ||
48+
| Haiku | N/A ||
49+
| OpenHarmony OS NDK | N/A | ❌ ([#261](https://github.com/rust-windowing/softbuffer/pull/261)) |
50+
| WinRT | N/A ||
51+
| UEFI | N/A | ❌ ([#282](https://github.com/rust-windowing/softbuffer/pull/282)) |
52+
53+
Beware that big endian targets are much less tested, and may behave incorrectly.
54+
55+
Pull requests to add support for new platforms are welcome!
5956

6057
## WebAssembly
6158

0 commit comments

Comments
 (0)