有关视频播放类软件和游戏软件是选择GDI开发好还是DirectX开发好

发现不少人用GDI开发一些图形程序,它位于Windows图形子系统中,是设备无关的图形引擎,所以很多人认为游戏开发也可以使用GDI,这种观点看起来没有错,实际上GDI也确实可以用来开发游戏,但是它必须依赖于HAL(硬件抽象层)中的视频端口驱动程序以及视频设备(显卡)驱动程序通信才能通知具体设备渲染出画面,效能上比较差,如果一个大型程序用GDI做运行起来就比较吃力(我的观点),所以微软还提供了DirectX包,它可以直接操作硬件(所以起名叫做Direct),效率比较高(它可以越过HAL和驱动程序,直接和设备驱动通信),所以现在的2D/3D图形引擎基本是使用DirectX作为底层来开发,所以基本上GDI可以作为桌面应用窗口的重绘和一些特殊效果的绘制,

另一方面要是开发视频播放软件和游戏,最好使用DirectX或者OpenGL.

 

另外这里有一个推论,因为DirectX是基于COM的组件,如果用C#之类的托管代码来调用的,Pinvoke也是需要损失效率的,因为不仅仅需要参数的封送,还需要很多的处理过程,那么直接操作DirectX就很好了,不要使用托管代码来写游戏之类的软件,虽然可以,但是效能较低,还是使用C/C++这样的非托管代码好一些.在VS IDE中唯一能兼顾非托管代码和托管代码的就是VC++了,不要使用C#干这些事情了哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值