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


Метод IDirect3D9::CheckDeviceMultiSampleType (d3d9helper.h)

Определяет, доступен ли на этом устройстве метод множественной дискретизации.

Синтаксис

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

Параметры

[in] Adapter

Тип: UINT

Порядковый номер, обозначающий адаптер дисплея для запроса. D3DADAPTER_DEFAULT всегда является основным видеоадаптером. Этот метод возвращает значение FALSE , если это значение равно или превышает число видеоадаптеров в системе. См. заметки.

[in] DeviceType

Тип: D3DDEVTYPE

Член перечисленного типа D3DDEVTYPE , определяющий тип устройства.

[in] SurfaceFormat

Тип: D3DFORMAT

Член перечисленного типа D3DFORMAT , указывающий формат поверхности, которая должна быть многопримерной. Дополнительные сведения см. в подразделе "Примечания".

[in] Windowed

Тип: BOOL

логическое значение. Укажите ЗНАЧЕНИЕ TRUE , чтобы узнать о многоэкранной выборке, и значение FALSE , чтобы узнать о многоэкранном режиме.

[in] MultiSampleType

Тип: D3DMULTISAMPLE_TYPE

Член D3DMULTISAMPLE_TYPE перечислимый тип, определяющий метод множественной дискретизации для тестирования.

[out] pQualityLevels

Тип: DWORD*

pQualityLevels возвращает количество вариантов выборки для конкретного устройства, доступных для данного типа выборки. Например, если возвращаемое значение равно 3, то при создании ресурсов с заданным числом выборок можно использовать уровни качества 0, 1 и 2. Значения этих уровней качества определяются производителем устройства и не могут быть запрошены через D3D. Например, для конкретного устройства разные уровни качества при фиксированном количестве выборок могут ссылаться на различные пространственные макеты образцов расположений или различные методы разрешения. Это значение может иметь значение NULL , если нет необходимости возвращать уровни качества.

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

Тип: HRESULT

Если устройство может выполнить указанный метод множественной дискретизации, этот метод возвращает D3D_OK. D3DERR_INVALIDCALL возвращается, если недопустимые параметры Adapter или MultiSampleType. Этот метод возвращает D3DERR_NOTAVAILABLE, если запрашиваемый метод множественной дискретизации не поддерживается этим устройством. D3DERR_INVALIDDEVICE возвращается, если DeviceType не применяется к этому адаптеру.

Комментарии

Этот метод предназначен для использования как с поверхностями трафарета отрисовки и глубины, так как необходимо создать обе поверхности с несколькими дисками, если вы хотите использовать их вместе.

В следующем фрагменте кода показано, как можно использовать CheckDeviceMultiSampleType для тестирования устройств, поддерживающих определенный метод множественной дискретизации.


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;

Приведенный выше код вернет S_OK, если устройство поддерживает полноэкранный D3DMULTISAMPLE_3_SAMPLES метод множественной дискретизации в формате surface.

Дополнительные сведения о работе и настройке типов и уровней качества с несколькими выборками см. в примечаниях в D3DMULTISAMPLE_TYPE .

Требования

   
Целевая платформа Windows
Header d3d9helper.h (включая D3D9.h)
Библиотека D3D9.lib

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

IDirect3D9