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