https://dl.dropboxusercontent.com/u/61164954/project/RenderingTest/index.html
这是C#结合 GDI+ , Native GDI , DirectX
三者rendering 2D画面速度的比较...
原本还要加上 opengl版本 ,不过目前 C#上比较完善高效率的opengl wrapper Opentk
显示到panel上点问题,我try不出来.... 不然就是得用它自己的显示元件,
不然就是用它自己的game window...所以就不加入测试了
(c#有几个大小款opengl wrapper,但完成度.使用方便性.效能状况都很不明...
比较可靠的为opentk,当然opentk不只是针对opengl...
目前opentk似乎还没办法像前三者自己显示到特定UI元件上)
每台电脑这三者高低差异都满大的...很奇怪的是 GDI+ 在某些电脑 800 *600
状态下会跟Native GDI差不多甚至更快....某些Native GDI是遥遥领先GDI+,
当然最快的就是DirectX.... 不过可能是我sample的写法不是很正确,
某些电脑跑DirectX sample会有memory leak问题.....
GDI跟GDI+都得使用bitmap特定元件
directx可以存取内存中的array
c#的bitmap元件set或是get pixel都很慢...除非以指标方式操作
最方便的应该还是直接用array来当成为bitmap画面资料最快...
这几个测试方式都是以已经有特定的bitmap资料或是画面array,
建立特定物建去生成画面,所以严格说起来这不单单是测试显示时间,
还包括处理显示之前的过程,但不确定这样的测试观念正不正确...
或是还要补充啥的....
ps.这些sample是网络上找,整理,改写出来的...给需要的人参考
PS.想抱怨一下...初入directx,发现仅止于显示一张静态画面都有一堆前置作业..
网络上c# invoke directx的教学资源也少....这sample sharpdx的部分,
花好久时间才摸出来.....sharpdx官方的sample层层一层包一层,雾里看花,
总算是拆解出来,最简化步骤...方便人家入门的教学sample搞成这样不是很方便阿...