Does `AlphaMode::Opaque` carry its weight?
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 25/100
- Type d'issue
- Fonctionnalité
- Clarté
- À clarifier
- Activité
- À l'abandon
- Stack technique
- rust
- Domaine
- computer-graphics
Piste de recherche
Commencez par examiner l’API AlphaMode et le comportement décrit dans la pull request 321. Comparez les contraintes d’IOSurface et de Web canvas sur macOS/iOS, notamment les paramètres alpha possibles de CALayer et de canvas, et consultez l’issue 211 pour connaître les exigences associées. Le travail est terminé lorsqu’une décision documentée a été prise quant au maintien d’Opaque comme mode distinct.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
In https://github.com/rust-windowing/softbuffer/pull/321, I added AlphaMode::Opaque as a sort of workaround for not all platforms supporting a mode where the alpha channel is ignored.
Specifically:
- On macOS/iOS with IOSurface, only premultiplied surfaces are supported.
- On Web, both pre- and postmultiplied can be supported zero-copy, but ignored cannot.
Another way to model this would be:
#[derive(Default)]
pub enum AlphaMode {
#[cfg_attr(not(any(target_vendor = "apple", target_family = "wasm")), default)]
Ignored,
#[cfg_attr(target_vendor = "apple", default)]
Premultiplied,
#[cfg_attr(target_family = "wasm", default)]
Postmultiplied,
}
Is there a strong benefit to having a separate AlphaMode::Opaque? We use it currently for debug-asserting that the alpha channel is 1.0, to help with writing cross-platform code, but is that enough of an argument? Is it useful for setting properties like CALayer.setOpaque(true) or { alpha: false } in canvas.getContext?
I guess it may be useful for https://github.com/rust-windowing/softbuffer/issues/211?
- Langage dominant
- Rust
- Étoiles
- 506
- Forks
- 84
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Nous n'avons pas encore vérifié les fichiers d'installation de ce projet. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de rust-windowing/softbuffer
-
DS - X11
Difficulté 3/5 1-2 jours Accessibilité débutants 48/100
rust-windowing/softbuffer#368 ·
-
`Buffer<'_>` shouldn't be `Send`Ouvertebug DS - Android NDK
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
rust-windowing/softbuffer#347 · 1 commentaire ·
-
enhancement question
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
rust-windowing/softbuffer#338 ·
-
Zero-copying on AndroidOuverteDS - Android NDK enhancement
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
rust-windowing/softbuffer#318 · 2 commentaires ·
-
DS - Wayland DS - X11 question
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
rust-windowing/softbuffer#306 · 2 commentaires ·
Toutes les issues de rust-windowing/softbuffer
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 3 jours
-
state:triage-needed
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
Automattic/harper#4503 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 92/100
tobi/walgit#84 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours