Rust port of https://github.com/JoeyDeVries/LearnOpenGL
You should be able to follow the tutorials at https://learnopengl.com/ with this - the code structure has been kept similar to the original C++ wherever possible.
This also means it's not necessarily the most idiomatic Rust code. For example, some standard naming convention lints are disabled and all OpenGL calls are "raw" and wrapped in
unsafeblocks.
Run individual tutorials like this:
cargo run 1_3_2 (for /src/_1_getting_started/_3_2_shaders_interpolation.rs).
For reduced compilation times, you may only compile the code for a certain chapter by adding --no-default-features --features chapter-1 for example.
Notes
cargo and copy the dependency section from Cargo.toml. Only glfw-rs might need some more setup, see here for details. You can also use glutin (a pure Rust alternative to GLFW), but the API is a bit different, so following the tutorials might not be as straight-forward.glCheckError! macro from chapter 7.Notes
tobj is used instead of assimp (simpler interface, pure Rust and later tutorials only load OBJ files anyway). For alternatives see here and here.image crate is quite slow in debug mode - loading the nanosuit textures takes so much time that it can be faster to use release mode (including compile time).Status: complete
Status: partially done (4/9).
Status: partially done (1/2).
Status: Debugging complete (the other two are not in the repo)
Originally each tutorial was a separate executable (using src/bin and cargo run --bin <name>. This didn't play very well with the RLS and clippy (-> rust-lang-nursery/rls#132). Now all are integrated into the main binary, which leads to long compile times. As a workaround there are now feature flags for each chapter.
206 followers · starred Jul 2017
1,681 followers · starred Jul 2020
352 followers · starred Apr 2024
18 followers · starred Aug 2017
Rust port of https://github.com/JoeyDeVries/LearnOpenGL
You should be able to follow the tutorials at https://learnopengl.com/ with this - the code structure has been kept similar to the original C++ wherever possible.
This also means it's not necessarily the most idiomatic Rust code. For example, some standard naming convention lints are disabled and all OpenGL calls are "raw" and wrapped in
unsafeblocks.
Run individual tutorials like this:
cargo run 1_3_2 (for /src/_1_getting_started/_3_2_shaders_interpolation.rs).
For reduced compilation times, you may only compile the code for a certain chapter by adding --no-default-features --features chapter-1 for example.
Notes
cargo and copy the dependency section from Cargo.toml. Only glfw-rs might need some more setup, see here for details. You can also use glutin (a pure Rust alternative to GLFW), but the API is a bit different, so following the tutorials might not be as straight-forward.glCheckError! macro from chapter 7.Notes
tobj is used instead of assimp (simpler interface, pure Rust and later tutorials only load OBJ files anyway). For alternatives see here and here.image crate is quite slow in debug mode - loading the nanosuit textures takes so much time that it can be faster to use release mode (including compile time).Status: complete
Status: partially done (4/9).
Status: partially done (1/2).
Status: Debugging complete (the other two are not in the repo)
Originally each tutorial was a separate executable (using src/bin and cargo run --bin <name>. This didn't play very well with the RLS and clippy (-> rust-lang-nursery/rls#132). Now all are integrated into the main binary, which leads to long compile times. As a workaround there are now feature flags for each chapter.
206 followers · starred Jul 2017
1,681 followers · starred Jul 2020
352 followers · starred Apr 2024
18 followers · starred Aug 2017