4个版本

0.63.1 2024年6月10日
0.63.0 2024年6月9日
0.62.2 2024年4月10日
0.62.1 2024年4月7日
0.62.0 2024年4月7日

#182 in 图形API

Download history • Rust 包仓库 8/week @ 2024-05-18 • Rust 包仓库 14/week @ 2024-05-25 • Rust 包仓库 19/week @ 2024-06-01 • Rust 包仓库 733/week @ 2024-06-08 • Rust 包仓库 228/week @ 2024-06-15 • Rust 包仓库 139/week @ 2024-06-22 • Rust 包仓库 103/week @ 2024-06-29 • Rust 包仓库 349/week @ 2024-07-06 • Rust 包仓库 168/week @ 2024-07-13 • Rust 包仓库 170/week @ 2024-07-20 • Rust 包仓库 106/week @ 2024-07-27 • Rust 包仓库 94/week @ 2024-08-03 • Rust 包仓库 214/week @ 2024-08-10 • Rust 包仓库 210/week @ 2024-08-17 • Rust 包仓库

699 每月下载量
2 个crate中使用 (via zng-view)

MPL-2.0 许可证

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