# mozangle **Repository Path**: mirrors_servo/mozangle ## Basic Information - **Project Name**: mozangle - **Description**: Mozilla’s fork of Google ANGLE, repackaged as a Rust crate - **Primary Language**: Unknown - **License**: BSD-3-Clause - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-25 - **Last Updated**: 2026-02-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README mozangle ======== Mozilla's fork of Google ANGLE, repackaged as a Rust crate. * [ANGLE] is an implementation of OpenGL ES. Its official build system is `gn`, from Chromium's [depot_tools]. * [mozilla/angle] on GitHub is a fork with some Gecko-specific patches. * [`gfx/angle`] in mozilla-central is generated from that. [`update-angle.py`] runs `gn desc` to extract information from the official build system, copies relevant source files, and creates `moz.build` files for Gecko's build system. * This repository imports a copy of the `gfx/angle` directory. The `generate_build_data.py` script turns data from `moz.build` files into a Rust source file. (This script supports just enough of the `moz.build` format for this specific purpose.) Finally, a Cargo build script drives the C++ compilation with the [cc] crate based on that data. [ANGLE]: https://chromium.googlesource.com/angle/angle [depot_tools]: https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html [mozilla/angle]: https://github.com/mozilla/angle [`gfx/angle`]: https://hg.mozilla.org/mozilla-central/file/tip/gfx/angle [`update-angle.py`]: https://hg.mozilla.org/mozilla-central/file/tip/gfx/angle/update-angle.py [cc]: https://crates.io/crates/cc Feature flags ------------- By default, this crate only compiles the shader translator. In Windows, the `egl` Cargo feature enables the EGL and OpenGL ES implementations. Although upstream ANGLE supports more platforms, this crate only configures the Direct3D 11 rendering backend. ```toml [dependencies] mozangle = { version = "0.5", features = ["egl"] } ``` Updating ANGLE -------------- To update: * Remove `gfx/angle` entirely * Copy a new version of it from mozilla-central * Apply any patches present in the `patches` directory * Run `python3 generate_build_data.py` * In the commit message, include the mozilla-central commit hash