macroquad 0.4.15

Simple and easy to use graphics library
Documentation

Build #3336586 2026-05-20 17:03:08

# rustc version rustc 1.97.0-nightly (e50aa6fba 2026-05-19)

# docs.rs version docsrs 0.0.0 (e50152ed411bb913753b1dfd203f22cb8711f097 2026-05-17 )

# build log [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "DOCS_RS=1" "-w" "/opt/rustwide/workdir" "--user" "1001:1001" "e128afbf2b51a060e8982ade4ed819bb78fe98b1b926ff85ad876b5ab9171af5" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "rustdoc" "--lib" "-Zrustdoc-map" "--all-features" "--config" "build.rustdocflags=[\"--cfg\", \"docsrs\", \"-Z\", \"unstable-options\", \"--emit=invocation-specific\", \"--resource-suffix\", \"-20260519-1.97.0-nightly-e50aa6fba\", \"--static-root-path\", \"/-/rustdoc.static/\", \"--cap-lints\", \"warn\", \"--extern-html-root-takes-precedence\"]" "--offline" "-Zunstable-options" "--config=doc.extern-map.registries.crates-io=\"https://docs.rs/{pkg_name}/{version}/x86_64-unknown-linux-gnu\"" "-Zrustdoc-scrape-examples" "-j6" "--target" "x86_64-unknown-linux-gnu", kill_on_drop: false }` [INFO] [stderr] warning: unexpected `cfg` condition name: `one_screenshot` [INFO] [stderr] --> src/lib.rs:218:11 [INFO] [stderr] | [INFO] [stderr] 218 | #[cfg(one_screenshot)] [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: expected names are: `docsrs`, `feature`, and `test` and 32 more [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(one_screenshot)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(one_screenshot)");` to the top of the `build.rs` [INFO] [stderr] = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration [INFO] [stderr] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `one_screenshot` [INFO] [stderr] --> src/lib.rs:366:19 [INFO] [stderr] | [INFO] [stderr] 366 | #[cfg(one_screenshot)] [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(one_screenshot)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(one_screenshot)");` to the top of the `build.rs` [INFO] [stderr] = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `one_screenshot` [INFO] [stderr] --> src/lib.rs:423:15 [INFO] [stderr] | [INFO] [stderr] 423 | #[cfg(one_screenshot)] [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(one_screenshot)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(one_screenshot)");` to the top of the `build.rs` [INFO] [stderr] = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static [INFO] [stderr] --> src/lib.rs:500:14 [INFO] [stderr] | [INFO] [stderr] 500 | unsafe { CONTEXT.as_mut().unwrap_or_else(|| panic!()) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stderr] = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html> [INFO] [stderr] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable [INFO] [stderr] | [INFO] [stderr] 485 - static mut CONTEXT: Option<Context> = None; [INFO] [stderr] 485 + static CONTEXT: Option<Context> = None; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: creating a shared reference to mutable static [INFO] [stderr] --> src/lib.rs:507:17 [INFO] [stderr] | [INFO] [stderr] 507 | assert!(CONTEXT.is_some()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stderr] = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html> [INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable [INFO] [stderr] | [INFO] [stderr] 485 - static mut CONTEXT: Option<Context> = None; [INFO] [stderr] 485 + static CONTEXT: Option<Context> = None; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static [INFO] [stderr] --> src/lib.rs:510:20 [INFO] [stderr] | [INFO] [stderr] 510 | unsafe { &mut *CONTEXT.as_mut().unwrap().quad_context } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stderr] = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html> [INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable [INFO] [stderr] | [INFO] [stderr] 485 - static mut CONTEXT: Option<Context> = None; [INFO] [stderr] 485 + static CONTEXT: Option<Context> = None; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static [INFO] [stderr] --> src/lib.rs:965:44 [INFO] [stderr] | [INFO] [stderr] 965 | if let Some(ctx) = CONTEXT.as_mut() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stderr] = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html> [INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable [INFO] [stderr] | [INFO] [stderr] 485 - static mut CONTEXT: Option<Context> = None; [INFO] [stderr] 485 + static CONTEXT: Option<Context> = None; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/ui.rs:730:9 [INFO] [stderr] | [INFO] [stderr] 730 | &mut self, [INFO] [stderr] | ^^^^^^^^^ the lifetime is elided here [INFO] [stderr] ... [INFO] [stderr] 737 | ) -> WindowContext { [INFO] [stderr] | ^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 737 | ) -> WindowContext<'_> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/ui.rs:827:31 [INFO] [stderr] | [INFO] [stderr] 827 | pub(crate) fn begin_modal(&mut self, id: Id, position: Vec2, size: Vec2) -> WindowContext { [INFO] [stderr] | ^^^^^^^^^ the lifetime is elided here ^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 827 | pub(crate) fn begin_modal(&mut self, id: Id, position: Vec2, size: Vec2) -> WindowContext<'_> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/ui.rs:884:45 [INFO] [stderr] | [INFO] [stderr] 884 | pub(crate) fn get_active_window_context(&mut self) -> WindowContext { [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 884 | pub(crate) fn get_active_window_context(&mut self) -> WindowContext<'_> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/ui.rs:1160:19 [INFO] [stderr] | [INFO] [stderr] 1160 | pub fn canvas(&mut self) -> DrawCanvas { [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 1160 | pub fn canvas(&mut self) -> DrawCanvas<'_> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: creating a shared reference to mutable static [INFO] [stderr] --> src/experimental/collections/storage.rs:32:12 [INFO] [stderr] | [INFO] [stderr] 32 | if STORAGE.is_none() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stderr] = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html> [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static [INFO] [stderr] --> src/experimental/collections/storage.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | / STORAGE [INFO] [stderr] 37 | | .as_mut() [INFO] [stderr] | |_____________________^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stderr] = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html> [INFO] [stderr] [INFO] [stderr] warning: creating a shared reference to mutable static [INFO] [stderr] --> src/experimental/collections/storage.rs:53:12 [INFO] [stderr] | [INFO] [stderr] 53 | if STORAGE.is_none() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stderr] = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html> [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static [INFO] [stderr] --> src/experimental/collections/storage.rs:57:9 [INFO] [stderr] | [INFO] [stderr] 57 | STORAGE.as_mut().unwrap().get(&TypeId::of::<T>()).as_ref() [INFO] [stderr] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stderr] = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html> [INFO] [stderr] [INFO] [stderr] warning: creating a shared reference to mutable static [INFO] [stderr] --> src/experimental/collections/storage.rs:69:12 [INFO] [stderr] | [INFO] [stderr] 69 | if STORAGE.is_none() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stderr] = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html> [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static [INFO] [stderr] --> src/experimental/collections/storage.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 73 | STORAGE.as_mut().unwrap().get(&TypeId::of::<T>()).as_ref() [INFO] [stderr] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stderr] = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html> [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/experimental/scene.rs:380:20 [INFO] [stderr] | [INFO] [stderr] 380 | pub fn get_any(&mut self, handle: HandleUntyped) -> Option<RefMutAny> { [INFO] [stderr] | ^^^^^^^^^ the lifetime is elided here ^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 380 | pub fn get_any(&mut self, handle: HandleUntyped) -> Option<RefMutAny<'_>> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static [INFO] [stderr] --> src/experimental/scene.rs:599:5 [INFO] [stderr] | [INFO] [stderr] 599 | SCENE.get_or_insert_with(|| Scene::new()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stderr] = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html> [INFO] [stderr] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable [INFO] [stderr] | [INFO] [stderr] 596 - static mut SCENE: Option<Scene> = None; [INFO] [stderr] 596 + static SCENE: Option<Scene> = None; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static [INFO] [stderr] --> src/telemetry.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 9 | / PROFILER.get_or_insert_with(|| Profiler { [INFO] [stderr] 10 | | frame: Frame::new(), [INFO] [stderr] 11 | | queries: HashMap::new(), [INFO] [stderr] 12 | | active_query: None, [INFO] [stderr] ... | [INFO] [stderr] 19 | | strings: vec![], [INFO] [stderr] 20 | | }) [INFO] [stderr] | |__________^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stderr] = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html> [INFO] [stderr] [INFO] [stderr] warning: creating a shared reference to mutable static [INFO] [stderr] --> src/lib.rs:172:21 [INFO] [stderr] | [INFO] [stderr] 172 | assert!(THREAD_ID.is_some()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stderr] = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html> [INFO] [stderr] [INFO] [stderr] warning: `macroquad` (lib) generated 21 warnings (run `cargo fix --lib -p macroquad` to apply 5 suggestions) [INFO] [stderr] Scraping macroquad v0.4.15 (/opt/rustwide/workdir) [INFO] [stderr] warning: failed to scan example "platformer" in package `macroquad` for example code usage [INFO] [stderr] Try running with `--verbose` to see the error message. [INFO] [stderr] If an example should not be scanned, then consider adding `doc-scrape-examples = false` to its `[[example]]` definition in Cargo.toml [INFO] [stderr] warning: `macroquad` (example "platformer") generated 1 warning [INFO] [stderr] warning: failed to scan example "particles_single_emitter" in package `macroquad` for example code usage [INFO] [stderr] Try running with `--verbose` to see the error message. [INFO] [stderr] If an example should not be scanned, then consider adding `doc-scrape-examples = false` to its `[[example]]` definition in Cargo.toml [INFO] [stderr] warning: `macroquad` (example "particles_single_emitter") generated 1 warning [INFO] [stderr] warning: failed to scan example "particles_example" in package `macroquad` for example code usage [INFO] [stderr] Try running with `--verbose` to see the error message. [INFO] [stderr] If an example should not be scanned, then consider adding `doc-scrape-examples = false` to its `[[example]]` definition in Cargo.toml [INFO] [stderr] warning: `macroquad` (example "particles_example") generated 1 warning [INFO] [stderr] Documenting macroquad v0.4.15 (/opt/rustwide/workdir) [INFO] [stderr] warning: unresolved link to `macroquad::ui::widgets::Window` [INFO] [stderr] --> src/ui.rs:87:87 [INFO] [stderr] | [INFO] [stderr] 87 | /// Is used to keep track of internal state of various widgets like [widgets::Window](macroquad::ui::widgets::Window) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `macroquad` in scope [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default [INFO] [stderr] [INFO] [stderr] warning: this URL is not a hyperlink [INFO] [stderr] --> src/experimental/scene/arena.rs:1:18 [INFO] [stderr] | [INFO] [stderr] 1 | //! Gleaned from https://github.com/ratel-rust/toolshed/blob/master/src/arena.rs [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: bare URLs are not automatically turned into clickable links [INFO] [stderr] = note: `#[warn(rustdoc::bare_urls)]` on by default [INFO] [stderr] help: use an automatic link instead [INFO] [stderr] | [INFO] [stderr] 1 | //! Gleaned from <https://github.com/ratel-rust/toolshed/blob/master/src/arena.rs> [INFO] [stderr] | + + [INFO] [stderr] [INFO] [stderr] warning: `macroquad` (lib doc) generated 5 warnings (3 duplicates) (run `cargo fix --lib -p macroquad` to apply 1 suggestion) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.07s [INFO] [stderr] Generated /opt/rustwide/target/x86_64-unknown-linux-gnu/doc/macroquad/index.html [INFO] running `Command { std: "docker" "inspect" "e128afbf2b51a060e8982ade4ed819bb78fe98b1b926ff85ad876b5ab9171af5", kill_on_drop: false }`