[INFO] cloning repository https://github.com/WBRK-dev/opengl-test
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/WBRK-dev/opengl-test" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWBRK-dev%2Fopengl-test", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWBRK-dev%2Fopengl-test'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] eb7b2cd8dd8f791ad9b56008d99247c9a531b20e
[INFO] checking WBRK-dev/opengl-test against master#377656d3dd3f9c23a9c8713e163f4365a5261a84 for pr-146470-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWBRK-dev%2Fopengl-test" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/WBRK-dev/opengl-test
[INFO] finished tweaking git repo https://github.com/WBRK-dev/opengl-test
[INFO] tweaked toml for git repo https://github.com/WBRK-dev/opengl-test written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/WBRK-dev/opengl-test on toolchain 377656d3dd3f9c23a9c8713e163f4365a5261a84
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+377656d3dd3f9c23a9c8713e163f4365a5261a84" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/WBRK-dev/opengl-test already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+377656d3dd3f9c23a9c8713e163f4365a5261a84" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded glutin v0.29.1
[INFO] [stderr]   Downloaded glutin_glx_sys v0.1.8
[INFO] [stderr]   Downloaded cty v0.2.2
[INFO] [stderr]   Downloaded raw-window-handle v0.4.3
[INFO] [stderr]   Downloaded wayland-sys v0.29.5
[INFO] [stderr]   Downloaded glutin_egl_sys v0.1.6
[INFO] [stderr]   Downloaded glutin_wgl_sys v0.1.5
[INFO] [stderr]   Downloaded osmesa-sys v0.1.2
[INFO] [stderr]   Downloaded ndk-glue v0.7.0
[INFO] [stderr]   Downloaded glutin_gles2_sys v0.1.5
[INFO] [stderr]   Downloaded gl v0.14.0
[INFO] [stderr]   Downloaded wayland-egl v0.29.5
[INFO] [stderr]   Downloaded cmake v0.1.54
[INFO] [stderr]   Downloaded ndk-macro v0.3.0
[INFO] [stderr]   Downloaded crossfont v0.5.2
[INFO] [stderr]   Downloaded sctk-adwaita v0.4.3
[INFO] [stderr]   Downloaded wayland-commons v0.29.5
[INFO] [stderr]   Downloaded glm v0.3.0
[INFO] [stderr]   Downloaded calloop v0.10.6
[INFO] [stderr]   Downloaded safe_arch v0.5.2
[INFO] [stderr]   Downloaded freetype-rs v0.26.0
[INFO] [stderr]   Downloaded wayland-protocols v0.29.5
[INFO] [stderr]   Downloaded wayland-client v0.29.5
[INFO] [stderr]   Downloaded tiny-skia v0.7.0
[INFO] [stderr]   Downloaded smithay-client-toolkit v0.16.1
[INFO] [stderr]   Downloaded ndk v0.7.0
[INFO] [stderr]   Downloaded tiny-skia-path v0.7.0
[INFO] [stderr]   Downloaded dwrote v0.11.5
[INFO] [stderr]   Downloaded wayland-scanner v0.29.5
[INFO] [stderr]   Downloaded nix v0.25.1
[INFO] [stderr]   Downloaded ndk-sys v0.4.1+23.1.7779620
[INFO] [stderr]   Downloaded nix v0.24.3
[INFO] [stderr]   Downloaded servo-fontconfig v0.5.1
[INFO] [stderr]   Downloaded winit v0.27.5
[INFO] [stderr]   Downloaded wayland-cursor v0.29.5
[INFO] [stderr]   Downloaded expat-sys v2.1.6
[INFO] [stderr]   Downloaded windows_aarch64_msvc v0.36.1
[INFO] [stderr]   Downloaded windows_x86_64_msvc v0.36.1
[INFO] [stderr]   Downloaded windows_i686_msvc v0.36.1
[INFO] [stderr]   Downloaded windows_x86_64_gnu v0.36.1
[INFO] [stderr]   Downloaded windows_i686_gnu v0.36.1
[INFO] [stderr]   Downloaded servo-fontconfig-sys v5.1.0
[INFO] [stderr]   Downloaded freetype-sys v0.13.1
[INFO] [stderr]   Downloaded windows-sys v0.36.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+377656d3dd3f9c23a9c8713e163f4365a5261a84" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] cf2c7f9822e112e87c7bbc27865522e02c4b730350c0176b6e9d18179c6b6080
[INFO] running `Command { std: "docker" "start" "-a" "cf2c7f9822e112e87c7bbc27865522e02c4b730350c0176b6e9d18179c6b6080", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cf2c7f9822e112e87c7bbc27865522e02c4b730350c0176b6e9d18179c6b6080", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cf2c7f9822e112e87c7bbc27865522e02c4b730350c0176b6e9d18179c6b6080", kill_on_drop: false }`
[INFO] [stdout] cf2c7f9822e112e87c7bbc27865522e02c4b730350c0176b6e9d18179c6b6080
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+377656d3dd3f9c23a9c8713e163f4365a5261a84" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 76581e1c3e38b67ced5ce963bf0a51dbd1e86f9520523ea3fa8cce38567893c8
[INFO] running `Command { std: "docker" "start" "-a" "76581e1c3e38b67ced5ce963bf0a51dbd1e86f9520523ea3fa8cce38567893c8", kill_on_drop: false }`
[INFO] [stderr]    Compiling cmake v0.1.54
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]    Compiling wayland-sys v0.29.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling slotmap v1.0.7
[INFO] [stderr]    Compiling servo-fontconfig-sys v5.1.0
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]    Compiling foreign-types-macros v0.2.3
[INFO] [stderr]    Compiling zerocopy-derive v0.8.27
[INFO] [stderr]    Compiling crossfont v0.5.2
[INFO] [stderr]    Compiling smithay-client-toolkit v0.16.1
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]     Checking foreign-types-shared v0.3.1
[INFO] [stderr]     Checking tiny-skia-path v0.7.0
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking safe_arch v0.5.2
[INFO] [stderr]     Checking memmap2 v0.5.10
[INFO] [stderr]     Checking arrayvec v0.5.2
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling glutin_egl_sys v0.1.6
[INFO] [stderr]    Compiling glutin_glx_sys v0.1.8
[INFO] [stderr]     Checking cty v0.2.2
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]     Checking nix v0.25.1
[INFO] [stderr]     Checking raw-window-handle v0.4.3
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]    Compiling gl v0.14.0
[INFO] [stderr]     Checking shared_library v0.1.9
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking instant v0.1.13
[INFO] [stderr]     Checking foreign-types v0.5.0
[INFO] [stderr]     Checking raw-window-handle v0.5.2
[INFO] [stderr]     Checking gif v0.13.3
[INFO] [stderr]    Compiling freetype-sys v0.13.1
[INFO] [stderr]    Compiling expat-sys v2.1.6
[INFO] [stderr]     Checking osmesa-sys v0.1.2
[INFO] [stderr]     Checking libloading v0.7.4
[INFO] [stderr]     Checking glm v0.3.0
[INFO] [stderr]     Checking tiny-skia v0.7.0
[INFO] [stderr]    Compiling wayland-client v0.29.5
[INFO] [stderr]    Compiling wayland-protocols v0.29.5
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking freetype-rs v0.26.0
[INFO] [stderr]     Checking servo-fontconfig v0.5.1
[INFO] [stderr]     Checking rav1e v0.7.1
[INFO] [stderr]     Checking calloop v0.10.6
[INFO] [stderr]     Checking wayland-commons v0.29.5
[INFO] [stderr]     Checking wayland-cursor v0.29.5
[INFO] [stderr]     Checking wayland-egl v0.29.5
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking tiff v0.10.3
[INFO] [stderr]     Checking exr v1.74.0
[INFO] [stderr]     Checking ravif v0.11.20
[INFO] [stderr]     Checking image v0.25.8
[INFO] [stderr]     Checking sctk-adwaita v0.4.3
[INFO] [stderr]     Checking winit v0.27.5
[INFO] [stderr]     Checking glutin v0.29.1
[INFO] [stderr]     Checking opengl-test v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GenBuffers` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |         gl::GenBuffers(1, &mut id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/buffer.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     pub unsafe fn new(target: GLuint) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindBuffer` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |         gl::BindBuffer(self.target, self.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/buffer.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub unsafe fn bind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindBuffer` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |         gl::BindBuffer(self.target, 0);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/buffer.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub unsafe fn unbind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `shaders::buffer::Buffer::bind` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |         self.bind();
[INFO] [stdout]    |         ^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/buffer.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub unsafe fn set_data<D>(&self, data: &[D], usage: GLuint) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::slice::<impl [T]>::align_to` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:25:34
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let (_, data_bytes, _) = data.align_to::<u8>();
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BufferData` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | /         gl::BufferData(
[INFO] [stdout] 27 | |             self.target,
[INFO] [stdout] 28 | |             data_bytes.len() as GLsizeiptr,
[INFO] [stdout] 29 | |             data_bytes.as_ptr() as *const _,
[INFO] [stdout] 30 | |             usage,
[INFO] [stdout] 31 | |         );
[INFO] [stdout]    | |_________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::CreateShader` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 |             id: gl::CreateShader(shader_type),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub unsafe fn new(source_code: &str, shader_type: GLenum) -> Result<Self, ShaderError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::ShaderSource` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |         gl::ShaderSource(shader.id, 1, &source_code.as_ptr(), ptr::null());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::CompileShader` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |         gl::CompileShader(shader.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetShaderiv` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         gl::GetShaderiv(shader.id, gl::COMPILE_STATUS, &mut success);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetShaderiv` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |             gl::GetShaderiv(shader.id, gl::INFO_LOG_LENGTH, &mut error_log_size);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetShaderInfoLog` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 | /             gl::GetShaderInfoLog(
[INFO] [stdout] 35 | |                 shader.id,
[INFO] [stdout] 36 | |                 error_log_size,
[INFO] [stdout] 37 | |                 &mut error_log_size,
[INFO] [stdout] 38 | |                 error_log.as_mut_ptr() as *mut _,
[INFO] [stdout] 39 | |             );
[INFO] [stdout]    | |_____________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::vec::Vec::<T, A>::set_len` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |             error_log.set_len(error_log_size as usize);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `shaders::shader::Shader::new` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         Self::new(content.as_str(), shader_type)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub unsafe fn from_file(path: &str, shader_type: GLenum) -> Result<Self, ShaderError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::CreateProgram` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 |             id: gl::CreateProgram(),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader_program.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub unsafe fn new(shaders: &[Shader]) -> Result<Self, ShaderError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::AttachShader` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |             gl::AttachShader(program.id, shader.id);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::LinkProgram` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |         gl::LinkProgram(program.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetProgramiv` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         gl::GetProgramiv(program.id, gl::LINK_STATUS, &mut success);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetProgramiv` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |             gl::GetProgramiv(program.id, gl::INFO_LOG_LENGTH, &mut error_log_size);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetProgramInfoLog` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 | /             gl::GetProgramInfoLog(
[INFO] [stdout] 37 | |                 program.id,
[INFO] [stdout] 38 | |                 error_log_size,
[INFO] [stdout] 39 | |                 &mut error_log_size,
[INFO] [stdout] 40 | |                 error_log.as_mut_ptr() as *mut _,
[INFO] [stdout] 41 | |             );
[INFO] [stdout]    | |_____________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::vec::Vec::<T, A>::set_len` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 |             error_log.set_len(error_log_size as usize);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::UseProgram` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |         gl::UseProgram(self.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader_program.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub unsafe fn apply(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetAttribLocation` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 56 |         Ok(gl::GetAttribLocation(self.id, attrib.as_ptr()) as GLuint)
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader_program.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub unsafe fn get_attrib_location(&self, attrib: &str) -> Result<GLuint, NulError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetUniformLocation` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 61 |         Ok(gl::GetUniformLocation(self.id, attrib.as_ptr()))
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader_program.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub unsafe fn get_uniform_attrib_location(&self, attrib: &str) -> Result<GLint, NulError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GenTextures` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/texture.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |         gl::GenTextures(1, &mut id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/texture.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub unsafe fn new() -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindTexture` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/texture.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |         gl::BindTexture(gl::TEXTURE_2D, self.id)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/texture.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub unsafe fn bind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `shaders::texture::Texture::bind` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/texture.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |         self.bind();
[INFO] [stdout]    |         ^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/texture.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub unsafe fn load(&self, path: &Path) -> Result<(), ImageError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::TexImage2D` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/texture.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | /         gl::TexImage2D(
[INFO] [stdout] 26 | |             gl::TEXTURE_2D,
[INFO] [stdout] 27 | |             0,
[INFO] [stdout] 28 | |             gl::RGBA as i32,
[INFO] [stdout] ...  |
[INFO] [stdout] 34 | |             img.as_bytes().as_ptr() as *const _,
[INFO] [stdout] 35 | |         );
[INFO] [stdout]    | |_________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GenVertexArrays` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |         gl::GenVertexArrays(1, &mut id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/vertex_array.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  8 |     pub unsafe fn new() -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindVertexArray` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |         gl::BindVertexArray(self.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/vertex_array.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub unsafe fn bind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindVertexArray` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         gl::BindVertexArray(0);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/vertex_array.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub unsafe fn unbind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `shaders::vertex_array::VertexArray::bind` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         self.bind();
[INFO] [stdout]    |         ^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/vertex_array.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | /     pub unsafe fn set_attribute<V: Sized>(
[INFO] [stdout] 23 | |         &self,
[INFO] [stdout] 24 | |         attrib_pos: GLuint,
[INFO] [stdout] 25 | |         components: GLint,
[INFO] [stdout] 26 | |         offset: GLint,
[INFO] [stdout] 27 | |     ) {
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::VertexAttribPointer` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | /         gl::VertexAttribPointer(
[INFO] [stdout] 30 | |             attrib_pos,
[INFO] [stdout] 31 | |             components,
[INFO] [stdout] 32 | |             gl::FLOAT,
[INFO] [stdout] ...  |
[INFO] [stdout] 35 | |             offset as *const _,
[INFO] [stdout] 36 | |         );
[INFO] [stdout]    | |_________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::EnableVertexAttribArray` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |         gl::EnableVertexAttribArray(attrib_pos);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GenBuffers` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |         gl::GenBuffers(1, &mut id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/buffer.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     pub unsafe fn new(target: GLuint) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindBuffer` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |         gl::BindBuffer(self.target, self.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/buffer.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub unsafe fn bind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindBuffer` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |         gl::BindBuffer(self.target, 0);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/buffer.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub unsafe fn unbind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `shaders::buffer::Buffer::bind` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |         self.bind();
[INFO] [stdout]    |         ^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/buffer.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub unsafe fn set_data<D>(&self, data: &[D], usage: GLuint) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::slice::<impl [T]>::align_to` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:25:34
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let (_, data_bytes, _) = data.align_to::<u8>();
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BufferData` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | /         gl::BufferData(
[INFO] [stdout] 27 | |             self.target,
[INFO] [stdout] 28 | |             data_bytes.len() as GLsizeiptr,
[INFO] [stdout] 29 | |             data_bytes.as_ptr() as *const _,
[INFO] [stdout] 30 | |             usage,
[INFO] [stdout] 31 | |         );
[INFO] [stdout]    | |_________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::CreateShader` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 |             id: gl::CreateShader(shader_type),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub unsafe fn new(source_code: &str, shader_type: GLenum) -> Result<Self, ShaderError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::ShaderSource` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |         gl::ShaderSource(shader.id, 1, &source_code.as_ptr(), ptr::null());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::CompileShader` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |         gl::CompileShader(shader.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetShaderiv` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         gl::GetShaderiv(shader.id, gl::COMPILE_STATUS, &mut success);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetShaderiv` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |             gl::GetShaderiv(shader.id, gl::INFO_LOG_LENGTH, &mut error_log_size);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetShaderInfoLog` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 | /             gl::GetShaderInfoLog(
[INFO] [stdout] 35 | |                 shader.id,
[INFO] [stdout] 36 | |                 error_log_size,
[INFO] [stdout] 37 | |                 &mut error_log_size,
[INFO] [stdout] 38 | |                 error_log.as_mut_ptr() as *mut _,
[INFO] [stdout] 39 | |             );
[INFO] [stdout]    | |_____________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::vec::Vec::<T, A>::set_len` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |             error_log.set_len(error_log_size as usize);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `shaders::shader::Shader::new` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         Self::new(content.as_str(), shader_type)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub unsafe fn from_file(path: &str, shader_type: GLenum) -> Result<Self, ShaderError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::CreateProgram` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 |             id: gl::CreateProgram(),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader_program.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub unsafe fn new(shaders: &[Shader]) -> Result<Self, ShaderError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::AttachShader` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |             gl::AttachShader(program.id, shader.id);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::LinkProgram` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |         gl::LinkProgram(program.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetProgramiv` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         gl::GetProgramiv(program.id, gl::LINK_STATUS, &mut success);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetProgramiv` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |             gl::GetProgramiv(program.id, gl::INFO_LOG_LENGTH, &mut error_log_size);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetProgramInfoLog` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 | /             gl::GetProgramInfoLog(
[INFO] [stdout] 37 | |                 program.id,
[INFO] [stdout] 38 | |                 error_log_size,
[INFO] [stdout] 39 | |                 &mut error_log_size,
[INFO] [stdout] 40 | |                 error_log.as_mut_ptr() as *mut _,
[INFO] [stdout] 41 | |             );
[INFO] [stdout]    | |_____________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::vec::Vec::<T, A>::set_len` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 |             error_log.set_len(error_log_size as usize);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::UseProgram` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |         gl::UseProgram(self.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader_program.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub unsafe fn apply(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetAttribLocation` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 56 |         Ok(gl::GetAttribLocation(self.id, attrib.as_ptr()) as GLuint)
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader_program.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub unsafe fn get_attrib_location(&self, attrib: &str) -> Result<GLuint, NulError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetUniformLocation` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 61 |         Ok(gl::GetUniformLocation(self.id, attrib.as_ptr()))
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader_program.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub unsafe fn get_uniform_attrib_location(&self, attrib: &str) -> Result<GLint, NulError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GenTextures` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/texture.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |         gl::GenTextures(1, &mut id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/texture.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub unsafe fn new() -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindTexture` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/texture.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |         gl::BindTexture(gl::TEXTURE_2D, self.id)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/texture.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub unsafe fn bind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `shaders::texture::Texture::bind` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/texture.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |         self.bind();
[INFO] [stdout]    |         ^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/texture.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub unsafe fn load(&self, path: &Path) -> Result<(), ImageError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::TexImage2D` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/texture.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | /         gl::TexImage2D(
[INFO] [stdout] 26 | |             gl::TEXTURE_2D,
[INFO] [stdout] 27 | |             0,
[INFO] [stdout] 28 | |             gl::RGBA as i32,
[INFO] [stdout] ...  |
[INFO] [stdout] 34 | |             img.as_bytes().as_ptr() as *const _,
[INFO] [stdout] 35 | |         );
[INFO] [stdout]    | |_________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GenVertexArrays` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |         gl::GenVertexArrays(1, &mut id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/vertex_array.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  8 |     pub unsafe fn new() -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindVertexArray` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |         gl::BindVertexArray(self.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/vertex_array.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub unsafe fn bind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindVertexArray` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         gl::BindVertexArray(0);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/vertex_array.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub unsafe fn unbind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `shaders::vertex_array::VertexArray::bind` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         self.bind();
[INFO] [stdout]    |         ^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/vertex_array.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | /     pub unsafe fn set_attribute<V: Sized>(
[INFO] [stdout] 23 | |         &self,
[INFO] [stdout] 24 | |         attrib_pos: GLuint,
[INFO] [stdout] 25 | |         components: GLint,
[INFO] [stdout] 26 | |         offset: GLint,
[INFO] [stdout] 27 | |     ) {
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::VertexAttribPointer` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | /         gl::VertexAttribPointer(
[INFO] [stdout] 30 | |             attrib_pos,
[INFO] [stdout] 31 | |             components,
[INFO] [stdout] 32 | |             gl::FLOAT,
[INFO] [stdout] ...  |
[INFO] [stdout] 35 | |             offset as *const _,
[INFO] [stdout] 36 | |         );
[INFO] [stdout]    | |_________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::EnableVertexAttribArray` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |         gl::EnableVertexAttribArray(attrib_pos);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 57.04s
[INFO] running `Command { std: "docker" "inspect" "76581e1c3e38b67ced5ce963bf0a51dbd1e86f9520523ea3fa8cce38567893c8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "76581e1c3e38b67ced5ce963bf0a51dbd1e86f9520523ea3fa8cce38567893c8", kill_on_drop: false }`
[INFO] [stdout] 76581e1c3e38b67ced5ce963bf0a51dbd1e86f9520523ea3fa8cce38567893c8
