Atlaseffect
U kunt dit effect gebruiken om een deel van een afbeelding uit te voeren, maar de regio buiten het gedeelte te behouden voor gebruik in volgende bewerkingen.
De CLSID voor dit effect is CLSID_D2D1Atlas.
Het atlaseffect is handig als u een grote afbeelding wilt laden die bestaat uit veel kleinere afbeeldingen, zoals verschillende frames van een sprite.
Ga als volgt te werk om de uitvoer te maken:
- Hiermee wordt de invoer voor de opgegeven eigenschap InputRect gewassen.
- Vertaalt de oorsprong van het resultaat in (0,0).
Notitie
De eigenschap InputPaddingRect mag alleen groter zijn als en alleen als de pixels tussen de twee rechthoeken transparant zwart zijn op de invoer. Dit kan ertoe leiden dat Direct2D de grafiek optimaal uitvoert.
Hier volgt een voorbeeld van het effect. Deze afbeelding is klein en eenvoudig voor illustratiedoeleinden.
De voorgaande afbeelding is de invoer voor het effect. De code hier maakt een atlaseffect, stelt de invoer in, stelt de invoerrechthoek in en tekent vervolgens de uitvoer.
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());
Met de voorgaande code wordt een rechthoek geselecteerd die zich rond de tweede driehoek bevindt. De opvulling eromheen wordt genegeerd. Hier volgt de resulterende afbeelding.
Notitie
Dit is een situatie waarin u ervoor kunt kiezen om een InputPaddingRect op te geven omdat de opvulling transparant zwart is. De rechthoek zou D2D1::Vector4F(size + (padding * 2), 0, size + padding, size + padding);
zijn.
Effecteigenschappen
Weergavenaam en indexenumeratie | Beschrijving |
---|---|
InputRect D2D1_ATLAS_PROP_INPUT_RECT |
Het gedeelte van de afbeelding dat is doorgegeven aan het volgende effect. Type is D2D1_VECTOR_4F. De standaardwaarde is (-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX). |
InputPaddingRect D2D1_ATLAS_PROP_INPUT_PADDING_RECT |
De maximale grootte die is genomen voor de uitvoerrechthoek. Type is D2D1_VECTOR_4F. De standaardwaarde is (-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX). |
Eisen
Eis | Waarde |
---|---|
Minimaal ondersteunde client | Windows 8 en Platform Update voor Windows 7 [desktop-apps | Windows Store-apps] |
Minimaal ondersteunde server | Windows 8 en Platform Update voor Windows 7 [desktop-apps | Windows Store-apps] |
Rubriek | d2d1effects.h |
Bibliotheek | d2d1.lib, dxguid.lib |