ID3DXEffect::SetRawValue 方法
使用記憶體複本設定連續的著色器常數範圍。
語法
HRESULT SetRawValue(
[in] D3DXHANDLE Handle,
[in] void *pData,
[in] DWORD OffsetInBytes,
[in] DWORD Bytes
);
參數
-
控制碼 [in]
-
類型: D3DXHANDLE
要設定的值控制碼,或傳入做為字串的值名稱。 傳入控制碼更有效率。 請參閱 處理 Direct3D 9 () 。
-
pData [in]
-
類型: void*
緩衝區的指標,其中包含要設定的資料。 SetRawValue 會檢查有效的記憶體,但不會檢查有效的資料。
-
OffsetInBytes [in]
-
類型: DWORD
要設定的效果資料開頭和效果常數開頭之間的位元組數目。
-
位元組 [in]
-
類型: DWORD
要設定的緩衝區大小,以位元組為單位。
傳回值
類型: HRESULT
如果方法成功,傳回值會S_OK。 如果方法失敗,傳回值可以是下列其中一個:E_INVALIDCALL。
備註
SetRawValue 是設定效果常數的非常快速方式,因為它會執行記憶體複本,而不需執行驗證或任何資料轉換 (,例如將資料列主要矩陣轉換成資料行主要矩陣) 。 使用 SetRawValue 來設定一系列的連續效果常數。 例如,您可以使用 20 個呼叫 ID3DXBaseEffect::SetMatrix 或使用單一 SetRawValue 來設定 20 個矩陣的陣列。
所有值必須是 matrix4x4s 或 float4s,而且所有矩陣必須是資料行主要順序。 Int 或 float 值會轉換成 float4;因此,強烈建議您只搭配 float4 或 matrix4x4 資料使用 SetRawValue。
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|
另請參閱