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内部错误。。。。



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