#angle #opengl #mozilla #es #fork #build #google

mozangle

Mozilla 对 Google ANGLE 的分支,重新打包成 Rust 包

26 个版本

使用旧的 Rust 2015

0.5.1 2024 年 2 月 9 日
0.5.0 2023 年 12 月 7 日
0.4.0 2023 年 10 月 11 日
0.3.5 2023 年 7 月 1 日
0.1.6 2018 年 3 月 15 日

54图形 API

Download history 1422/week @ 2024-04-28 1006/week @ 2024-05-05 947/week @ 2024-05-12 1636/week @ 2024-05-19 1255/week @ 2024-05-26 877/week @ 2024-06-02 1218/week @ 2024-06-09 1839/week @ 2024-06-16 1487/week @ 2024-06-23 1690/week @ 2024-06-30 1848/week @ 2024-07-07 1372/week @ 2024-07-14 1255/week @ 2024-07-21 1757/week @ 2024-07-28 1645/week @ 2024-08-04 3621/week @ 2024-08-11

8,447 每月下载
5 crates 中使用

BSD-3-Clause

14MB
310K SLoC

C++ 302K SLoC // 0.1% comments Bitbake 3.5K SLoC // 0.0% comments C 3K SLoC // 0.1% comments Rust 1.5K SLoC // 0.0% comments Python 551 SLoC // 0.2% comments Shell 53 SLoC // 0.2% comments

mozangle

Mozilla 对 Google ANGLE 的分支,重新打包成 Rust 包。

  • ANGLE 是 OpenGL ES 的实现。它的官方构建系统是 Chromium 的 depot_tools 中的 gn

  • mozilla/angle 在 GitHub 上是一个带有一些 Gecko 特定补丁的分支。

  • gfx/angle 在 mozilla-central 中是由它生成的。 update-angle.py 运行 gn desc 从官方构建系统中提取信息,复制相关源文件,并为 Gecko 的构建系统创建 moz.build 文件。

  • 这个仓库导入 gfx/angle 目录的一个副本。脚本 generate_build_data.pymoz.build 文件中的数据转换为 Rust 源文件。(此脚本仅支持足够的 moz.build 格式以实现此特定目的。)最后,基于这些数据,Cargo 构建脚本使用 cc 包驱动 C++ 编译。

功能标志

默认情况下,此包仅编译着色器翻译器。

在Windows中,egl Cargo功能启用了EGL和OpenGL ES实现。尽管上流ANGLE支持更多平台,但此crate仅配置了Direct3D 11渲染后端。

[dependencies]
mozangle = { version = "0.5", features = ["egl"] }

更新ANGLE

要更新

  • 完全删除gfx/angle
  • 从mozilla-central复制其新版本
  • 应用patches目录中存在的任何补丁
  • 运行python3 generate_build_data.py
  • 在提交信息中包含mozilla-central的提交哈希值

依赖项