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


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

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

Поток определяется как однородный массив данных компонента, где каждый компонент состоит из одного или нескольких элементов, представляющих одну сущность, например положение, нормаль, цвет и т. д. Параметр 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. Использование матриц

Графические примитивы