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。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|
另请参阅