Pixel format API design
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 25/100
- Issue-Typ
- Feature
- Klarheit
- Muss geklärt werden
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- rust
- Bereich
- backend-api-design, computer-graphics
Rechercherichtung
Beginne damit, die Anforderungen an Pixel-Formate in diesem Issue zusammen mit den Issues 17 und 44 sowie Pull Request 95 zu prüfen. Untersuche die BGRX-to-RGBA-Konvertierung des Web-Backends und die Formatbeschränkungen von Waylands wl_shm. Als abgeschlossen gilt die Einigung auf unterstützte und optimale Formate, den Umgang mit Alpha, ein universelles Fallback-Verhalten und eine API zum Auflisten und Auswählen dieser Formate.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
We need an API to list available pixel formats, and select one. Some considerations:
- We want a way to support transparency: https://github.com/rust-windowing/softbuffer/issues/17
- The web backend current converts BGRX to RGBA. It would be better if it could use RGBA directly, if an application can render that way.
- It looks like for https://github.com/rust-windowing/softbuffer/issues/44 we'd have to use RGBX, rather than BGRX.
- For https://github.com/rust-windowing/softbuffer/pull/95, it seems BGRA is supported, but not BGRX. So we need to make sure to set alpha to 255.
- Wayland's
wl_shmcan support many formats, but only two are required to be supported by compositors.
So some questions here:
- What formats should be supported?
- We want to offer a format for each platform that can be used efficiently without conversion, at least, and there doesn't seem to be one that can be assumed everywhere, unfortunately.
- There are many formats that could be supported on at least some platforms.
- Do we want to support formats that are not 4 byte per pixel? This will impact the API, which currently uses u32 values for pixels.
- How to we communicate what formats are supported, and what formats are optimal?
- We still want at least one format to work on all platforms, even if it requires conversion on some, right? What formats should be universally supported, then?
- Vorherrschende Sprache
- Rust
- Sterne
- 509
- Forks
- 87
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Kein Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus rust-windowing/softbuffer
-
DS - X11
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 48/100
rust-windowing/softbuffer#368 ·
-
`Buffer<'_>` shouldn't be `Send`Evtl. vergeben @Guflly hat das vor 84 Tagen übernommen. Offenbug DS - Android NDK
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
rust-windowing/softbuffer#347 · 1 Kommentar ·
-
Needs Design Work
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
rust-windowing/softbuffer#342 · 1 Kommentar ·
-
enhancement question
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
rust-windowing/softbuffer#338 ·
-
Zero-copying on AndroidEvtl. vergeben @MarijnS95 hat das vor 266 Tagen übernommen. OffenDS - Android NDK enhancement
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
rust-windowing/softbuffer#318 · 2 Kommentare ·
Alle Issues in rust-windowing/softbuffer
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
manuscript-lang/manuscript#1364 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
fable-compiler/Fable#5157 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 73/100
Maintainer antworten meist innerhalb von 1 Tag
-
C-bug needs-triage O-UEFI T-libs
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
移动端宽屏适配Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 64/100
Maintainer antworten meist innerhalb von 1 Tag