我有一个绘制文本并绘制原始三角形的程序。这两个功能独立工作。但是,当我连续调用它们时,我的三角形没有绘制,然后我收到此错误:
D3D10: ERROR: ID3D10Device::Draw: Input Assembler - Vertex Shader linkage error: Signatures between stages are incompatible. The reason is that the input stage requires Semantic/Index (POSITION,0) as input, but it is not provided by the output stage. [ EXECUTION ERROR #342: DEVICE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND ]
我做了一些研究,看起来它是由 ID3DXFont 在渲染时改变状态引起的。Sc4Freak 在这个线程上:
http://www.gamedev.net/topic/487280-dx10-render-question/
建议传递一个 D3DX10_SPRITE_SAVE_STATE,但我不完全理解精灵和直接文本之间的关系,或者我应该在哪里调用它。谁能解释为什么会这样?