【发布时间】:2016-04-10 13:22:41
【问题描述】:
我才开始使用 DirectX,所以我遇到了这个问题:
我正在尝试将 c++ 结构推入/发送/分配到/进入/带有 HLSL 变量,该变量与来自 C++ 的结构具有相同的数据类型。
在 C++ 中:
struct Light
{
Light() {
ZeroMemory(this, sizeof(Light));
}
D3DXVECTOR3 LightPos;
float ID;
};
Light L1;
/.../
ID3D10EffectVariable* L1Var = NULL;
/.../
L1Var = Effect->GetVariableByName("L1")->AsVector();
/.../
L1Var->SetRawValue(&L1, 0, sizeof(Light));
HLSL 代码:
struct Light {
float3 LightPos;
float ID;
};
Light L1;
我正在尝试将结构从 C++ 发送到 HLSL 中的“L1”,但我不确定 HLSL 中 L1 类型的正确性。 此代码正在运行,但我在 L1 中的整个参数也得到了 0...我不知道如何解决这个问题,我用谷歌搜索了 5 个小时没有结果...请帮助。
感谢您的帮助。
【问题讨论】:
标签: c++ struct hlsl assign directx-10