Atlasz effektus
Ezzel az effektussal kiadhatja a rendszerkép egy részét, de megtarthatja a régiót a részen kívül, hogy a későbbi műveletekben használhassa.
Az effektus CLSID azonosítója CLSID_D2D1Atlas.
Az atlasz effektus akkor hasznos, ha sok kisebb képből álló nagy képet szeretne betölteni, például egy sprite különböző kereteit.
A kimenet létrehozásához az effektus:
- Beszúrja az adott InputRect tulajdonság bemenetét.
- Az eredmény forrását (0,0) fordítja le.
Jegyzet
A InputPaddingRect tulajdonság csak akkor lehet nagyobb, ha és csak akkor, ha a két téglalap közötti képpontok átlátszó fekete színben jelennek meg a bemeneten. Ez azt eredményezheti, hogy a Direct2D optimálisabban hajtja végre a gráfot.
Íme egy példa az effektusra. Ez a kép illusztrációs célokra kicsi és egyszerű.
Az előző kép az effektus bemenete. Az itt található kód létrehoz egy atlaszeffektust, beállítja a bemenetet, beállítja a bemeneti téglalapot, majd megrajzolja a kimenetet.
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());
Az előző kód kijelöl egy téglalapot, amely a második háromszög körül található. A rendszer figyelmen kívül hagyja a körülötte lévő párnázást. Itt látható az eredményként kapott kép.
Jegyzet
Ez az a helyzet, amikor megadhat egy InputPaddingRect, mert a kitöltés átlátszó fekete. A téglalap D2D1::Vector4F(size + (padding * 2), 0, size + padding, size + padding);
lenne.
Effektus tulajdonságai
Név és index számbavételének megjelenítése | Leírás |
---|---|
InputRect D2D1_ATLAS_PROP_INPUT_RECT |
A kép következő effektusnak átadott része. A típus D2D1_VECTOR_4F. Az alapértelmezett érték (-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX). |
InputPaddingRect D2D1_ATLAS_PROP_INPUT_PADDING_RECT |
A kimeneti téglalaphoz mintavételezett maximális méret. A típus D2D1_VECTOR_4F. Az alapértelmezett érték (-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX). |
Követelmények
Követelmény | Érték |
---|---|
Minimálisan támogatott ügyfél | Windows 8 és Platform Update for Windows 7 [asztali alkalmazások | Windows Áruházbeli alkalmazások] |
Minimálisan támogatott kiszolgáló | Windows 8 és Platform Update for Windows 7 [asztali alkalmazások | Windows Áruházbeli alkalmazások] |
Fejléc | d2d1effects.h |
Könyvtár | d2d1.lib, dxguid.lib |