PFND3DDDI_SETSTREAMSOURCEFREQ回呼函式 (d3dumddi.h)
SetStreamSourceFreq 函式會設定系結至頂點緩衝區之數據流來源的頻率除數。
語法
PFND3DDDI_SETSTREAMSOURCEFREQ Pfnd3dddiSetstreamsourcefreq;
HRESULT Pfnd3dddiSetstreamsourcefreq(
HANDLE hDevice,
const D3DDDIARG_SETSTREAMSOURCEFREQ *unnamedParam2
)
{...}
參數
hDevice
顯示裝置的句柄(圖形內容)。
unnamedParam2
pData [in]
D3DDDIARG_SETSTREAMSOURCEFREQ 結構的指標,指定如何設定數據流來源的頻率除數。
傳回值
SetStreamSourceFreq 傳回S_OK或適當的錯誤結果,如果頂點數據流來源部分的頻率除數未成功設定。
言論
支援頂點著色器 3.0 版及更新版本的裝置的使用者模式顯示驅動程式必須實作頂點數據流頻率除法。 對於 2.0 版和更早版本的頂點著色器模型(包括固定函式),每個頂點都會呼叫一次頂點著色器。 針對每個呼叫,輸入頂點緩存器會使用來自頂點數據流的唯一頂點元素初始化。 不過,如果驅動程式使用頂點數據流頻率除法,則可以呼叫頂點著色器(3.0 和更新版本),以較不頻繁的速度初始化適用的輸入緩存器。
例如,將數據流的頻率除數設定為 2 之後,驅動程式必須從數據流擷取數據,並將此數據傳遞至適用的輸入頂點,每 2 個頂點登錄一次。 這個除數會影響數據流中的每個元素。
驅動程式會使用頻率除數,根據下列公式計算頂點位移到頂點緩衝區:
VertexOffset = ((VertexIndex / Divider) * StreamStride) + StreamOffset
針對所使用的每個頂點數據流,如果驅動程式在呼叫驅動程式的 DrawPrimitive 函式時收到開始頂點值,驅動程式也會將這個開始頂點值除以頻率除數,並在公式中決定結果。 這個 start-vertex 值是在 D3DDDIARG_DRAWPRIMITIVE 結構的 VStart 成員中提供。 下列公式包含 start-vertex 值:
VertexOffset = (StartVertex / Divider) +
((VertexIndex / Divider) * StreamStride) + StreamOffset
請注意,上述公式會使用整數除法。
驅動程式會忽略索引基本類型之數據流頻率除數的設定,如果驅動程式只支援早於 3.0 版的頂點著色器模型(包括固定函式)。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 可在 Windows Vista 和更新版本的 Windows作系統中使用。 |
目標平臺 | 桌面 |
標頭 | d3dumddi.h (包括 D3dumddi.h) |