Método ID3D12DeviceChild::GetDevice (d3d12.h)

Obtiene un puntero al dispositivo que creó esta interfaz.

Sintaxis

HRESULT GetDevice(
                  REFIID riid,
  [out, optional] void   **ppvDevice
);

Parámetros

riid

Tipo: REFIID

Identificador único global (GUID) de la interfaz del dispositivo. El REFIID, o GUID, de la interfaz al dispositivo se puede obtener mediante la macro __uuidof(). Por ejemplo, __uuidof(ID3D12Device) obtendrá el GUID de la interfaz en un dispositivo.

[out, optional] ppvDevice

Tipo: void**

Puntero a un bloque de memoria que recibe un puntero a la interfaz ID3D12Device del dispositivo.

Valor devuelto

Tipo: HRESULT

Este método devuelve uno de los códigos de retorno de Direct3D 12.

Comentarios

Las interfaces devueltas tienen su recuento de referencias incrementado en uno, por lo que asegúrese de llamar a ::release() en los punteros devueltos antes de que se liberen o, de lo contrario, tendrá una pérdida de memoria.

Ejemplos

El ejemplo D3D12Multithreading usa ID3D12DeviceChild::GetDevice de la siguiente manera:

// Returns required size of a buffer to be used for data upload
inline UINT64 GetRequiredIntermediateSize(
    _In_ ID3D12Resource* pDestinationResource,
    _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
    _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources)
{
    D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc();
    UINT64 RequiredSize = 0;
    
    ID3D12Device* pDevice;
    pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast<void**>(&pDevice));
    pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, 0, nullptr, nullptr, nullptr, &RequiredSize);
    pDevice->Release();
    
    return RequiredSize;
}

Consulte el código de ejemplo en la referencia D3D12.

Requisitos

   
Plataforma de destino Windows
Encabezado d3d12.h
Library D3D12.lib
Archivo DLL D3D12.dll

Consulte también

ID3D12DeviceChild