Effet Atlas
Vous pouvez utiliser cet effet pour générer une partie d’une image, mais conserver la région en dehors de la partie pour une utilisation dans les opérations suivantes.
Le CLSID de cet effet est CLSID_D2D1Atlas.
L’effet atlas est utile si vous souhaitez charger une grande image composée de nombreuses images plus petites, telles que différentes images d’un sprite.
Pour créer la sortie, l’effet :
- Rogne l’entrée dans la propriété InputRect donnée.
- Traduit l’origine du résultat en (0,0).
Notes
La propriété InputPaddingRect ne doit être plus grande que si et uniquement si les pixels entre les deux rectangles sont en noir transparent sur l’entrée. Cela peut entraîner l’exécution du graphe par Direct2D de manière plus optimale.
Voici un exemple de l’effet. Cette image est petite et simple à des fins d’illustration.
L’image précédente est l’entrée à l’effet. Ici, le code crée un effet atlas, définit l’entrée, définit le rectangle d’entrée, puis dessine la sortie.
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());
Le code précédent sélectionne un rectangle qui se trouve autour du deuxième triangle. Le remplissage autour de celui-ci est ignoré. Voici l’image obtenue.
Notes
Il s’agit d’une situation dans laquelle vous pouvez choisir de spécifier un InputPaddingRect , car le remplissage est noir transparent. Le rectangle est D2D1::Vector4F(size + (padding * 2), 0, size + padding, size + padding);
.
Propriétés d’effet
Nom d’affichage et énumération d’index | Description |
---|---|
InputRect D2D1_ATLAS_PROP_INPUT_RECT |
Partie de l’image passée à l’effet suivant. Le type est D2D1_VECTOR_4F. La valeur par défaut est (-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX). |
InputPaddingRect D2D1_ATLAS_PROP_INPUT_PADDING_RECT |
Taille maximale échantillonné pour le rectangle de sortie. Le type est D2D1_VECTOR_4F. La valeur par défaut est (-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX). |
Spécifications
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8 et mise à jour de plateforme pour Windows 7 [applications de bureau | Applications du Windows Store] |
Serveur minimal pris en charge | Windows 8 et mise à jour de plateforme pour Windows 7 [applications de bureau | Applications du Windows Store] |
En-tête | d2d1effects.h |
Bibliothèque | d2d1.lib, dxguid.lib |