我需要用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作为输入。
我有两个问题:
m_d2dContext得到ID3D11DeviceID2D1Image得到DX11Texture发布于 2020-03-05 18:16:45
你不能,至少不是直接的。
您可以创建一个D2D工厂,然后在DXGI资源之上创建一个呈现目标,而这个目标又来自于特定的D3D11纹理,因此属于特定的D3D11设备。结合所有这些,您可以使用D2D绘制特定的D3D11纹理。
对于您的情况,MSDN文档的入口点是:Direct2D和Direct3D互操作性概述。对于D3D纹理到D2D图像场景,建议的路径是:
将Direct2D和Direct3D结合使用的主要方法有两种: ..。 通过使用CreateSharedBitmap从IDXGISurface创建ID2D1Bitmap,您可以将Direct3D场景写入位图并使用Direct2D呈现。
https://stackoverflow.com/questions/60550261
复制相似问题