Share via


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 :

  1. Rogne l’entrée dans la propriété InputRect donnée.
  2. 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.

image d’entrée.

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.

image de sortie.

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

ID2D1Effect