Megosztás a következőn keresztül:


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:

  1. Beszúrja az adott InputRect tulajdonság bemenetét.
  2. 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ű.

bemeneti kép.

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.

kimeneti 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

ID2D1Effect