2011-04-14 2 views
0

나는 텍스트를 그리고 원시 삼각형을 그리는 프로그램을 가지고있다. 두 기능은 모두 독립적으로 작동합니다. 내가 행에서 그들을 호출 할 때, 내 삼각형이 그려하지 않고, 나는이 오류가 나타납니다 나는 몇 가지 조사를 한 적이DirectX가 이전 렌더링 상태를 강제로 복원하도록하려면 어떻게해야합니까?

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을 전달하는 것이 좋습니다,하지만 난 정확히 spirtes 직접 텍스트 또는 어디를 호출해야합니다 사이의 관계를 이해하지 않습니다. 왜 이런 일이 일어날 지 설명 할 수 있습니까?

답변

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