[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-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWBRK-dev%2Fopengl-test" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-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-5-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]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded version-compare v0.2.1
[INFO] [stderr]   Downloaded crossfont v0.5.2
[INFO] [stderr]   Downloaded gl v0.14.0
[INFO] [stderr]   Downloaded glm v0.3.0
[INFO] [stderr]   Downloaded exr v1.74.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 7c86cac5815e89295f5a8a000c8f2718aefeeb6bb26eb0cd8c476bfcb1b7b468
[INFO] running `Command { std: "docker" "start" "-a" "7c86cac5815e89295f5a8a000c8f2718aefeeb6bb26eb0cd8c476bfcb1b7b468", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7c86cac5815e89295f5a8a000c8f2718aefeeb6bb26eb0cd8c476bfcb1b7b468", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7c86cac5815e89295f5a8a000c8f2718aefeeb6bb26eb0cd8c476bfcb1b7b468", kill_on_drop: false }`
[INFO] [stdout] 7c86cac5815e89295f5a8a000c8f2718aefeeb6bb26eb0cd8c476bfcb1b7b468
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] c943b20fbd11026c7d18e5ca6431434442f9167a3be1b47d78083fb3101b0017
[INFO] running `Command { std: "docker" "start" "-a" "c943b20fbd11026c7d18e5ca6431434442f9167a3be1b47d78083fb3101b0017", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling xml-rs v0.8.28
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]    Compiling cc v1.2.45
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]     Checking libloading v0.8.9
[INFO] [stderr]    Compiling wayland-sys v0.29.5
[INFO] [stderr]     Checking adler2 v2.0.1
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]     Checking bytemuck v1.24.0
[INFO] [stderr]    Compiling slotmap v1.0.7
[INFO] [stderr]    Compiling servo-fontconfig-sys v5.1.0
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]    Compiling crossfont v0.5.2
[INFO] [stderr]    Compiling smithay-client-toolkit v0.16.1
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]     Checking xcursor v0.3.10
[INFO] [stderr]    Compiling built v0.7.7
[INFO] [stderr]     Checking memchr v2.7.6
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]     Checking tiny-skia-path v0.7.0
[INFO] [stderr]     Checking safe_arch v0.5.2
[INFO] [stderr]     Checking quick-error v2.0.1
[INFO] [stderr]     Checking arrayvec v0.5.2
[INFO] [stderr]     Checking maybe-rayon v0.1.1
[INFO] [stderr]     Checking itertools v0.12.1
[INFO] [stderr]     Checking weezl v0.1.12
[INFO] [stderr]    Compiling noop_proc_macro v0.3.0
[INFO] [stderr]     Checking imgref v1.12.0
[INFO] [stderr]     Checking cty v0.2.2
[INFO] [stderr]    Compiling rav1e v0.7.1
[INFO] [stderr]     Checking bitstream-io v2.6.0
[INFO] [stderr]     Checking zune-core v0.4.12
[INFO] [stderr]     Checking raw-window-handle v0.4.3
[INFO] [stderr]     Checking avif-serialize v0.8.6
[INFO] [stderr]    Compiling cmake v0.1.54
[INFO] [stderr]     Checking zune-jpeg v0.4.21
[INFO] [stderr]     Checking pxfm v0.1.25
[INFO] [stderr]     Checking loop9 v0.1.5
[INFO] [stderr]     Checking instant v0.1.13
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking bit_field v0.10.3
[INFO] [stderr]     Checking rgb v0.8.52
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]     Checking nom v8.0.0
[INFO] [stderr]    Compiling syn v2.0.110
[INFO] [stderr]     Checking lebe v0.5.3
[INFO] [stderr]     Checking image-webp v0.2.4
[INFO] [stderr]     Checking gif v0.13.3
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]     Checking flate2 v1.1.5
[INFO] [stderr]     Checking libloading v0.7.4
[INFO] [stderr]     Checking glm v0.3.0
[INFO] [stderr]    Compiling freetype-sys v0.13.1
[INFO] [stderr]    Compiling expat-sys v2.1.6
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking png v0.18.0
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]     Checking nix v0.25.1
[INFO] [stderr]     Checking memmap2 v0.5.10
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking shared_library v0.1.9
[INFO] [stderr]     Checking osmesa-sys v0.1.2
[INFO] [stderr]     Checking freetype-rs v0.26.0
[INFO] [stderr]     Checking servo-fontconfig v0.5.1
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]    Compiling glutin_egl_sys v0.1.6
[INFO] [stderr]    Compiling glutin_glx_sys v0.1.8
[INFO] [stderr]    Compiling gl v0.14.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 wayland-commons v0.29.5
[INFO] [stderr]     Checking moxcms v0.7.9
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]    Compiling foreign-types-macros v0.2.3
[INFO] [stderr]    Compiling zerocopy-derive v0.8.27
[INFO] [stderr]    Compiling profiling-procmacros v1.0.17
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling fax_derive v0.2.0
[INFO] [stderr]     Checking profiling v1.0.17
[INFO] [stderr]     Checking foreign-types v0.5.0
[INFO] [stderr]     Checking equator v0.4.2
[INFO] [stderr]     Checking wayland-cursor v0.29.5
[INFO] [stderr]     Checking wayland-egl v0.29.5
[INFO] [stderr]     Checking fax v0.2.6
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking aligned-vec v0.6.4
[INFO] [stderr]     Checking calloop v0.10.6
[INFO] [stderr]     Checking v_frame v0.3.9
[INFO] [stderr]     Checking zerocopy v0.8.27
[INFO] [stderr]     Checking av1-grain v0.2.5
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking exr v1.74.0
[INFO] [stderr]     Checking tiff v0.10.3
[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 1m 03s
[INFO] running `Command { std: "docker" "inspect" "c943b20fbd11026c7d18e5ca6431434442f9167a3be1b47d78083fb3101b0017", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c943b20fbd11026c7d18e5ca6431434442f9167a3be1b47d78083fb3101b0017", kill_on_drop: false }`
[INFO] [stdout] c943b20fbd11026c7d18e5ca6431434442f9167a3be1b47d78083fb3101b0017
