CreateVertexBuffer

CreateVertexBuffer可以創建一個頂點緩衝區。

原型,參數,返回值,

原型

HRESULT IDirect3DDevice9::CreateVertexBuffer
(
UINT Length,
DWORD Usage,
DWORD FVF,
D3DPOOL Pool,
IDirectVertexBuffer9** ppVertexBuffer,
HANDLE pHandle
);

參數

Length
[in]指定頂點緩衝區的大小,以位元組為單位
Usage
[in]指定頂點緩衝區屬性,它可以設為0或下表所列值的任意組合(邏輯或)
D3DUSAGE_DONOTCLIP
禁用裁剪,表示頂點緩衝區中的頂點不進行裁剪,當設定該屬性時,渲染狀態D3DRS_CLIPPING必須設定為FALSE
D3DUSAGE_DYNMIC
頂點緩衝區使用動態記憶體(AGP memory)
D3DUSAGE_NPATCHES
使用頂點緩衝區繪製N-patches曲線
D3DUSAGE_POINTS
使用頂點緩衝區繪製點
D3DUSAGE_RTPATCHES
使用頂點緩衝區繪製曲線
D3DUSAGE_SOFTWAREPROCESSING
當設定該屬性時,表示使用軟體進行頂點計算,否則使用硬體進行頂點計算
D3DUSAGE_WRITEONLY
只寫屬性,不能進行讀操作,設定該屬性可以提高系統性能
FVF
[in]表示頂點的靈活頂點格式 如下表
D3DFVF_DIFFUSE
頂點數據中包含漫反射的顏色值
D3DFVF_NORMAL
頂點數據中包含法線向量,不能和D3DFVF_XYZRHW同時使用
D3DFVF_PSIZE
頂點信息指明繪製點的大小
D3DFVF_SPECULAR
頂點數據中包含鏡面反射顏色值
D3DFVF_XYZ
頂點數據中包含未經坐標變換的頂點坐標,不能和D3DFVF_XYZRHW同時使用
D3DFVF_XYZRHW
頂點數據中包含經過坐標變換的頂點坐標,不能和D3DFVF_NORMAL或D3DFVF_XYZ同時使用
D3DFVF_XYZB5
頂點數據中包含用於骨骼動畫的頂點和頂點對骨骼的權重信息
D3DFVF_XYZB1...
頂點數據中包含用於骨骼動畫的頂點和頂點對骨骼的權重信息
D3DFVF_XYZW
頂點數據中包含經過坐標變換和裁剪的頂點坐標,只可用於可程式頂點流水線
D3DFVF_TEX8
頂點數據中包含0~8個紋理坐標,用於紋理繪製
D3DFVF_TEX0...
頂點數據中包含0~8個紋理坐標,用於紋理繪製
Pool
[in]屬於枚舉類型D3DPOOL,用於指定頂點緩衝區記憶體類型,如下表
D3DPOOL_DEFAULT
頂點緩衝區儘可能存在於顯存中
D3DPOOL_MANAGED
由Direct3D系統自動調度頂點緩衝區記憶體類型(位於顯存或計算機系統記憶體中)
D3DPOOL_SYSTEMMEN
頂點緩衝區位於計算機系統中
D3DPOOL_SCRATCH
頂點緩衝區位於計算機臨時記憶體中,這種類型的頂點緩衝區不能直接用於渲染操作,只能進行記憶體加鎖、複製等操作
ppVertexBuffer
[out]是一個指向創建的頂點緩衝區地址的指針,用於返回頂點緩衝區的地址
pSharedHandle
[in]是一個保留參數,可設定為NULL

返回值

如果執行成功返回D3D_OK.
如果執行失敗返回值可能是:D3DERR_INVALIDCALL, D3DERR_OUTOFVIDEOMEMORY, E_OUTOFMEMORY.
Requirements
Header
D3D9.h
Library
D3D9.lib

相關詞條

熱門詞條

聯絡我們