小菜学Chromium开发系列:OpenGL学习

风雨送春归,飞雪迎春到。已是悬崖百丈冰,犹有花枝俏。俏也不争春,  
只把春来报。待到山花烂漫时,她在丛中笑。

这首《毛泽东诗词》·卜算子·咏梅可是应了我的心情了。最近换工作,受到频频打击,面试过程中发现满世界都是搞Chromium的,面试官看起来都快90后了,但是后生可畏,Chromium聊起来一套一套的,什么GPU加速、什么多进程多线程自由切换,把我问倒无数回。无数失败之后,搞得我连去老罗的锤子公司面试的信心都没了,失去了做一个有情怀的人的好机会。痛定思痛,下定决心学习Chromium,再不深入学习它,可能完全跟不上时代、会直接被KO出局的。

好了,题外话说完了,言归正传。Chromium的东西那么多,从那里入手呢?既然GPU加速被google吹得那么神,我们就从GPU依赖的OpenGL开始吧。什么是Chromium的GPU加速呢?有什么好处呢?

GPU加速就是利用显卡的超强3D计算能力做层与层的合成,甚至部分绘制。请看下面的Chromium合成架构图:

上图左边是渲染进程,里面调用Skia,再调用合成器;最右边是浏览器进程,里面有窗口;中间红色框的是GPU进程,里面是合成器的上下文,把合成的工作委托给GL/D3D模块完成,GL/D3D输出到窗口HWND

开发者可以将页面的渲染工作部分交给强大的GPU(电脑上就是显卡,嵌入式芯片上就是实现了OpenGL API的图形图像处理单元)来进行。这其实已经是现代浏览器的趋势,微软的 IE10 已经支持 GPU 硬件加速,而 Firefox 已经启用了这个功能的支持。

那么这个黄色的写着GL/D3D的东东是个啥?它就是大名鼎鼎的OpenGL以及微软的DirectX的3D标准,当年还存在着这两大标准的你死我活的较量呢,以SGI等公司为首的开放标准OpenGL的适用性越来越广,从PC到工作站、再到嵌入式无处不见其身影。而微软的DirectX的3D则只能在微软自己的产品上使用,看来,这个世界还是喜欢开放的标准,扯远了。

搞Chromium开发,不懂这个OpenGL说不过去,小菜今天就带着大家一起玩OpenGL。首先准备环境,由于对微软VS200N的动不动好几个G的大个头、以及微软封装的内心抵触,个人比较喜欢开源、个头不大的开发IDE,开源IDE当然有很多,名气很大的有Eclipse,名气小的叫啥我也忘记了。小菜喜欢一个叫CodeBlock的IDE,她符合我的品味--开源、小巧还跨多个操作系统,无论你在Windows还是Linux,都是一致的体验,想起来都有点小激动。下面是她的界面,是不是很好很强大?

以下是它的官网:http://www.codeblocks.org/

玩OpenGL,我们需要新建GLUT项目:

各种各样的OpenGL支持库,比如glew和他们的头文件,我把它放到这里了:http://d.download.csdn.net/down/2560229/ssagnn23

大家可以一股脑的把.dll文件放到Windows/system32目录下,而.lib和.a统统放到codeblock/mingw/lib目录下,头文件统统放到codeblock/mingw/include/GL目录下。

下一篇文章我开始玩一个最简单的多边形。

转载请注明http://blog.csdn.net/lichwei1983

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-04-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏互联网杂技

2017值得一瞥的JavaScript相关技术趋势

? 跨年前两天,Dan Abramov在Twitter上提了一个问题: ? JS社区毫不犹豫的抛出了它们对于新技术的预期与期待,本文内容也是总结自Twitt...

3184
来自专栏BestSDK

一文看懂 iOS 11所有新功能:文件管理器、多任务处理、全新文件 App等

全新文件 App 通过这个App,可以把各类文件汇集在一起,浏览、搜索和整理文件。用户最近使用过的各种文件都会在一个专属的位置,以方便查看。除了 iPad 上的...

2938
来自专栏知晓程序

真人照片太单调?这个小程序让你的头像脱颖而出

1063
来自专栏phodal

全栈工程师的百宝箱:黑魔法之文档篇

今天收集Session数据的时候收集到了这样的一条,就是“全栈工程师的工具箱”。星期一又想不到什么可以写的内容,就来这样的一篇好了。 以下的内容都是压箱底的,...

17910
来自专栏数据科学与人工智能

【Python环境】Python可视化工具综述

简介 在Python的世界里,可视化你的数据有多种选择。由于这种多样性,决定何时使用哪一个确实是种挑战。这篇文章包含由更受欢迎的包中的一部分制作的示例,并说明如...

25510
来自专栏牛客网

19届前端实习生面经

1140
来自专栏阿凯的Excel

复合饼图绘制(Excel绘制图表系列课程)

分享Excel的图表已经第三周了,曾经说给我好处的人,到现在还没有兑现。 嗯,我怎么会是这么庸俗的人,嗯嗯!!! 今天和大家分享一个相对于前两期都比较容易绘...

2655
来自专栏腾讯Bugly的专栏

关于 Android N 那些你不知道的事儿

今年3月,Google 破天荒提前半年发布了 Android N 开发者预览版。当然,作为一个不合格的谷粉并没有第一时间体验安装,因为至今仍然能够回忆起来去年今...

3236
来自专栏web前端教室

根据设计图对工作量进行“预判”

今天的标题中的预判,意思就是预先判断。根据设计图,对此项目可能发生的工作量,进行预先判断。一般开新项目之前的会议上,每个人都要报一个预估的工期,这个工期就是根据...

1896
来自专栏ytkah

给微信图文消息添加修饰方框更简洁大方

  我们在编辑微信公众号的时候,如果篇幅比较长,或者要点比较多,可以用方框分几个小版块,用户浏览更明了,排版美观许多,也不会给人一种长篇大论的感觉,一眼瞄过去就...

2634

扫描关注云+社区