Directx 检索用于创建ID2D1RenderTarget的IDXGISurface

Directx 检索用于创建ID2D1RenderTarget的IDXGISurface,directx,direct2d,Directx,Direct2d,假设渲染目标是通过ID2D1Factory::CreateDxgiSurfaceRenderTarget创建的 然后将渲染目标传递给我的函数。我只有目标,没有IDXGISurface 是否有方法从目标访问IDXGISurface? QueryInterface无法检索它 DirectX 10。视窗7 谢谢。不幸的是,这是不可用的。渲染目标和DXGI曲面是不同的对象,因此QueryInterface将不起作用。在内部,渲染目标持有指向底层DXGI曲面的指针 这在Direct2D 1.1(Direc

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

然后将渲染目标传递给我的函数。我只有目标,没有IDXGISurface

是否有方法从目标访问
IDXGISurface
? QueryInterface无法检索它

DirectX 10。视窗7


谢谢。

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


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

不幸的是,情况似乎就是这样。谢谢。您是否知道从IDXGISurface检索ID2D1RenderTarget的相反方法?QueryInterface在这里也不起作用,那是不可能的。DXGI API不知道使用它的Direct2D对象。它们是不同的API,显然它们是不同的对象。QueryInterface用于检索指向同一对象上受支持接口的指针。Direct2D渲染目标和DXGI曲面是两个独立的对象。