关注Game内嵌Web浏览器内核(HTML Rendering Engine)

来源:互联网 发布:淘宝上靠谱的swatch店 编辑:程序博客网 时间:2024/04/28 10:10

    网络游戏在游戏内部经常会有一些Web方面的显示需求,利用HTML来实现UI这个早已不是新鲜的玩意,云风就曾经提到大话西游1中采用内嵌IE来实现客户端的UI,尽管当时这种技术方案没有成功,但是对于利用HTML Rendering这样的解析渲染引擎来表现客户端GUI的技术探索还在不断的深入。
        HTML Rendering Engine一般由DOM构建,HTML/CSS解析,Layout Engine,屏幕渲染等几大模块构成。
        其中LayoutEngine负责获取页面的内容(HTML、XML、CSS、图片),并按照W3c的标准规则计算网页显示方式,并最终输出到屏幕。由于布局引擎负责了最重要的功能,因此可以被看作是浏览器的内核。
        目前比较有名的内核如下:
        Gecko,以此为内核的浏览器最出名的莫过于Firefox了。
        Webkit则由于google的Chrome而更加出名。Webkit是一个开源的HTML 渲染引擎,由苹果公司基于 KDE 的 KHTML 项目开发而成。
        当然由于Window的一统天下,IE的内核Trident也被很多应用所采用,GoogleTalk就是采用Trident来渲染对话界面的。
        从这个Wiki上还能看到主流浏览器内核的比较情况:http://en.wikipedia.org/wiki/Comparison_of_layout_engines
    
        对于OnlineGame的简单Web应用需求,其实可以找一些轻量级的内核。HTMLayout就是这样一款针对WebUI的桌面应用和方便嵌入而设计的。但是HTMLayout并非完整特性的Web浏览器,对于一些非标准的HTML标记的渲染还有些问题,不过对于一个轻量级的嵌入引擎来说已经足够完美了。
        官网如下:http://www.terrainformatica.com/htmlayout/
        其附带的SDK中包含了一个利用DX来渲染表现的例子,原理很简单就是利用RenderingEngine将HTML解析输出到位图上,并转由DX的材质输出。官网下载的例子采用DX8来写的,需要做一些简单改动就可以了。MSN的桌面宠物多猫就利用HTMLayout来实现GUI的。
    
        第二人生中内嵌的浏览器库llMozLib,就是通过内嵌Gecko来进行HTML的渲染显示的,可以在http://ubrowser.com/找到详细的介绍,也可以从第二人生的官网上找到源代码。这个功能就强大多了,值得下功夫研究一下。

原创粉丝点击