我需要使用 Direct2d 实现一些色度键功能。
我有一些来自 MSDN 的代码示例:
ComPtr<ID2D1Effect> chromakeyEffect;
m_d2dContext->CreateEffect(CLSID_D2D1ChromaKey, &chromakeyEffect);
chromakeyEffect->SetInput(0, bitmap);
chromaKeyEffect->SetValue(D2D1_CHROMAKEY_PROP_COLOR, {0.0f, 1.0f, 0.0f, 0.0f});
chromakeyEffect->SetValue(D2D1_CHROMAKEY_PROP_TOLERANCE, 0.2f);
chromakeyEffect->SetValue(D2D1_CHROMAKEY_PROP_INVERT_ALPHA, false);
chromakeyEffect->SetValue(D2D1_CHROMAKEY_PROP_FEATHER, false);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(chromakeyEffect.Get());
m_d2dContext->EndDraw();
但是,我对 WinAPI 有点陌生。
我们的平台具有产量实例的功能ID3D11Device
,我收到DX11Texture
作为输入。
我有两个问题:
1. 我怎样才能m_d2dContext
得到ID3D11Device
?
2. 我怎样才能ID2D1Image
得到DX11Texture
?