惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 司徒正美
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
月光博客
月光博客
量子位
大猫的无限游戏
大猫的无限游戏
Stack Overflow Blog
Stack Overflow Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Cloudflare Blog
P
Proofpoint News Feed
B
Blog RSS Feed
美团技术团队
腾讯CDC
C
Check Point Blog
Engineering at Meta
Engineering at Meta
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
Recent Announcements
Recent Announcements
J
Java Code Geeks
S
SegmentFault 最新的问题
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享

博客园 - 跌跌撞撞

CArchive的一个经验 设计Client 加载COM的方式 学习反汇编记录 299错误解决记录 23日记录 用ADO访问存储过程的参数问题 SDKMisc的一个小错误 年初一作诗 总是在最求效率。 新感 下来做什么呢 开发目录包括的内容 太可爱的小小播放器 lucene的设计 上海感觉 写一点感想 项目管理的成功秘密(翻译) 昨天看书的心得
走出GDI
跌跌撞撞 · 2007-11-15 · via 博客园 - 跌跌撞撞

  前几天给朋友设计项目,需要1280*1024的屏幕达到5屏/s的速度,用Gdi做了一次设计,本地速度20屏/s,异地Socket速度也有近20屏/s和250M/s的结果,超额达到了他的设计要求。
  本来设计完成了,上班闲了很想继续深究、继续优化设计,开始采用DShow做设计,速度很快,却不知道如何将DIB锁定下来,没有深想,只要实践了理论,验证出速度是多少就成了。一转身拿DDraw做了另一个Win32的程序,验证结果有些吃惊,采用了覆盖模式,速度达到了300屏/s,采用SetColorKey做面,速度和Gdi差不多。因为最终要求使用的是位插入操作,所以可以采取覆盖模式,也就是说比原先的设计快了15倍。
  从这里我就想,其实DDraw和DIB的差异不是很大,只是因为DIB考虑到每个面的相互关系,DDraw的最大优势只是联系分配操作空间。也许还有一些DDraw的优势,但也许不是主要的影响。
  那么从这里继续深想,D3D也就是从DDraw上扩展了3*3矩阵而已,增加了多重像素渲染模块(可能就是通常说的渲染引擎)。过去,我们学习过程是从OpenGL到D3D再到GDI,如今回过头来看,全错了,Gdi优化了就是DDraw,DDraw增强了就是D3D。如果不掌握GDI,搞D3D真是一场游戏一场梦。而精通了Gdi,D3D还不是任你使用。
  我们还可以再一次深入考虑,其实GDI+应该是D3D的二维翻版,它是具有2*2矩阵的DDraw,是DDraw向D3D过渡的一个具体实践。想想GDI的博大精深、GDI+的整齐划一,D3D才会变得如此的千篇一律。
  因之,今后写程序,需要融会贯通、综合运用,例如:可以使用D3D做软件的主界面,但该用GDI画些什么的地方,还是用GDI去画,画在BeginPaint里面、画在Surface里面、画在Texture里面,画出咱们想用的控件,画出咱们想要的算法。

  走出GDI,也许让我们看到了GDI更多的应用领域,也许会飘在应用层面上无法回来。走出GDI,因他就在我们身边,是自如运用高级图形工具的基石。