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