Is `Context` needed for anything other than performance?
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- rust
- Ambito
- computer-graphics, desktop-dev
Direzione di ricerca
Inizia leggendo il softbuffer issue 37, il pull request 64 e l’issue correlata 298 collegati, per verificare perché Context e Surface siano separati. Poi esamina le API pubbliche di Context e Surface e i relativi vincoli di ownership. Il lavoro è completo quando si è raggiunta una decisione API definitiva per il caso pratico di una singola finestra senza compromettere l’uso con più finestre.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Rust
- Stelle
- 507
- Fork
- 84
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di rust-windowing/softbuffer
-
DS - X11
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
rust-windowing/softbuffer#368 ·
-
`Buffer<'_>` shouldn't be `Send`Forse già presa @Guflly l’ha presa 66 giorni fa. Apertabug DS - Android NDK
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
rust-windowing/softbuffer#347 · 1 commento ·
-
Needs Design Work
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
rust-windowing/softbuffer#342 · 1 commento ·
-
enhancement question
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
rust-windowing/softbuffer#338 ·
-
Zero-copying on AndroidForse già presa @MarijnS95 l’ha presa 248 giorni fa. ApertaDS - Android NDK enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
rust-windowing/softbuffer#318 · 2 commenti ·
Tutte le issue di rust-windowing/softbuffer
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
app enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 80/100
elodin-sys/elodin#890 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
guidance-ai/llguidance#391 ·