4个版本
| 0.62.2 | 2021年12月25日 |
|---|---|
| 0.62.1 | 2021年7月12日 |
| 0.62.0 | 2021年7月11日 |
| 0.61.0 | 2020年5月11日 |
在图形API中排名770
每月下载量29次
在azul-desktop中使用
4.5MB
97K SLoC
基于GPU的网页渲染器。
它作为Servo的实验性渲染后端,但也可以在独立应用程序中使用。
外部依赖
WebRender目前依赖于FreeType
API结构
WebRender的主入口点是crate::Renderer。
通过调用Renderer::new(...),您将获得一个Renderer实例,以及一个RenderApiSender。您的Renderer负责将先前处理的帧渲染到屏幕上。
通过调用yourRenderApiSender.create_api(),您将获得一个RenderApi实例,它负责管理资源和文档。内部使用工作线程来解耦工作负载与应用程序线程,因此能够更好地利用多核系统。
帧
所谓的frame指的是屏幕上的当前几何形状。通过在RenderApi上调用set_display_list()来创建新的Frame。当几何形状被处理时,应用程序将通过一个RenderNotifier,一个回调函数来通知,这个函数是你传递给Renderer::new的。更多关于堆叠上下文的信息。
set_display_list()还需要提供BuiltDisplayList。这些是通过最终化一个DisplayListBuilder获得的。这些用于绘制你的几何形状。但它不仅仅包含简单的几何形状,还可以存储另一个StackingContext,因为它们是可嵌套的。
依赖关系
~4–7MB
~142K SLoC