IDirect3DSurface9::GetContainer 方法 (d3d9.h)

如果此图面是立方体纹理或 mipmap (的子级别,则提供对 mipmap) 对象的父多维数据集纹理或纹理的访问权限。 如果表面是后台缓冲区子级,此方法还可以提供对父交换链的访问。

语法

HRESULT GetContainer(
  [in]  REFIID riid,
  [out] void   **ppContainer
);

参数

[in] riid

类型: REFIID

所请求的容器的引用标识符。

[out] ppContainer

类型: void**

如果查询成功,则用容器指针填充的指针的地址。 请参阅“备注”。

返回值

类型: HRESULT

如果方法成功,则返回值D3D_OK。 如果 方法失败,则可以D3DERR_INVALIDCALL返回值。

备注

如果使用 CreateRenderTargetCreateOffscreenPlainSurfaceCreateDepthStencilSurface 创建图面,则表面被视为独立表面。 在这种情况下, GetContainer 将返回用于创建表面的 Direct3D 设备。

如果调用成功,容器的引用计数将增加 1。

下面是获取 mip 图面的父纹理的示例。


    
// Assumes pSurface is a valid IDirect3DSurface9 pointer
void *pContainer = NULL;
IDirect3DTexture9 *pTexture = NULL;
HRESULT hr = pSurface->GetContainer(IID_IDirect3DTexture9, &pContainer);
if (SUCCEEDED(hr) && pContainer)
{
    pTexture = (IDirect3DTexture9 *)pContainer;
}

要求

   
目标平台 Windows
标头 d3d9.h (包括 D3D9.h)
Library D3D9.lib

请参阅

IDirect3DSurface9