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


Настройка источника stream (Direct3D 9)

Метод IDirect3DDevice9::SetStreamSource привязывает буфер вершин к потоку данных устройства, создавая связь между данными вершин и одним из нескольких портов потока данных, которые передают примитивные функции обработки. Фактические ссылки на потоковые данные не возникают, пока не будет вызван метод рисования, например IDirect3DDevice9::D rawPrimitive.

Поток определяется как универсальный массив данных компонента, где каждый компонент состоит из одного или нескольких элементов, представляющих одну сущность, например положение, нормальное состояние, цвет и т. д. Параметр Stride указывает размер компонента в байтах.

В следующем коде показано задание источника потока и рисование его содержимого. Переменная g_pVB — это LPDIRECT3DVERTEXBUFFER9, содержащий данные вершины.

if( SUCCEEDED( g_pd3dDevice->BeginScene() ) )
{
    // Setup the world, view, and projection matrices
    SetupMatrices();

    // Render the vertex buffer contents
    g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX) );
    g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
    g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 1 );

    // End the scene
    g_pd3dDevice->EndScene();
}

Дополнительные сведения об этом коде см. в следующем руководстве: Учебник 3. Использование матриц

Отрисовка примитивов