2010-08-28 43 views
6

非常快速,我总是想知道,互联网浏览器使用渲染OS API函数来创建按钮,渲染法师等,还是他们自己渲染它?互联网浏览器使用什么进行渲染?

我首先想到它使用的是系统api,但是有一些效果,比如当屏幕变成灰色时,你只能在中间看到一个小窗口,你知道,这个效果在很多相册上使用,如何使用例如Win32调用来实现。

编辑:更确切地说,我知道屏幕上的最终绘图将始终使用系统API,但您可以根据需要发送预渲染图像。谢谢。

+1

*(reference)* [Wikipedia:Web browser engines](http://en.wikipedia.org/wiki/Web_browser_engine) – Gordon 2010-08-28 13:28:31

+0

我不明白这个问题:是的,屏幕上的最终绘图将始终使用系统API 。是的,在每个浏览器的实现中都有浏览器实现特定的代码,该代码使用系统API呈现浏览器想要呈现的任何内容。那么问题是什么? – ChrisW 2010-08-28 13:37:25

+0

好吧,也许更好的表述是:浏览器渲染引擎是否使用OS api来创建按钮,编写文本,创建对话框等,还是使用OS API自行渲染所有这些,以便实际显示渲染图像屏幕? Becouse,整个文本,图形的渲染等等,似乎很难完全自己编写..... – 2010-08-28 21:24:55

回答

5

Web浏览器使用自己的渲染引擎而不是OS API。使用OS API渲染按钮完全取决于特定渲染引擎的设计决策。然而,为了在各种操作系统上运行,这些引擎更喜欢他们自己的渲染,以在不同平台上提供相同的外观。

  • Gecko,为Firefox
  • Trident,为Internet Explorer
  • Presto,歌剧
  • KHTML,用于Konqueror的
  • WebKit,苹果的Safari和谷歌Chrome网络浏览器。

编号:http://en.wikipedia.org/wiki/Web_browser_engine

+0

谢谢,如果我可以更具体一些,例如,这些引擎中的任何一个使用某些GUI API?例如绘制文字?或者甚至完全通过绘制引擎来处理? – 2010-08-28 21:22:09

1

进行浏览器渲染引擎useOs API创建按钮,输入文字,创建框等,或者他们使用OS API只为实际呈现这一切靠自己在屏幕上显示渲染图像?

我实现了一个浏览器渲染引擎的东西(例如参见Table of Supported ElementsSupported Properties的HTML元素和它支持的CSS属性的列表)。

我使用系统API(.NET框架的API,其是薄的包装纸围绕底层O/S GDI API)来:

  • 量词(文本串)
  • 油漆词语
  • 绘制与纯色线条和边框
  • 填充矩形

这些是年代由w ^实现的那种API功能indows GDI。

还有一些系统(O/S或.NET)API用于绘制按钮和组合框(请参阅Rewrite standard controls like edit, combo, etc?)。

Becouse,文字,图形整个渲染等似乎相当难写完全自己

是,实施CSS和一切确实需要一段时间。您已经看到浏览器开发团队需要花多长时间:几个日历年,多个人年。