Программирование графики с использованием Direct3D

         

Функция CreateDevice()


Функция CreateDevice() вызывается из функции OnCreate(). Ее задачей является создание устройства Direct3D:

BOOL RMWin::CreateDevice() { d3drm->CreateDeviceFromSurface(0, ddraw, backsurf, &device); device->SetQuality(D3DRMRENDER_GOURAUD); return TRUE; }

Для создания устройства используется функция CreateDeviceFromSurface(). Она получает четыре аргумента. Первый— это GUID (Глобальный Уникальный Идентификатор) идентифицирующий устройство. Использование нулевого значения позволяет Direct3D выбрать устройство автоматически. Вам потребуется указывать конкретный GUID только в том случае, если вы хотите изменить выбор устройства, делаемый Direct3D по умолчанию. Для получения конкретных GUID может использоваться функция GetGUID(), которая обсуждалась в главе 4.

Второй аргумент функции CreateDeviceFromSurface() — это указатель на интерфейс DirectDraw. Третий аргумент — поверхность, используемая для создания устройства. Мы используем поверхность backsurf, которая была создана в функции InitMainSurfaces(). Это означает, что Direct3D будет использовать поверхность backsurf для визуализации.

Последний аргумент функции CreateDeviceFromSurface() — это адрес указателя device. После создания устройства вызывается функция SetQuality() интерфейса Direct3DRMDevice чтобы разрешить использование метода визуализации Гуро (по умолчанию используется плоский метод визуализации).



Содержание раздела