Atlaseffekt
Sie können diesen Effekt verwenden, um einen Teil eines Bilds auszugeben, aber den Bereich außerhalb des Teils für die Verwendung in nachfolgenden Vorgängen beizubehalten.
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. verschiedene Frames eines Sprites.
So erstellen Sie die Ausgabe des Effekts:
- Schneidet die Eingabe an die angegebene InputRect-Eigenschaft ab.
- Übersetzt den Ursprung des Ergebnisses in (0,0).
Anmerkung
Die InputPaddingRect--Eigenschaft sollte nur dann größer sein, wenn die Pixel zwischen den beiden Rechtecke auf der Eingabe transparent schwarz sind. Dies kann dazu führen, dass direct2D das Diagramm optimal ausführt.
Hier ist ein Beispiel für den Effekt. Dieses Bild ist klein und einfach zu Veranschaulichungszwecken.
Das vorherige 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. Der Abstand um sie herum wird ignoriert. Hier sehen Sie das resultierende Bild.
Anmerkung
Dies ist eine Situation, in der Sie eine InputPaddingRect- angeben können, da der Abstand transparent schwarz ist. Das Rechteck wäre D2D1::Vector4F(size + (padding * 2), 0, size + padding, size + padding);
.
Effekteigenschaften
Anzeigename und Indexenumeration | Beschreibung |
---|---|
InputRect D2D1_ATLAS_PROP_INPUT_RECT |
Der Teil des Bilds, der an den nächsten Effekt übergeben wurde. Typ ist 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 stichprobeniert wurde. Typ ist D2D1_VECTOR_4F. Der Standardwert ist (-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX). |
Anforderungen
Anforderung | Wert |
---|---|
Mindestens unterstützter Client | Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | Windows Store-Apps] |
Mindestens unterstützter Server | Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | Windows Store-Apps] |
Kopfball | d2d1effects.h |
Bibliothek | d2d1.lib, dxguid.lib |