Összetett effektus
Az összetett effektus használatával 2 vagy több képet egyesíthet. Ez az effektus 13 különböző összetett móddal rendelkezik. T
Az összetett effektus 2 vagy több bemenetet fogad el. Ha 2 képet ad meg, a cél az első bemenet (0. index), a forrás pedig a második bemenet (1. index). Ha 2-nél több bemenetet ad meg, a rendszer a képeket az első bemenettel, a másodikkal és így tovább.
Ez az effektus a grafikus feldolgozási egység (GPU) keverési egységével implementálja az összes módot.
Az effektus CLSID azonosítója CLSID_D2D1Composite.
Példakép
Az alábbi képen két, azonos méretű, lekerekített téglalap látható, amelyek átfedésben vannak. A kék téglalap a forrás, a piros téglalap pedig a cél. A rendszerképek a Source Over móddal lettek összetettek.
Íme egy másik példa az alapértelmezett mód használatával.
1. kép előtt |
---|
![]() |
2. kép előtt |
![]() |
Után |
![]() |
ComPtr<ID2D1Effect> compositeEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Composite, &compositeEffect);
compositeEffect->SetInput(0, bitmap);
compositeEffect->SetInput(1, bitmapTwo);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(compositeEffect.Get());
m_d2dContext->EndDraw();
Effektus tulajdonságai
Név és index számbavételének megjelenítése | Típus és alapértelmezett érték | Leírás |
---|---|---|
Üzemmód D2D1_COMPOSITE_PROP_MODE |
D2D1_COMPOSITE_MODE D2D1_COMPOSITE_MODE_SOURCE_OVER |
Az effektushoz használt mód. |
Módtípusok
Az alábbi táblázat ennek a hatásnak a módjait mutatja be. A táblázatban felsorolt egyenletek a következő elemeket használják:
- O = Kimenet
- S = Forrás
- SA = Source Alpha
- D = Cél
- DA = Cél alfa
Felsorolás | Egyenlet | Kimeneti bitkép mérete |
---|---|---|
D2D1_COMPOSITE_MODE_SOURCE_OVER | O = S + (1 SA) * D | Forrás- és célbitképek egyesítője |
D2D1_COMPOSITE_MODE_DESTINATION_OVER | O = (1 DA) * S + D | Forrás- és célbitképek egyesítője |
D2D1_COMPOSITE_MODE_SOURCE_IN | O = DA * S | A forrás- és célbitképek metszete |
D2D1_COMPOSITE_MODE_DESTINATION_IN | O = SA * D | A forrás- és célbitképek metszete |
D2D1_COMPOSITE_MODE_SOURCE_OUT | O = (1 – DA) * S | A forrásbitkép régiója |
D2D1_COMPOSITE_MODE_DESTINATION_OUT | O = (1 – SA) * D | A célbitkép régiója |
D2D1_COMPOSITE_MODE_SOURCE_ATOP | O = DA * S + (1 – SA) * D | A célbitkép régiója |
D2D1_COMPOSITE_MODE_DESTINATION_ATOP | O = (1 – DA) * S + SA * D | A forrásbitkép régiója |
D2D1_COMPOSITE_MODE_XOR | O = (1 – DA) * S + (1 – SA) * D | Forrás- és célbitképek egyesítője |
D2D1_COMPOSITE_MODE_PLUS | O = S + D | Forrás- és célbitképek egyesítője |
D2D1_COMPOSITE_MODE_SOURCE_COPY | O = S | A forrásbitkép régiója |
D2D1_COMPOSITE_MODE_BOUNDED_SOURCE_COPY | O = S (csak ott, ahol a forrás létezik) | Forrás- és célbitképek egyesítője. A cél nem íródik felül, ha a forrás nem létezik. |
D2D1_COMPOSITE_MODE_MASK_INVERT | O = (1 D) * S + (1 SA) * D | Forrás- és célbitképek egyesítője. Az alfaértékek változatlanok. |
Az alábbi ábra az 1,0 vagy 0,5 átlátszatlanságú képeket tartalmazó összes módra mutat példát.
Mintakód
Erre az effektusra példaként töltse le a Direct2D összetett effektusmódok mintáját.
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 |