4个版本
0.63.1 | 2024年6月10日 |
---|---|
0.63.0 |
|
0.62.2 | 2024年4月10日 |
0.62.1 | 2024年4月7日 |
0.62.0 | 2024年4月7日 |
#182 in 图形API
699 每月下载量
在 2 个crate中使用 (via zng-view)
4.5MB
87K SLoC
这个crate是 servo/webrender
的分支,发布用于 "zng"
。
您可以在自己的项目中免费使用它,代码相同,只是crate被重命名为以 "zng"
前缀。
lib.rs
:
基于GPU的Web渲染器。
它作为 Servo 的实验性渲染后端,但也可以在独立应用程序中使用。
外部依赖
WebRender目前依赖于 FreeType
API结构
WebRender的主要入口点是 crate::Renderer
。
通过调用 Renderer::new(...)
,你可以获得一个 Renderer
,以及一个 RenderApiSender
。你的 Renderer
负责将之前处理的帧渲染到屏幕上。
通过调用 yourRenderApiSender.create_api()
,你会得到一个 RenderApi
实例,该实例负责管理资源和文档。内部使用工作线程来解除应用程序线程的工作负担,因此能够更好地利用多核系统。
帧
所谓的 frame
,是指屏幕上的当前几何形状。通过在 RenderApi
上调用 set_display_list()
创建一个新的帧。当几何形状被处理时,应用程序将通过 RenderNotifier
通知,这是一个你传递给 Renderer::new
的回调。更多关于 堆叠上下文 的信息。
set_display_list()
还需要提供 BuiltDisplayList
。这些是通过最终化一个 DisplayListBuilder
获得的。这些用于绘制你的几何形状。但它不仅仅包含简单的几何形状,它还可以存储另一个 StackingContext
,因为它们是可嵌套的。
依赖项
~3.5–6.5MB
~132K SLoC