2009-02-05 8 views
4

DirectX 10 응용 프로그램에서 전체 화면 모드와 창 모드간에 전환하면 텍스처 및/또는 정점 버퍼를 다시 만드는 등의 오버 헤드가 발생합니까?DirectX 10 비디오 모드 전환 및 성능

즉, 스위치가 발생할 때 성능 저하가 발생하지 않고 창 모드와 전체 화면 모드간에 "많은"전환을 수행하도록 설계된 응용 프로그램을 빌드 할 수 있습니까?

답변

6

DirectX10에는 DXGI가 있습니다. 스왑 체인을 사용합니다. 스왑 체인의 버퍼는 약간의 오버 헤드 (물론)가있을 수 있도록 크기가 조정되어야하지만 아마 최적화되어있을 것입니다. 내가 걱정할 것은 뷰 모드를 전환하여 사용자에게 간질 발작을 일으키는 것입니다.

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

+0

내가 만들려고 한 것의 유용성과 디자인에 대해 걱정할 수있게 해주십시오. 나는 기술적 인 대답을 요구하고 있었다. – korona

+0

계속 내가 너를 막지 않을거야. 나는 당신에게 기술적 인 대답과 관심을 보냈습니다. – Chap

2

D3D10에서는 모드 스위치에 텍스처, 버퍼 또는 D3D 자원을 다시 할 필요가 없습니다. 한 가지 주목할만한 예외는 swapchain backbuffer 레퍼런스가 ResizeBuffers 호출 후에 업데이트되어야한다는 것입니다 (최적의 전체 화면 성능을 위해 수행되어야 함). 그러나 성능면에서 큰 차이는 아닙니다.

그래도 모드 변경이 저렴하다는 의미는 아닙니다. 모드 변경 작업 자체는 앱과 시스템의 나머지 부분 모두에서 매우 비쌉니다 (특히 Vista에서는 DWM을 다시 시작해야합니다). Win7은 많이 개선되었으므로, 당신이 그걸 가지고 노는 것이 좋으며, 당신의 연주 요구 사항을 충족시키는 지 알아볼 수는 있지만, 즉시 전환 할 것을 기대하지는 마십시오.