0
votes

Here are two version of HLSL vertex shader input

struct VS_INPUTS_0 { float3 Pos : POSITION; float2 Tex0 : TEXCOORD0; }

struct VS_INPUTS_1 { float3 Pos : POSITION; float3 Tex0 : TEXCOORD0; }

The only difference is the float2 and float3 of Tex0. Is there a DX9 API to get the right type of Tex0 to indicate whether the type of Tex0 is float2 or float3?

1

1 Answers

1
votes

For DX9, not as far as I know, as DX9 automatically patches your shaders. That is, if your pixel shader expects float2 and your vertex shader provides float3, it will still work. With DirectX10/11, you can use shader reflection to query the compiled shader and figure out what it expects.

Question is: What do you mean with "right type"? That totally depends on your pixel shader, the vertex shader alone is not enough to decide.