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

相关文章

来自专栏玉树芝兰

密码怎么设才好?一条标准就够了

又看到网络安全事件的新闻了吧?心慌不慌?其实设置和保管好自己的密码,只需要记住这一条标准就可以了。

775
来自专栏数据和云

DB-Engines:关系型数据库的争霸赛

在 DB-Engines 的排名上,Oracle 和 MySQL 两个产品长期霸占了前两名的位置,而且 MySQL 也属于甲骨文公司的阵营,一个商用、一个开源,...

3094
来自专栏ShaoYL

APP上线被APPStore拒绝的各种原因

3417
来自专栏张叔叔讲互联网

当妈妈在淘宝购物的时候,都发生了什么?(下篇)

在上一篇文章中,讲到了你的妈妈成功从你手中夺得了电脑的控制权,然后打开了淘宝网并且在网站首页搜索框中搜索了“美丽的裙子”,之后用一种挑剔的眼光盯着电脑屏幕一个多...

1024
来自专栏Android 开发者

正式发布Android Things 1.0

1393
来自专栏云计算D1net

哪种云存储服务最适合你?

早在2007年的时候,Dropbox首席执行官Drew Houston实在受不了经常弄丢USB驱动器,个人和小公司云存储这个概念还是很前卫的想法。而如今,每个人...

3795
来自专栏北京马哥教育

2017 linux版本排行榜,最好用的linux在这里

Linux的阵营日益壮大,每一款发行版都拥有一大批用户,开发者自愿为相关项目投入精力。Linux发行版可谓是形形色色,它们旨在满足每一种能想得到的需求。 本文就...

3484
来自专栏编程一生

多服务器终端交互利器--polysh和atnodes到高逼格日志中心

1104
来自专栏知晓程序

什么?微信也可以听文章!看公众号再也不怕伤眼睛

春节假期刚刚结束,很多人(被迫)回到自己的工作岗位。双眼长时间盯着电脑屏幕,你是否也感觉到,眼睛越来越干涩,越来越酸?

774
来自专栏逸鹏说道

WP粉幸福时刻降临?微软上周突然十分积极

  Windows 10 Mobile 操作系统依然在内部有条不紊的开发中,微软没有透露任何有关该全新智能手机操作系统最终正式版的发布时间。不过,或许微软的粉丝...

2594

扫码关注云+社区