Definindo a origem do fluxo (Direct3D 9)

O método IDirect3DDevice9::SetStreamSource associa um buffer de vértice a um fluxo de dados do dispositivo, criando uma associação entre os dados de vértice e uma das várias portas de fluxo de dados que alimentam as funções de processamento primitivas. As referências reais aos dados de fluxo não ocorrem até que um método de desenho, como IDirect3DDevice9::D rawPrimitive, seja chamado.

Um fluxo é definido como uma matriz uniforme de dados de componente, em que cada componente consiste em um ou mais elementos que representam uma única entidade, como posição, normal, cor e assim por diante. O parâmetro Stride especifica o tamanho do componente, em bytes.

O código a seguir demonstra como definir a origem do fluxo e desenhar seu conteúdo. A variável g_pVB é um LPDIRECT3DVERTEXBUFFER9 que contém dados de vértice.

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();
}

Para obter mais informações sobre esse código, consulte o tutorial a seguir: Tutorial 3: Usando matrizes

Renderizando primitivos