Is `Context` needed for anything other than performance?
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 25/100
- Issue-Typ
- Feature
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- rust
- Bereich
- computer-graphics, desktop-dev
Rechercherichtung
Beginne mit dem Lesen des verknüpften softbuffer issue 37, pull request 64 und des zugehörigen issue 298, um zu überprüfen, warum Context und Surface getrennt sind. Untersuche anschließend die öffentlichen Context- und Surface-APIs sowie deren Eigentumsbeschränkungen. Als erledigt gilt, eine endgültige API-Entscheidung für den Komfortfall mit einem einzelnen Fenster zu erreichen, ohne die Nutzung mit mehreren Fenstern zu beeinträchtigen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
I've read https://github.com/rust-windowing/softbuffer/issues/37 and https://github.com/rust-windowing/softbuffer/pull/64, and from my understanding, the split between Context and Surface is purely for performance, to allow sharing resources that are expensive to create.
Is that correct?
If so, then I feel it might make sense to add a convenience wrapper like:
impl<W: HasDisplayHandle + HasWindowHandle> Surface<W, W> {
pub fn new_single_window_bikeshed(window: W) -> Result<Self, CreationError> {
// Conceptual implementation, needs to be done differently in reality
// since the window needs to only be stored in the surface.
let context = Context::new(window);
Self::new(&context, window)
}
}
And perhaps change Surface to be something like struct Surface<D, W = D> (make the two type parameters default to be the same type).
This would simplify the common use-case of having a single window to be:
struct App {
surface: softbuffer::Surface<winit::Window>,
// + possibly an `Option` if you want to support Android too.
}
While still allowing the more complex multi-window case:
struct App {
context: softbuffer::Context<winit::OwnedDisplayHandle>,
surfaces: Vec<softbuffer::Surface<winit::OwnedDisplayHandle, winit::Window>>,
}
See relatedly https://github.com/rust-windowing/softbuffer/issues/298.
- Vorherrschende Sprache
- Rust
- Sterne
- 511
- Forks
- 88
- 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 87 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 270 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
-
area: library data-loss type: bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
alplabai/signex#1740 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
test(fslc): the unreadable mutate catalog test pins the Unix I/O error text and fails on WindowsEvtl. vergeben @rizumita hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 69/100
Maintainer antworten meist innerhalb von 1 Tag
-
ServerProperties defaults white-list to true, so a fresh --dedicated server silently locks itselfOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
horizon-rust/horizon#3888 ·
Maintainer antworten meist innerhalb von 1 Tag
-
refactor
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
Maintainer antworten meist innerhalb von 1 Tag