Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 |