DirectX 10 SetRawValue无法正常工作

时间:2015-01-19 17:50:35

标签: c++ directx

我有两个结构,一个在c ++文件中,另一个在效果文件中。两者都有三个成员,pos,速度和方向。速度是浮动的,位置和方向是矢量。当我使用SetRawValue将结构从c ++文件发送到效果文件并使用这些值时,它们是0。

当我删除其中一个成员时,一切正常,值不是0.

编辑: 这是代码:

C ++ struct:

struct Player {
     D3DXVECTOR3 Pos;
     D3DXVECTOR3 Direction;
     float Speed;
}


void Initialize() {
     Player player;
     player.Pos = D3DXVECTOR3(0.0f, 0.0f, 0.0f);
     player.Direction = D3DXVECTOR3(1.0f, 0.53543f, 0.1f);
     player.Speed = 5.0f;

     ID3D10EffectVariable *EffectPlayerVariable;
     EffectPlayerVariable = Shader->GetVariableByName("Player");

     EffectPlayerVariable->SetRawValue(&player, 0, sizeof(Player));
}    

效果文件

struct Player {
     float3 Pos;
     float3 Direction;
     float Speed;
}

Pos和direction获取它们的值,但速度不会。

0 个答案:

没有答案