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


Создание устройства (Direct3D 9)

Чтобы создать устройство Direct3D, сначала создайте объект Direct3D (см. раздел Direct3DCreate9). Все устройства отрисовки, созданные объектом Direct3D, используют одни и те же физические ресурсы. При создании нескольких устройств отрисовки из одного объекта Direct3D будет взиматься высокая производительность, так как они используют одно и то же оборудование.

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

LPDIRECT3DDEVICE9 d3dDevice = NULL;

D3DPRESENT_PARAMETERS d3dpp; 

ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed   = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_COPY;

Затем создайте устройство Direct3D. Следующий вызов IDirect3D9::CreateDevice указывает адаптер по умолчанию, устройство уровня абстракции оборудования (HAL) и программную обработку вершин.

if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
                                    D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                                    &d3dpp, &d3dDevice ) ) )
    return E_FAIL;

Обратите внимание, что вызов для создания, освобождения или сброса устройства должен выполняться только в том же потоке, что и процедура окна фокуса.

После создания устройства задайте его состояние.

Устройства Direct3D