Método IDirect3D9::CheckDeviceMultiSampleType (d3d9helper.h)

Determina se uma técnica de multisampling está disponível neste dispositivo.

Sintaxe

HRESULT CheckDeviceMultiSampleType(
  [in]  UINT                Adapter,
  [in]  D3DDEVTYPE          DeviceType,
  [in]  D3DFORMAT           SurfaceFormat,
  [in]  BOOL                Windowed,
  [in]  D3DMULTISAMPLE_TYPE MultiSampleType,
  [out] DWORD               *pQualityLevels
);

Parâmetros

[in] Adapter

Tipo: UINT

Número ordinal que indica o adaptador de exibição para consulta. D3DADAPTER_DEFAULT é sempre o adaptador de exibição principal. Esse método retorna FALSE quando esse valor é igual ou excede o número de adaptadores de exibição no sistema. Consulte Observações.

[in] DeviceType

Tipo: D3DDEVTYPE

Membro do tipo enumerado D3DDEVTYPE , identificando o tipo de dispositivo.

[in] SurfaceFormat

Tipo: D3DFORMAT

Membro do tipo enumerado D3DFORMAT que especifica o formato da superfície a ser multisampled. Para obter mais informações, consulte Comentários.

[in] Windowed

Tipo: BOOL

valor bool. Especifique TRUE para saber mais sobre o multisampling em janelas e especifique FALSE para perguntar sobre multisampling em tela inteira.

[in] MultiSampleType

Tipo: D3DMULTISAMPLE_TYPE

Membro do D3DMULTISAMPLE_TYPE tipo enumerado, identificando a técnica multisampling a ser testada.

[out] pQualityLevels

Tipo: DWORD*

pQualityLevels retorna o número de variações de amostragem específicas do dispositivo disponíveis com o tipo de exemplo fornecido. Por exemplo, se o valor retornado for 3, os níveis de qualidade 0, 1 e 2 poderão ser usados ao criar recursos com a contagem de exemplo fornecida. Os significados desses níveis de qualidade são definidos pelo fabricante do dispositivo e não podem ser consultados por meio de D3D. Por exemplo, para um determinado dispositivo, diferentes níveis de qualidade em uma contagem de exemplo fixa podem se referir a layouts espaciais diferentes dos locais de exemplo ou diferentes métodos de resolução. Isso poderá ser NULL se não for necessário retornar os níveis de qualidade.

Valor retornado

Tipo: HRESULT

Se o dispositivo puder executar o método multisampling especificado, esse método retornará D3D_OK. D3DERR_INVALIDCALL será retornado se os parâmetros Adapter ou MultiSampleType forem inválidos. Esse método retornará D3DERR_NOTAVAILABLE se a técnica de multisampling consultada não for compatível com esse dispositivo. D3DERR_INVALIDDEVICE será retornado se DeviceType não se aplicar a esse adaptador.

Comentários

Esse método destina-se a ser usado com superfícies de destino de renderização e de estêncil de profundidade, pois você deve criar ambas as superfícies com várias superfícies se quiser usá-las juntas.

O fragmento de código a seguir mostra como você pode usar CheckDeviceMultiSampleType para testar dispositivos que dão suporte a um método multisampling específico.


if( SUCCEEDED(pD3D->CheckDeviceMultiSampleType( pCaps->AdapterOrdinal, 
                                pCaps->DeviceType, BackBufferFormat, 
                                FALSE, D3DMULTISAMPLE_3_SAMPLES, NULL ) ) &&
         SUCCEEDED(pD3D->CheckDeviceMultiSampleType( pCaps->AdapterOrdinal, 
                                pCaps->DeviceType, DepthBufferFormat, 
                                FALSE, D3DMULTISAMPLE_3_SAMPLES, NULL ) ) )
    return S_OK;

O código anterior retornará S_OK se o dispositivo der suporte ao método multisampling de D3DMULTISAMPLE_3_SAMPLES tela inteira com o formato de superfície.

Consulte as observações em D3DMULTISAMPLE_TYPE para obter informações adicionais sobre como trabalhar com e definir tipos de várias amostras e níveis de qualidade.

Requisitos

   
Plataforma de Destino Windows
Cabeçalho d3d9helper.h (inclua D3D9.h)
Biblioteca D3D9.lib

Confira também

IDirect3D9