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 设置一系列连续效果常量。 例如,可以使用对 ID3DXBaseEffect::SetMatrix 的 20 次调用或使用单个 SetRawValue 来设置包含 20 个矩阵的数组。

所有值应为 matrix4x4s 或 float4s,并且所有矩阵应按列主顺序排列。 Int 或 float 值强制转换为 float4;因此,强烈建议仅对 float4 或 matrix4x4 数据使用 SetRawValue。

要求

要求
标头
D3DX9Effect.h

D3dx9.lib

另请参阅

ID3DXEffect