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返回值。
备注
如果使用 CreateRenderTarget 或 CreateOffscreenPlainSurface 或 CreateDepthStencilSurface 创建图面,则表面被视为独立表面。 在这种情况下, 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 |