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。

規格需求

需求
標頭
D3DX9Effect.h
程式庫
D3dx9.lib

另請參閱

ID3DXEffect