Does `AlphaMode::Opaque` carry its weight?
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 25/100
- Tipo de issue
- Funcionalidade
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Stack de tecnologia
- rust
- Domínio
- computer-graphics
Direção de pesquisa
Comece revisando a API AlphaMode e o comportamento descrito no pull request 321. Compare as restrições de IOSurface e Web canvas no macOS/iOS, incluindo as possíveis configurações de alpha de CALayer e canvas, e verifique a issue 211 para obter requisitos relacionados. O trabalho estará concluído quando houver uma decisão documentada sobre se Opaque deve continuar sendo um modo separado.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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?
- Linguagem predominante
- Rust
- Estrelas
- 511
- Forks
- 88
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Sem guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de rust-windowing/softbuffer
-
DS - X11
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 48/100
rust-windowing/softbuffer#368 ·
-
`Buffer<'_>` shouldn't be `Send`Talvez já em andamento @Guflly assumiu há 87 dias. Abertabug DS - Android NDK
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
rust-windowing/softbuffer#347 · 1 comentário ·
-
enhancement question
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
rust-windowing/softbuffer#338 ·
-
Zero-copying on AndroidTalvez já em andamento @MarijnS95 assumiu há 270 dias. AbertaDS - Android NDK enhancement
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
rust-windowing/softbuffer#318 · 2 comentários ·
-
DS - Wayland DS - X11 question
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
rust-windowing/softbuffer#306 · 2 comentários ·
Todas as issues de rust-windowing/softbuffer
Issues semelhantes
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
swc-project/swc-next#1165 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 73/100
Alive24/shea-symphony#574 ·
-
bug tests Windows
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
documentation good first issue help wanted
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
dev-five-git/devup-ui#879 ·
Mantenedores costumam responder em até 11 dias
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 77/100
farion1231/cc-switch#9038 · 1 comentário ·
Mantenedores costumam responder em até 1 dia