Поделиться через


Метод IDirect3DSurface9::GetContainer (d3d9helper.h)

Предоставляет доступ к родительской текстуре куба или объекту текстуры (MIP-карты), если эта поверхность является дочерним уровнем текстуры куба или MIP-карты. Этот метод также может предоставить доступ к родительской цепочке буферов, если поверхность является дочерним элементом обратного буфера.

Синтаксис

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

Параметры

[in] riid

Тип: REFIID

Идентификатор ссылки запрашиваемого контейнера.

[out] ppContainer

Тип: void**

Адрес указателя для заполнения указателем контейнера в случае успешного выполнения запроса. См. заметки.

Возвращаемое значение

Тип: HRESULT

Если метод выполнен успешно, возвращаемое значение будет D3D_OK. Если метод завершается сбоем, возвращаемое значение можно D3DERR_INVALIDCALL.

Комментарии

Если поверхность создается с помощью CreateRenderTarget или CreateOffscreenPlainSurface или CreateDepthStencilSurface, поверхность считается автономной. В этом случае GetContainer вернет устройство Direct3D, используемое для создания поверхности.

Если вызов выполнен успешно, количество ссылок контейнера увеличивается на единицы.

Ниже приведен пример получения родительской текстуры поверхности 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
Header d3d9helper.h (включая D3D9.h)
Библиотека D3D9.lib

См. также раздел

IDirect3DSurface9