以下是该结构的定义:
typedef struct _D3D10_SHADER_DESC {
UINT Version;
LPCSTR Creator;
UINT Flags;
UINT ConstantBuffers;
UINT BoundResources;
UINT InputParameters;
UINT OutputParameters;
UINT InstructionCount;
UINT TempRegisterCount;
UINT TempArrayCount;
UINT DefCount;
UINT DclCount;
UINT TextureNormalInstructions;
UINT TextureLoadInstructions;
UINT TextureCompInstructions;
UINT TextureBiasInstructions;
UINT TextureGradientInstructions;
UINT FloatInstructionCount;
UINT IntInstructionCount;
UINT UintInstructionCount;
UINT StaticFlowControlCount;
UINT DynamicFlowControlCount;
UINT MacroInstructionCount;
UINT ArrayInstructionCount;
UINT CutInstructionCount;
UINT EmitInstructionCount;
D3D_PRIMITIVE_TOPOLOGY GSOutputTopology;
UINT GSMaxOutputVertexCount;
} D3D10_SHADER_DESC;
结构成员说明:
- Version: 着色器版本。
- Creator: 创建着色器的编译器标识字符串。
- Flags: 着色器的编译标志。
- ConstantBuffers: 常量缓冲区的数量。
- BoundResources: 着色器绑定的资源(如纹理和采样器)的数量。
- InputParameters: 输入参数的数量。
- OutputParameters: 输出参数的数量。
- InstructionCount: 着色器中的指令数量。
- TempRegisterCount: 临时寄存器的数量。
- TempArrayCount: 临时寄存器数组的数量。
- DefCount: 定义的数量。
- DclCount: 声明的数量。
- TextureNormalInstructions: 正常纹理采样指令的数量。
- TextureLoadInstructions: 负载纹理指令的数量。
- TextureCompInstructions: 比较纹理采样指令的数量。
- TextureBiasInstructions: 纹理采样偏移指令的数量。
- TextureGradientInstructions: 纹理梯度指令的数量。
- FloatInstructionCount: 浮点运算指令的数量。
- IntInstructionCount: 整数运算指令的数量。
- UintInstructionCount: 无符号整数运算指令的数量。
- StaticFlowControlCount: 静态流控制指令的数量。
- DynamicFlowControlCount: 动态流控制指令的数量。
- MacroInstructionCount: 宏指令的数量。
- ArrayInstructionCount: 数组指令的数量。
- CutInstructionCount: 剪切指令的数量。
- EmitInstructionCount: 发射指令的数量。
- GSOutputTopology: 几何着色器输出拓扑。
- GSMaxOutputVertexCount: 几何着色器输出的最大顶点数量。
通过使用 ID3D10ShaderReflection 接口,你可以获取到这个结构,从而获取编译后的着色器的各种详细信息。
转载请注明出处:http://www.zyzy.cn/article/detail/25621/Win32 API/D3d10shader.h/D3D10_SHADER_DESC