次の方法で共有


ID3DXEffect::SetRawValue

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

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

パラメータ

  • Handle
    設定する値へのハンドル、または文字列として渡される値の名前です。ハンドルで渡す方が効率的です。「ハンドル (Direct3D 9)」を参照してください。
  • pData
    設定するデータが含まれるバッファーへのポインターです。SetRawValue はメモリーが有効かどうかは確認しますが、データが有効かどうかは確認しません。
  • OffsetInBytes
    設定するエフェクト データの最初とエフェクト定数の最初の間のバイト数です。
  • Bytes
    設定されるバッファーのサイズ (バイト単位) です。

戻り値

成功した場合は、S_OK を返します。失敗した場合は、次の E_INVALIDCALL の戻り値のいずれかを返します。

解説 

SetRawValue を使用すると、エフェクト定数をすばやく設定できます。なぜなら検証や、行優先行列から列優先行列への変換などのデータ変換を行わずに、メモリーをコピーするからです。SetRawValue を使用して連続するエフェクト定数を設定します。たとえば、20 行列の配列を 20 回呼び出して ID3DXBaseEffect::SetMatrix に設定するところを、SetRawValue を一度だけ呼び出して設定できます。

値はすべて、matrix4x4 または float4 のいずれかになります。また、行列は列優先順になります。整数値または浮動小数点値は float4 になります。そのため、SetRawValue を使用する場合は、float4 または matrix4x4 データのみを使用することをお勧めします。

要件

ヘッダー: D3DX9Effect.h 宣言

ライブラリ: D3dx9.lib 内容