0

テキストを描画し、プリミティブな三角形を描画するプログラムがあります。両方の機能は独立して機能します。ただし、それらを続けて呼び出すと、三角形が描画されず、次のエラーが発生します。

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を渡すことをお勧めしますが、スパーツとダイレクトテキストの関係、またはどこで呼び出すべきかを正確に理解していません。なぜこれが起こるのか誰かが説明できますか?

4

1 に答える 1

0

私はこれを理解しました。これを行う方法は、次のように呼び出すことです。

pSprite->begin(D3DX10_SPRITE_SAVE_STATE);
//your text drawtext method stuff here
pSprite->end();

スプライトオブジェクトを初期化する必要があることに注意してください。これは、createtext関数と非常によく似たD3DX10CreateSprite関数を使用して実行できます。

http://msdn.microsoft.com/en-us/library/bb172670(v=VS.85).aspx

于 2011-04-15T20:12:52.657 に答える