Atlas-Effekt
Sie können diesen Effekt verwenden, um einen Teil eines Images ausausgaben, aber den Bereich außerhalb des Teils für die Verwendung in nachfolgenden Vorgängen beibehalten.
Die CLSID für diesen Effekt ist CLSID _ D2D1Atlas.
Der Atlaseffekt ist nützlich, wenn Sie ein großes Bild laden möchten, das aus vielen kleineren Bildern besteht, z. B. verschiedenen Frames eines Sprite.
So erstellen Sie die Ausgabe des Effekts:
- Endt die Eingabe in die gegebene InputRect-Eigenschaft.
- Übersetzt den Ursprung des Ergebnisses in (0,0).
Hinweis
Die InputPaddingRect-Eigenschaft sollte nur dann größer sein, wenn die Pixel zwischen den beiden Rechtecke in der Eingabe transparent schwarz sind. Dies kann dazu führen, dass Direct2D den Graphen optimaler ausführen kann.
Hier ist ein Beispiel für den Effekt. Dieses Bild ist zu Veranschaulichungszwecken klein und einfach.

Das obige Bild ist die Eingabe für den Effekt. Der Code hier erstellt einen Atlaseffekt, legt die Eingabe fest, legt das Eingaberechteck fest und zeichnet dann die Ausgabe.
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());
Der vorangehende Code wählt ein Rechteck aus, das sich um das zweite Dreieck befindet. Die Padding um sie wird ignoriert. Hier sehen Sie das resultierende Bild.

Hinweis
Dies ist eine Situation, in der Sie ein InputPaddingRect angeben können, da die Auf padding transparent schwarz ist. Das Rechteck wäre D2D1::Vector4F(size + (padding * 2), 0, size + padding, size + padding); .
Effect-Eigenschaften
| Anzeigename und Indexenumeration | BESCHREIBUNG |
|---|---|
| InputRect D2D1 _ ATLAS _ PROP _ INPUT _ RECT |
Der Teil des Bilds, der an den nächsten Effekt übergeben wird. Typ: D2D1 _ VECTOR _ 4F Der Standardwert ist (-FLT _ MAX, -FLT _ MAX, FLT _ MAX, FLT _ MAX). |
| InputPaddingRect D2D1 _ ATLAS _ PROP _ INPUT _ PADDING _ RECT |
Die maximale Größe, die für das Ausgaberechteck entnommen wurde. Typ: D2D1 _ VECTOR _ 4F Der Standardwert ist (-FLT _ MAX, -FLT _ MAX, FLT _ MAX, FLT _ MAX). |
Requirements (Anforderungen)
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) | Windows 8 und Plattformupdate für Windows 7 [ Desktop-Apps | Windows Store Apps] |
| Unterstützte Mindestversion (Server) | Windows 8 und Plattformupdate für Windows 7 [ Desktop-Apps | Windows Store Apps] |
| Header | d2d1effects.h |
| Bibliothek | d2d1.lib, dxguid.lib |