Efeito composto
Use o efeito composto para combinar 2 ou mais imagens. Esse efeito tem 13 modos compostos diferentes. T
O efeito composto aceita 2 ou mais entradas. Quando você especifica duas imagens, o destino é a primeira entrada (índice 0) e a origem é a segunda entrada (índice 1). Se você especificar mais de 2 entradas, as imagens serão compostas começando com a primeira entrada e a segunda e assim por diante.
Esse efeito implementa todos os modos usando a unidade de mesclagem da GPU (unidade de processamento gráfico).
O CLSID para esse efeito é CLSID_D2D1Composite.
- Imagem de exemplo
- Propriedades de efeito
- Tipos de modo
- Código de exemplo
- Requirements
- Tópicos relacionados
Imagem de exemplo
A imagem aqui mostra dois retângulos arredondados do mesmo tamanho que se sobrepõem. O retângulo azul é a origem e o retângulo vermelho é o destino. As imagens foram compostas com o modo Source Over.
Veja outro exemplo usando o modo padrão.
Antes da imagem 1 |
---|
Antes da imagem 2 |
After (após) |
ComPtr<ID2D1Effect> compositeEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Composite, &compositeEffect);
compositeEffect->SetInput(0, bitmap);
compositeEffect->SetInput(1, bitmapTwo);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(compositeEffect.Get());
m_d2dContext->EndDraw();
Propriedades de efeito
Nome de exibição e enumeração de índice | Tipo e valor padrão | Descrição |
---|---|---|
Mode D2D1_COMPOSITE_PROP_MODE |
D2D1_COMPOSITE_MODE D2D1_COMPOSITE_MODE_SOURCE_OVER |
O modo usado para o efeito . |
Tipos de modo
A tabela aqui mostra os modos desse efeito. As equações listadas na tabela usam estes elementos:
- O = Saída
- S = Origem
- SA = Alfa de origem
- D = Destino
- DA = Destino Alfa
Enumeração | Equação | Tamanho do bitmap de saída |
---|---|---|
D2D1_COMPOSITE_MODE_SOURCE_OVER | O = S + (1 SA) * D | União de bitmaps de origem e destino |
D2D1_COMPOSITE_MODE_DESTINATION_OVER | O = (1 DA) * S + D | União de bitmaps de origem e destino |
D2D1_COMPOSITE_MODE_SOURCE_IN | O = DA * S | Interseção de bitmaps de origem e destino |
D2D1_COMPOSITE_MODE_DESTINATION_IN | O = SA * D | Interseção de bitmaps de origem e destino |
D2D1_COMPOSITE_MODE_SOURCE_OUT | O = (1 – DA) * S | Região do bitmap de origem |
D2D1_COMPOSITE_MODE_DESTINATION_OUT | O = (1 – SA) * D | Região do bitmap de destino |
D2D1_COMPOSITE_MODE_SOURCE_ATOP | O = DA * S + (1 - SA) * D | Região do bitmap de destino |
D2D1_COMPOSITE_MODE_DESTINATION_ATOP | O = (1 – DA) * S + SA * D | Região do bitmap de origem |
D2D1_COMPOSITE_MODE_XOR | O = (1 – DA) * S + (1 – SA) * D | União de bitmaps de origem e destino |
D2D1_COMPOSITE_MODE_PLUS | O = S + D | União de bitmaps de origem e destino |
D2D1_COMPOSITE_MODE_SOURCE_COPY | O = S | Região do bitmap de origem |
D2D1_COMPOSITE_MODE_BOUNDED_SOURCE_COPY | O = S (somente onde a origem existe) | União de bitmaps de origem e destino. O destino não é substituído onde a origem não existe. |
D2D1_COMPOSITE_MODE_MASK_INVERT | O = (1 D) * S + (1 SA) * D | União de bitmaps de origem e destino. Os valores alfa não são alterados. |
A figura aqui mostra um exemplo de cada um dos modos com imagens que têm uma opacidade de 1,0 ou 0,5.
Código de exemplo
Para obter um exemplo desse efeito, baixe o exemplo Direct2D modos de efeito composto.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 8 e Atualização de Plataforma para Windows 7 [aplicativos da área de trabalho | Aplicativos da Windows Store] |
Servidor mínimo com suporte | Windows 8 e Atualização de Plataforma para Windows 7 [aplicativos da área de trabalho | Aplicativos da Windows Store] |
Cabeçalho | d2d1effects.h |
Biblioteca | d2d1.lib, dxguid.lib |