假设一个渲染目标是通过ID2D1Factory::CreateDxgiSurfaceRenderTarget
.
然后渲染目标被传递给我的函数。我只有目标而不是 IDXGISurface。
有没有办法IDXGISurface
从目标访问?QueryInterface 不检索它。
DirectX 10。Windows 7。
谢谢你。
不幸的是,这不可用。渲染目标和 DXGI 表面是不同的对象,因此QueryInterface
将不起作用。在内部,渲染目标持有一个指向底层 DXGI 表面的指针。
这在 Direct2D 1.1 (DirectX 11.1) 中更加明确和易于管理,您可以将 DXGI 表面包装在 Direct2D 位图 ( CreateBitmapFromDxgiSurface
) 中,然后将其设置为SetTarget
Direct2D 1.1 渲染目标 () 的目标 ( ID2D1DeviceContext
)。然后,您可以向目标询问位图 ( GetTarget
) 并询问位图以获取底层 DXGI 表面 ( ID2D1Bitmap1::GetSurface
)。