2

假设一个渲染目标是通过ID2D1Factory::CreateDxgiSurfaceRenderTarget.

然后渲染目标被传递给我的函数。我只有目标而不是 IDXGISurface。

有没有办法IDXGISurface从目标访问?QueryInterface 不检索它。

DirectX 10。Windows 7。

谢谢你。

4

1 回答 1

2

不幸的是,这不可用。渲染目标和 DXGI 表面是不同的对象,因此QueryInterface将不起作用。在内部,渲染目标持有一个指向底层 DXGI 表面的指针。

这在 Direct2D 1.1 (DirectX 11.1) 中更加明确和易于管理,您可以将 DXGI 表面包装在 Direct2D 位图 ( CreateBitmapFromDxgiSurface) 中,然后将其设置为SetTargetDirect2D 1.1 渲染目标 () 的目标 ( ID2D1DeviceContext)。然后,您可以向目标询问位图 ( GetTarget) 并询问位图以获取底层 DXGI 表面 ( ID2D1Bitmap1::GetSurface)。

于 2013-01-23T14:04:21.360 回答