Efekt atlasu
Możesz użyć tego efektu, aby wyświetlić część obrazu, ale zachować region poza częścią do użycia w kolejnych operacjach.
Identyfikator CLSID dla tego efektu jest CLSID_D2D1Atlas.
Efekt atlasu jest przydatny, jeśli chcesz załadować duży obraz składający się z wielu mniejszych obrazów, takich jak różne ramki sprite.
Aby utworzyć dane wyjściowe, efekt:
- Przycina dane wejściowe do danej właściwości InputRect.
- Tłumaczy początek wyniku na (0,0).
Nuta
Właściwość InputPaddingRect powinna być większa tylko wtedy, gdy i tylko wtedy, gdy piksele między dwoma prostokątami są przezroczyste czarne na wejściu. Może to spowodować, że funkcja Direct2D wykonuje graf bardziej optymalnie.
Oto przykład efektu. Ten obraz jest mały i prosty do celów ilustracyjnych.
Powyższy obraz jest wejściem do efektu. W tym miejscu kod tworzy efekt atlasu, ustawia dane wejściowe, ustawia prostokąt wejściowy, a następnie rysuje dane wyjściowe.
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());
Powyższy kod wybiera prostokąt, który znajduje się wokół drugiego trójkąta. Wypełnienie wokół niego jest ignorowane. Oto wynikowy obraz.
Nuta
Jest to sytuacja, w której można określić InputPaddingRect, ponieważ wypełnienie jest przezroczyste czarne. Prostokąt będzie D2D1::Vector4F(size + (padding * 2), 0, size + padding, size + padding);
.
Właściwości efektu
Nazwa wyświetlana i wyliczenie indeksu | Opis |
---|---|
InputRect D2D1_ATLAS_PROP_INPUT_RECT |
Część obrazu przekazana do następnego efektu. Typ to D2D1_VECTOR_4F. Wartość domyślna to (-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX). |
InputPaddingRect D2D1_ATLAS_PROP_INPUT_PADDING_RECT |
Maksymalny rozmiar próbkowany dla prostokąta danych wyjściowych. Typ to D2D1_VECTOR_4F. Wartość domyślna to (-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX). |
Wymagania
Wymaganie | Wartość |
---|---|
Minimalny obsługiwany klient | Windows 8 i aktualizacja platformy dla systemu Windows 7 [aplikacje klasyczne | Aplikacje ze Sklepu Windows] |
Minimalny obsługiwany serwer | Windows 8 i aktualizacja platformy dla systemu Windows 7 [aplikacje klasyczne | Aplikacje ze Sklepu Windows] |
Nagłówek | d2d1effects.h |
Biblioteka | d2d1.lib, dxguid.lib |