Effetto Atlas
È possibile usare questo effetto per restituire una parte di un'immagine, ma conservare l'area esterna alla parte per l'uso nelle operazioni successive.
ClSID per questo effetto è CLSID_D2D1Atlas.
L'effetto atlas è utile se si vuole caricare un'immagine di grandi dimensioni costituita da molte immagini più piccole, ad esempio vari fotogrammi di una sprite.
Per creare l'output l'effetto:
- Ritaglia l'input alla proprietà InputRect specificata.
- Converte l'origine del risultato in (0,0).
Nota
La proprietà InputPaddingRect deve essere maggiore solo se e solo se i pixel tra i due rettangoli sono trasparenti sull'input. Ciò può comportare l'esecuzione del grafico direct2D in modo più ottimale.
Ecco un esempio dell'effetto. Questa immagine è piccola e semplice per scopi di illustrazione.
L'immagine precedente è l'input per l'effetto. Il codice qui crea un effetto atlas, imposta l'input, imposta il rettangolo di input e quindi disegna l'output.
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());
Il codice precedente seleziona un rettangolo intorno al secondo triangolo. La spaziatura interna intorno viene ignorata. Ecco l'immagine risultante.
Nota
Si tratta di una situazione in cui è possibile scegliere di specificare un InputPaddingRect perché la riempimento è trasparente nero. Il rettangolo sarebbe D2D1::Vector4F(size + (padding * 2), 0, size + padding, size + padding);
.
Enumerazione nome visualizzato e indice | Descrizione |
---|---|
InputRect D2D1_ATLAS_PROP_INPUT_RECT |
Parte dell'immagine passata all'effetto successivo. Il tipo è D2D1_VECTOR_4F. Il valore predefinito è (-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX). |
InputPaddingRect D2D1_ATLAS_PROP_INPUT_PADDING_RECT |
Dimensioni massime campionate per il rettangolo di output. Il tipo è D2D1_VECTOR_4F. Il valore predefinito è (-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX). |
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8 e Aggiornamento della piattaforma per Windows 7 [app desktop | App di Windows Store] |
Server minimo supportato | Windows 8 e Aggiornamento della piattaforma per Windows 7 [app desktop | App di Windows Store] |
Intestazione | d2d1effects.h |
Libreria | d2d1.lib, dxguid.lib |