检索用于创建ID2D1RenderTarget的IDXGISurface

时间:2013-01-21 21:29:12

标签: directx direct2d

假设渲染目标是通过ID2D1Factory::CreateDxgiSurfaceRenderTarget创建的。

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

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

DirectX 10. Windows 7.

谢谢。

1 个答案:

答案 0 :(得分:2)

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

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