Инициализация библиотеки DirectX

Для создания минимального приложения на базе DirectX необходимо установить пакет разработчика SDK и настроить интегрированную среду. Потребуются по крайней мере подкаталоги INCLUDE с заголовочными файлами и LIB с библиотеками. После этого при помощи директив Project/Setting/Link нужно включить библиотеку d3d9.lib в список компоновщика. Директивы Tools/Options/Directories помогут указать пути к заголовочным файлам и к lib-файлам девятой версии библиотеки. Каталоги интегрированной среды могут содержать соответствующие файлы для более ранней версии, поэтому следует переместить новые пути в начало списка путей к заголовочным и библиотечным файлам.

В проекте DirectX_minim инициализация библиотеки выполняется функцией, код которой приведен в листинге 23.4.

Листинг 23.4

#include <d3dx9math.h> LPDIRECT3D9 D3D - NULL; LPDIRECT3DDEVICE9 Device - NULL;

D3DVIEWP0RT9 VP; //Размеры области рисования в активной странице.

HRESULT StartDirectX(HWND hWnd )
{

if(!D3D) // Единственная глобальная функция библиотеки. Доступ к остальным //осуществляется через интерфейсы

if(NULL-(D3D - Direct3DCreate9(D3D_SDK_VERSI0N))) return E_FAIL;
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory( &d3dpp. sizeof(d3dpp));

d3dpp.BackBufferWidth - 0; //Если задать нули.

d3dpp.BackBufferHeight - 0; //буфер создается по размеру окна.

d3dpp.Windowed - TRUE;
d3dpp.SwapEffect - D3DSWAPEFFECT_C0PY;

d3dpp.BackBufferFormat - D3DFMTJJNKN0WN;//Используем текущий видеорежим d3dpp.EnableAutoDepthStencil - TRUE; //Будет создан Z-буфер d3dpp.AutoDepthStencilFormat - D3DFMT_D16: //Разрядность Z-буфера. d3dpp. BackBufferCount - 1; d3dpp.hDevi ceWi ndow-hWnd;

if (Device) {Device->ReleaseO-.Device - NULL; } //Если уже был создан //интерфейс, то нужно уменьшить счетчик обращений к СОМ-объекту. иначе он //никогда не выгрузится из памяти.

Инициализация DirectX

//Пытаемся создать D3DDevice с аппаратным ускорением D3DDEVTYPE_HAL //если не получается - без ускорения D3DDEVTYPE_REF

if( FAILEDC D3D->CreateDevice( D3DADAPTER_DEFAULT. D3DDEVTYPE_HAL. hWnd.D3DCREATE_S0FTWARE_VERTEXPR0CESSING.&d3dpp.&Devi ce)))

⇐ Предыдущая| |Следующая ⇒