Метод 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 |