Шаг 2 - IDirect3D8::CreateDevice

Создает устройство, чтобы отображать графику на мониторе.

HRESULT CreateDevice(
	UINT Adapter,
	D3DDEVTYPE DeviceType,
	HWND hFocusWindow,
	DWORD BehaviorFlags,
	D3DPRESENT_PARAMETERS* pPresentationParameters,
	IDirect3DDevice8** ppReturnedDeviceInterface
);

Параметры

Adapter - порядковый номер отображаемого адаптера. D3DADAPTER_DEFAULT использует всегда первичный адаптер.

DeviceType - член структуры D3DDEVTYPE. Обозначает, какой Вы будете использовать тип устройства. Если тип устройства не доступен, терпит неудачу.

hFocusWindow - окно, в котором создано устройство MicrosoftR Direct3DR. Для полноэкранного режима должен иметь самый верний уровень окна.

BehaviorFlags - может принимать один или несколько флажков, которые управляют глобавльным поведением Direct3D устройства. Флажки описаны ниже:

pPresentationParameters - указатель на структуру D3DPRESENT_PARAMETERS, в которой дано описание параметров устройства, когда оно будет создано. Запрос CreateDevice может изменить значения BackBufferCount входящая в структуру D3DPRESENT_PARAMETERS; количество задних буферов изменяется, чтобы можно было откорректировать число задних буферов.

ppReturnedDeviceInterface - адрес укзателя возвращаемого интерфейса IDirect3DDevice8.

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

Если функция завершена успешно, тогда возвращается значение D3D_OK.

Если нет, то один из следующих флажков:

Примечание

Эта функция возвращает полностью рабочий интерфейс установленного режима отображения и размещенный с сотвтетствующими задними буферами. Приложение нужно будет только создать и установить буфер глубины (если желаете) и начать отображать.

Эту функцию Вы не должны вызывать при сообщении WM_CREATE. Поэтому, не нужно передавать указатель окна Direct3D при обработке сообщения WM_CREATE. Приложение DirectX 8.1 может ждать сообщение, когда ему будет посланы в течении некоторого времени, прежде чем он возратит результат. Приложение должно быть предостережено, чтобы не вызывать Direct3D в это время. Кроме того, обратите внимание, что создавая запрос, Вы удаляете или повтороно устанавливаете устройство, которая может присвоить тот же адрес окна приложения.

Обратите внимание, D3DCREATE_HARDWARE_VERTEXPROCESSING, D3DCREATE_MIXED_VERTEXPROCESSING и D3DCREATE_SOFTWARE_VERTEXPROCESSING являются взаимно исключительными флажками, что один из этих флажков обработки вершин может определен при запросе CreateDevice.

Задние буфера создаются как часть устройства и блокируют, если в параметрах установлен флажок D3DPRESENTFLAG_lockable_BACKBUFFER. (Несколько задних буферов и буфер глубины никогда не блокируют).

Методы IDirect3DDevice8::Reset, Release и IDirect3DDevice8::TestCooperativeLevel должны быть теми же самыми устройствами, которую использовала CreateDevice, при создании устройства.

Требования

Заголовки: объявить D3d8.h.

Подключить библиотеку: Используйте D3d8.lib.

Примеры

См. "Шаг 2 - Создание Direct3D в оконном режиме"


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Хавов Евгений Валерьевич - 11.08.2002 (обновлено 26.08.2002)