Efeito Atlas
Você pode usar esse efeito para gerar uma parte de uma imagem, mas reter a região fora da parte para uso em operações subsequentes.
O CLSID para este efeito é CLSID_D2D1Atlas.
O efeito atlas é útil se você quiser carregar uma imagem grande composta por muitas imagens menores, como vários quadros de um sprite.
Para criar a saída do efeito:
- Corta a entrada para o dado InputRect propriedade.
- Traduz a origem do resultado para (0,0).
Observação
A propriedade InputPaddingRect só deve ser maior se e somente se os pixels entre os dois retângulos forem pretos transparentes na entrada. Isso pode resultar em Direct2D executando o gráfico de forma mais otimizada.
Aqui está um exemplo do efeito. Esta imagem é pequena e simples para fins ilustrativos.
A imagem anterior é a entrada para o efeito. O código aqui cria um efeito atlas, define a entrada, define o retângulo de entrada e, em seguida, desenha a saída.
ComPtr<ID2D1Effect> atlasEffect;
// Create the Atlas Effect.
DX::ThrowIfFailed(m_d2dContext->CreateEffect(CLSID_D2D1Atlas, &atlasEffect));
// Set the input.
atlasEffect->SetInputEffect(0, inputImage.Get());
// The images here are 150 x 150 pixels.
float size = 150.0f;
// Compensate for the padding between images.
float padding = 10.0f;
// The input rectangle. 150 x 150 pixels with 10 pixel padding
D2D1_Vector_4F inputRect = D2D1::Vector4F(size + (padding * 2), padding, size, size);
DX::ThrowIfFailed(atlasEffect->SetValue(D2D1_ATLAS_PROP_INPUT_RECT, inputRect));
// Draw the image
m_d2dContext->DrawImage(atlasEffect.Get());
O código anterior seleciona um retângulo que está ao redor do segundo triângulo. O preenchimento em torno dele é ignorado. Aqui está a imagem resultante.
Observação
Esta é uma situação em que você pode optar por especificar um InputPaddingRect porque o preenchimento é preto transparente. O retângulo seria D2D1::Vector4F(size + (padding * 2), 0, size + padding, size + padding);
.
Propriedades do efeito
Nome para exibição e enumeração de índice | Descrição |
---|---|
InputRect D2D1_ATLAS_PROP_INPUT_RECT |
A parte da imagem passou para o próximo efeito. Type é D2D1_VETOR_4F. O valor padrão é (-FLT_MAX, -FLT_MAX, FLT_MAX FLT_MAX). |
InputPaddingRect D2D1_ATLAS_PROP_INPUT_PADDING_RECT |
O tamanho máximo amostrado para o retângulo de saída. Type é D2D1_VETOR_4F. O valor padrão é (-FLT_MAX, -FLT_MAX, FLT_MAX FLT_MAX). |
Requerimentos
Exigência | Valor |
---|---|
Cliente mínimo suportado | Windows 8 e Atualização da Plataforma para Windows 7 [aplicações de ambiente de trabalho | Aplicações da Loja Windows] |
Servidor mínimo suportado | Windows 8 e Atualização da Plataforma para Windows 7 [aplicações de ambiente de trabalho | Aplicações da Loja Windows] |
Cabeçalho | d2d1effects.h |
Biblioteca | d2d1.lib, dxguid.lib |