Does `AlphaMode::Opaque` carry its weight?
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- rust
- Área
- computer-graphics
Línea de trabajo
Empieza revisando la API de AlphaMode y el comportamiento descrito en el pull request 321. Compara las restricciones de IOSurface y Web canvas de macOS/iOS, incluidos los posibles ajustes de alpha de CALayer y canvas, y consulta el issue 211 para ver los requisitos relacionados. Se considera terminado cuando se haya documentado una decisión sobre si Opaque debe seguir siendo un modo separado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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?
- Lenguaje dominante
- Rust
- Estrellas
- 507
- Forks
- 85
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de rust-windowing/softbuffer
-
DS - X11
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
rust-windowing/softbuffer#368 ·
-
`Buffer<'_>` shouldn't be `Send`Posiblemente ocupada @Guflly la tomó hace 72 días. Abiertobug DS - Android NDK
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
rust-windowing/softbuffer#347 · 1 comentario ·
-
enhancement question
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
rust-windowing/softbuffer#338 ·
-
Zero-copying on AndroidPosiblemente ocupada @MarijnS95 la tomó hace 255 días. AbiertoDS - Android NDK enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
rust-windowing/softbuffer#318 · 2 comentarios ·
-
DS - Wayland DS - X11 question
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
rust-windowing/softbuffer#306 · 2 comentarios ·
Todos los issues de rust-windowing/softbuffer
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
bytecodealliance/rustix#1703 ·
Los mantenedores suelen responder en 3 días
-
bug discussion
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
medialab/xan#1201 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
farion1231/cc-switch#8298 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
ajeetdsouza/zoxide#1323 ·
Los mantenedores suelen responder en 1 día