I am using a constant buffer to transfer data to my pixel shader
The problem is that the buffer contains 0s in the shader during runtime for x, y, z, and w of the float4 member, regardless of what data is updated to the buffer
Structure definitions are as follows:
// (C++)
struct Buffer
{
XMMATRIX mvp_;
XMFLOAT4 rgba_;
int usemvp_;
};
// HLSL
cbuffer Buffer : register( b0 )
{
matrix mvp_;
float4 rgba_;
int usemvp_;
};
Any help is much appreciated
You need to pad your struct to make it 16 byte aligned.
Also you have to make sure that you are setting the constant buffer into the correct shader stage, ie VSSetConstantBuffers vs PSSetConstantBuffers.