Direct2D死機崩潰現象


開發Windows程序的圖形庫,有很多選擇,Cairo,QT等等,但我比較喜歡用Native圖形庫:GDI,GDI+,DIRECT2D,

GDI感覺逐步退出舞臺,因爲界面美觀的和它沾不邊;GDI+是一個大坑,蝸牛般的龜速,如果不構想緩衝層,你根本無

法用GDI+來寫一個界面程序,否則你的程序繪製幀數很難高於30;而Direct2D看似是GDI和GDI+的終結者,但它也有

致命之處:Direct2D是不穩定的,隨機弄死你的程序


我曾寫過一個代碼量50000左右的中小型項目,我使用的 Direct2D作爲圖形底層接口,但測試的結果是我的軟

件在Windows8.1上偶爾死機,而在Windows10上頻繁死機,爲此,我追蹤了所有相關的函數調用並設置了很多調試

點,最後找到了問題的根源:Direct2D在加載磁盤圖片時,會出現一定概率的死機。最後我又單獨爲這個問題編寫了

一個獨立的測試小程序,這個小程序只用Direct2D不斷地加載圖片,這個小程序也會經常死機,我排除了傳入參數

是否錯誤的問題,也排除了線程是否有內存空間的問題,換句話說,我排除了一切由我個人可能產生的崩潰的問題,

但Direct2D的加載函數還是崩潰了。


最後,我不得轉用了GDI+來作爲圖形庫,各種緩衝層的建立下,程序的幀數還算可以,當然讓我高興的結果是

程序崩潰現象沒有了,不管如何加載或者刪除GDI+對象,它都能正常執行。

如果哪位道友和我一樣遇到Direct2D死機的問題,或者知道其中的原因,感謝來和我交流,本人對 Direct2D

並不能說是非常精通,但一個圖形庫本沒有精不精通的說法,手捧着一本手冊基本誰都可以寫個項目出來。對於我的

Direct2D項目死機現象,我只能認爲是Direct2D內部錯誤。。。。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章