2011-05-02 5 views
1

DirectX를 사용하여 비 관리 코드로 이미지를 렌더링하고 WPF에서 D3DImage를 사용하여 표면을 호스팅합니다. 시스템이 절전 모드로 전환되면 frontBufferLost 이벤트가 발생합니다. 이벤트가 처리되고 모든 자원이 삭제되고 다시 작성됩니다.프런트 버퍼가 손실 된 후 HRESULT 0x8876086a

Direct3D9를 비 관리 코드로 사용하는 동안 모든 것이 올바르게 작동합니다. 이벤트가 발생하면 장치가 다시 작성되고 오류없이 렌더링이 수행됩니다.

그러나 엔진에서 DirectX10을 사용할 때 표면 대기열의 목적으로 Direct3D9 장치가 필요하므로 10과 9 장치를 모두 삭제하고 다시 생성하려고합니다. 이 단계에서 GetDeviceCaps 호출 중에 항상 사용할 수없는 장치라고 생각하는 0x8876086a를 얻습니다.

누군가 나를이 문제로 도와 줄 수 있습니까?

답변

1

일반적으로 이러한 유형의 문제를 해결하는 가장 좋은 방법은 DirectX 속성 제어판으로 이동하여 DirectX의 디버그 버전으로 전환하고 디버그 출력 수준을 최대한 높인 다음 응용 프로그램을 시작하는 것입니다. GetDeviceCaps() 호출이 실패 할 때 Visual Studio에서 출력 창을 보는 경우 문제가 표시됩니다.

행운을 빈다.

관련 문제