将流源 (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:使用矩阵

呈现基元