Sdílet prostřednictvím


Atlasový efekt

Tento efekt můžete použít k výstupu části image, ale zachovat oblast mimo tuto část pro použití v následných operacích.

CLSID pro tento efekt je CLSID_D2D1Atlas.

Atlas efekt je užitečný, pokud chcete načíst velký obrázek složený z mnoha menších obrázků, jako jsou různé snímky spritu.

Vytvoření výstupu efektu:

  1. Ořízáří vstup na danou vlastnost InputRect.
  2. Převede původ výsledku na (0,0).

Poznámka

Vlastnost InputPaddingRect by měla být větší, pouze pokud jsou pixely mezi dvěma obdélníky průhledné černé na vstupu. Výsledkem může být optimální spuštění grafu Direct2D.

Tady je příklad efektu. Tento obrázek je pro ilustraci malý a jednoduchý.

vstupní obrázek.

Předchozí obrázek je vstupem k efektu. Kód zde vytvoří atlasový efekt, nastaví vstup, nastaví vstupní obdélník a pak nakreslí výstup.

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());

Předchozí kód vybere obdélník, který je kolem druhého trojúhelníku. Odsazení kolem je ignorováno. Tady je výsledný obrázek.

výstupní image.

Poznámka

To je situace, kdy se můžete rozhodnout zadat InputPaddingRect, protože odsazení je průhledné černé. Obdélník by byl D2D1::Vector4F(size + (padding * 2), 0, size + padding, size + padding);.

Vlastnosti efektu

Zobrazovaný název a výčet indexu Popis
InputRect
D2D1_ATLAS_PROP_INPUT_RECT
Část obrázku předaná dalšímu efektu.
Typ je D2D1_VECTOR_4F.
Výchozí hodnota je (-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX).
InputPaddingRect
D2D1_ATLAS_PROP_INPUT_PADDING_RECT
Maximální velikost vzorkovaná pro výstupní obdélník.
Typ je D2D1_VECTOR_4F.
Výchozí hodnota je (-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX).

Požadavky

Požadavek Hodnota
Minimální podporovaný klient Windows 8 a Aktualizace platformy pro Windows 7 [desktopové aplikace | Aplikace pro Windows Store]
Minimální podporovaný server Windows 8 a Aktualizace platformy pro Windows 7 [desktopové aplikace | Aplikace pro Windows Store]
Záhlaví d2d1effects.h
Knihovna d2d1.lib, dxguid.lib

ID2D1Effect