<如果窗口的視圖區大小和SwapChain的大小不一,那么DirectX將通過Stretch Blit來自動處理圖像的伸縮變化。盡管這可能并不令人期待,因為這在視圖區變大的時候將導致圖像的模糊。> 你說的這個問題 要怎么才能解決?
有位博友這樣問過,因為最近少有上博客,于是沒有回答及時,請見諒,我這里只能說說我們現在的解決辦法。
當后臺緩沖區的分辨率和視圖區不統一的時候,會導致拉伸現象,使畫面變得模糊。
首先說個題外話:
正因為變得模糊,因此有人故意將后臺緩沖區做得比視區稍大一點,這樣來抗鋸齒,至于效果如何,沒有真正見過,有興趣的可以試試。
下面說說解決辦法。
我們的解決辦法也很簡單,就分三步
1,窗口改變的時候,告訴設備窗口大小改變。
2,按改變后的窗口重建緩沖區。
3。強制設備丟失,并重新加載需要的資源。
由于在做這個之前,設備丟失已經做好了,于是就偷了個懶,窗口改變的時候就傳入窗口大小,并reset
這樣設備就強制處于丟失狀態。
不知道有沒有說清楚,反正主要的就是要重建緩沖區,并處理設備丟失問題。。。