次の方法で共有


ID3DXEffect::SetRawValue メソッド

メモリ コピーを使用して、シェーダー定数の連続した範囲を設定します。

構文

HRESULT SetRawValue(
  [in] D3DXHANDLE Handle,
  [in] void       *pData,
  [in] DWORD      OffsetInBytes,
  [in] DWORD      Bytes
);

パラメーター

ハンドル [入力]

型: D3DXHANDLE

設定する値、または文字列として渡される値の名前を処理します。 ハンドルを渡す方が効率的です。 「ハンドル (Direct3D 9)」を参照してください。

pData [in]

型: void*

設定するデータを含むバッファーへのポインター。 SetRawValue は有効なメモリをチェックしますが、有効なデータのチェックは行いません。

OffsetInBytes [in]

種類: DWORD

効果データの先頭から設定する効果定数の先頭までのバイト数。

バイト 数 [in]

種類: DWORD

設定するバッファーのサイズ (バイト単位)。

戻り値

種類: HRESULT

メソッドが成功した場合、戻り値はS_OK。 メソッドが失敗した場合、戻り値は次のいずれかになります:E_INVALIDCALL。

解説

SetRawValue は、検証やデータ変換を実行せずにメモリ コピーを実行するため、効果定数を設定する非常に高速な方法です (行メジャー 行列を列メジャー 行列に変換する場合など)。 SetRawValue を使用して、連続する一連の効果定数を設定します。 たとえば、 ID3DXBaseEffect::SetMatrix を 20 回呼び出すか、単一の SetRawValue を使用して、20 個の行列の配列を設定できます。

すべての値は matrix4x4s または float4 のいずれかであり、すべての行列は列メジャー順であることが予想されます。 Int 値または float 値は float4 にキャストされます。そのため、float4 または matrix4x4 データのみを含む SetRawValue を使用することを強くお勧めします。

要件

要件
ヘッダー
D3DX9Effect.h
ライブラリ
D3dx9.lib

関連項目

ID3DXEffect