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 pour 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 de l’effet :
- Rogne l’entrée dans la propriété InputRect donnée.
- Traduit l’origine du résultat en (0,0).
Note
La propriété InputPaddingRect ne doit être plus grande que si et seulement si les pixels entre les deux rectangles sont noirs transparents sur l’entrée. Cela peut entraîner l’exécution optimale du graphique Direct2D.
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. Le code ici 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.
image de sortie
Note
Il s’agit d’une situation où vous pouvez choisir de spécifier une InputPaddingRect, car le remplissage est noir transparent. Le rectangle serait D2D1::Vector4F(size + (padding * 2), 0, size + padding, size + padding);
.
Propriétés d’effet
Nom complet 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). |
Exigences
Exigence | Valeur |
---|---|
Client minimum pris en charge | Windows 8 et Mise à jour de plateforme pour Windows 7 [applications de bureau | Applications du Windows Store] |
Serveur minimum 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 |