뷰포트를 렌더링하기 위해 Direct3D를 사용하는 응용 프로그램이 있으며 실행시 링크되는 주 응용 프로그램과는 별도의 DLL 모듈로 만들어졌습니다. 주요 응용 프로그램은 C# 프로그램입니다.Direct3D 9 스레드 생성 및 릴리스?
Direct3D 장치 및 해당 리소스의 생성 및 초기화는 기본 DLL 끝에서 수행됩니다. 주 C# 프로그램은이 DLL에서 창만 요청합니다. 이제 메인 GUI 루프가 C# 실행 파일에 있기 때문에 뷰포트가 닫히거나 소멸 될 때마다 관련된 Direct3D 장치/리소스의 릴리스를 요청하는 DLL 함수를 호출해야합니다.
문제는 Direct3D 장치를 해제하려고 할 때 프로그램에 패닉이 발생한다는 것입니다. 그것은 다른 스레드 (DLL에 메시지를 보낸 이후로 추측 할 수있는 주요 C# 프로그램)가이를 릴리스하려는 장치를 만든 것보다 낫다고 말합니다.
이 문제를 해결할 수있는 방법이 있습니까? 이견있는 사람?
나는 감사 Direct3D를 9
도움말을 사용하고 있습니다.
D3D9에는 플래그가 존재하지 않습니다. – Puppy
@DeadMG : 다음과 같은 문서가 있습니다. http://msdn.microsoft.com/en-us/library/bb172527(VS.85).aspx (페이지 하단의 메모 헤더 - "D3D9.h"..) .) –
@DeadMG : 그러나 성능에 대한 부작용이 있지만 때때로 바람직하지 않습니다. –