現在介紹一種不需要頂點緩衝來渲染的方法,就是使用IDirect3DDevice9::DrawPrimitiveUP函數。UP就是User Pointer的意思,也即是說要使用用戶定義的內存空間
HRESULT DrawPrimitiveUP(
[in] D3DPRIMITIVETYPE PrimitiveType,
[in] UINT PrimitiveCount,
[in] const void *pVertexStreamZeroData,
[in] UINT VertexStreamZeroStride
);
PrimitiveType:要繪畫的圖元的種類PrimitiveCount:要繪畫的圖元的數量
假設有n個頂點信息,繪畫的圖元類型是點列的話,那麼圖元的數量就是n;如果繪畫的圖元類型是線列的話,那麼圖元的數量就是n/2;如果是線帶的話就是n-1;三角形列就是n/3;三角形帶就是n-2;三角形扇出是n-2
pVertexStreamZeroData:存儲頂點信息的數組指針
VertexStreamZeroStride:頂點的大小