小菜学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 条评论
登录 后参与评论

相关文章

来自专栏IT派

争论|摩尔定律已死?GPU会取代CPU的位置吗?

如果你觉得好的话,不妨分享到朋友圈。 京举办的NVIDIA GTC China会议中,无论是AI智能运算,还是服务器数据中心、智能城市,甚至还有去年很火热但是...

3514
来自专栏刺客博客

SS详解(一):原理

1.5K4
来自专栏玉树芝兰

如何用Python和R对《权力的游戏》故事情节做情绪分析?

想知道一部没看过的影视剧能否符合自己口味,却又怕被剧透?没关系,我们可以用情绪分析来了解故事情节是否足够跌宕起伏。本文一步步教你如何用Python和R轻松愉快完...

992
来自专栏币聪财经

币聪挖矿教程系列之:SimpleBank(SPLB)挖矿初学者指南

Simplebank是一款基于Dash的硬币,具有许多独特的功能和Masternodes。Simplebank希望成为一个数字加密货币银行类型平台,它将使商家和...

962
来自专栏性能与架构

Redis新增位置查询功能 - Redis Geo

移动互联网中基于位置信息的服务(Location Based Service,LBS)越来越重要。但是,目前位置信息的使用过程中存在诸多挑战如相邻计算不准确等。...

3547
来自专栏腾讯大数据的专栏

四两拨千斤:借助Spark GraphX将QQ千亿关系链计算提速20倍

腾讯QQ有着国内最大的关系链,而共同好友数,属于社交网络分析的基本指标之一,是其它复杂指标的基础。借助Spark GraphX,我们用寥寥100行核心代码,在高...

2998
来自专栏嵌入式程序猿

怎么样用万用表检测IGBT

IGBT是变频器中非常重要的功率器件,这段时间给大家推送了多篇变频器拆解,设计的文章,而功率器件的好坏是检测中非常重要的一环,那么如何用万用表检测呢,我们以英飞...

1673
来自专栏数据魔术师

干货|十分钟快速掌握CPLEX求解VRPTW数学模型(附JAVA代码及CPLEX安装流程)

号外!号外!常年用 TSP 举例的某干货分享板块终于 倒闭 改革了!小编终于被boss揪去关·禁·闭、学·习·进·阶、突·破·自·我了! 本着 独学学 ...

2.4K9
来自专栏QQ会员技术团队的专栏

小兴逛Google I/O 2017(day2实况)

作者介绍:陈志兴,Google I/O 2017大会的小时光茶社特派员 ,腾讯SNG增值产品部内容中心Android组leader,主要负责手Q个性化业务、手Q...

2048
来自专栏从零开始理解云计算

从零开始理解云计算 Vol.1:什么是云计算

这个系列其实是写给自己的云计算知识学习笔记——作为一个没有专业背景的小白,从零开始理解云计算的过程。王良明的《云计算通俗讲义》是一本入门的好书,本文根据书中的内...

1.3K2

扫码关注云+社区