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