Rust-and-opengl-lessons - Collection of example code for learning OpenGL in Rust

Overview

rust-and-opengl-lessons

Project requires Rust 1.31

Collection of example code for learning OpenGL in Rust

The code directories with -x at the end contain experimental hacks where I explore future solutions.

Running

cargo run --release --bin <project>

Example:

cargo run --release --bin lesson-23-x

License

This library is distributed under the terms of either of:

at your option.

Contributing

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Comments
  • Correct code on lesson 6?

    Correct code on lesson 6?

    Hey,

    After many tries, I could not get lesson 6 to compile.

    I get this error:

    ➜  thrones git:(master) ✗ cargo run
       Compiling gl v0.1.0 (file:///Users/fllr/Development/thrones/lib/gl)
    error[E0432]: unresolved import `bindings::Gl`
      --> lib/gl/src/lib.rs:10:9
       |
    10 | pub use bindings::Gl as InnerGl;
       |         ^^^^^^^^^^^^^^^^^^^^^^^ no `Gl` in `bindings`
    
    warning: unused import: `std::rc::Rc`
     --> lib/gl/src/lib.rs:6:5
      |
    6 | use std::rc::Rc;
      |     ^^^^^^^^^^^
      |
      = note: #[warn(unused_imports)] on by default
    
    warning: unused import: `std::ops::Deref`
     --> lib/gl/src/lib.rs:7:5
      |
    7 | use std::ops::Deref;
      |     ^^^^^^^^^^^^^^^
    
    error: aborting due to previous error
    
    For more information about this error, try `rustc --explain E0432`.
    error: Could not compile `gl`.
    
    To learn more, run the command again with --verbose.
    

    When I have this written down:

    mod bindings {
        include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
    }
    
    use std::rc::Rc;
    use std::ops::Deref;
    
    pub use bindings::*;
    pub use bindings::Gl as InnerGl;
    

    Any ideas on what's wrong here?

    opened by felipellrocha 5
  • New lesson?

    New lesson?

    Hello, your work is really inspiring and I used it to start a project on my own. Are you going to continue it? I saw lesson-08-Next in the repo. If you are, do you need help? Could I be of some use? Anyway, thank you for what you have already done.

    opened by mnivoliez 4
  • Fix deprecation in failures crate

    Fix deprecation in failures crate

    Noticed this when compiling with the latest failures crate:

    warning: use of deprecated item 'failure::Error::causes': please use the 'iter_chain()' method instead
     --> lesson-13/src/debug.rs:8:25
      |
    8 |     for (i, cause) in e.causes().collect::<Vec<_>>().into_iter().rev().enumerate() {
      |                         ^^^^^^
      |
      = note: #[warn(deprecated)] on by default
    
    opened by 2m 2
  • [cargo build error]   failed to run custom build command for `openssl v0.9.24`

    [cargo build error] failed to run custom build command for `openssl v0.9.24`

    How to upgrade it to support openssl 1.1.1?

    Compiling openssl v0.9.24 error: failed to run custom build command for openssl v0.9.24

    Caused by: process didn't exit successfully: /home/eli/git/rust-and-opengl-lessons/target/debug/build/openssl-e87e3c00af340f2c/build-script-build (exit code: 101) --- stderr thread 'main' panicked at 'Unable to detect OpenSSL version', /home/eli/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-0.9.24/build.rs:16:14 note: run with RUST_BACKTRACE=1 environment variable to display a backtrace warning: build failed, waiting for other jobs to finish... error: build failed

    opened by 3togo 1
  • No available video device

    No available video device

    OS: Ubuntu 18.04

    just cloned repo, installed cmake and, according to instruction from readme installed: libsdl2-dev

    and finally command cargo run in lesson-01 gives error: thread 'main' panicked at 'calledResult::unwrap()on anErrvalue: "No available video device"', src/libcore/result.rs:1009:5

    Googling didn't help.

    May you suggest what is wrong?

    opened by sergiuchuckmisha 1
  • Cargo Command in Lesson 06

    Cargo Command in Lesson 06

    The command you have in the tutorial: cargo new --vcs none gl should probably be cargo new --vcs none --lib gl

    The directory tree you show implies that you mean to create a new lib, rather than a binary project.

    opened by CaptainKraft 1
  • There is a spelling mistake in your blog

    There is a spelling mistake in your blog

    opengl-in-rust-from-scratch-03-compiling-shaders

    Add trangle.vert to src:

    (traingle.vert) #version 330 core layout (location = 0) in vec3 Position; void main() { gl_Position = vec4(Position, 1.0); }

    code with bold may be a spelling mistake.

    opened by jcyongqin 1
  • Bump net2 from 0.2.33 to 0.2.37

    Bump net2 from 0.2.33 to 0.2.37

    Bumps net2 from 0.2.33 to 0.2.37.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump ordered-float from 1.0.2 to 1.1.1

    Bump ordered-float from 1.0.2 to 1.1.1

    Bumps ordered-float from 1.0.2 to 1.1.1.

    Release notes

    Sourced from ordered-float's releases.

    v1.1.1

    • Make assignment operators panic safe (#71). This fixes a bug that could cause undefined behavior in safe code.

    v1.1.0

    • Implement Sum and Product traits for NotNan (#65).
    • Implement Neg and Zero traits for OrderedFloat (#60, #66).
    • Implement Add, Sub, Mul, and Div traits for OrderedFloat.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump miow from 0.2.1 to 0.2.2

    Bump miow from 0.2.1 to 0.2.2

    Bumps miow from 0.2.1 to 0.2.2.

    Commits
    • 6fd7b9c Bump version to 0.2.2
    • 550efc2 Merge branch 'fix-sockaddr-convertion-v0.2.x' into 0.2.x
    • ca8db53 Stop using from_ne_bytes to be compatible with Rust < 1.32.0
    • 3e217e3 Bump net2 dep to 0.2.36 without invalid SocketAddr convertion
    • 27b77cc Adapt to winapi 0.2
    • 2783715 Safely convert SocketAddr into raw SOCKADDR
    • f6662ef Clarify wording of license information in README.
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump once_cell from 0.1.8 to 1.0.1

    Bump once_cell from 0.1.8 to 1.0.1

    Bumps once_cell from 0.1.8 to 1.0.1.

    Changelog

    Sourced from once_cell's changelog.

    1.0.1

    • fix unsoundness in Lazy<T> if the initializing function panics. Thanks @​xfix!
    • implement RefUnwindSafe for Lazy.
    • share more code between std and parking_lot implementations.
    • add F.A.Q section to the docs.

    1.0.0

    • remove parking_lot from the list of default features.
    • add std default feature. Without std, only unsync module is supported.
    • implement Eq for OnceCell.
    • fix wrong Sync bound on sync::Lazy.
    • run the whole test suite with miri.

    0.2.7

    • New implementation of sync::OnceCell if parking_lot feature is disabled. It now employs a hand-rolled variant of std::sync::Once.
    • sync::OnceCell::get_or_try_init works without parking_lot as well!
    • document the effects of parking_lot feature: same performance but smaller types.

    0.2.6

    • Updated Lazy's Deref impl to requires only FnOnce instead of Fn

    0.2.5

    • Lazy requires only FnOnce instead of Fn

    0.2.4

    • nicer fmt::Debug implementation

    0.2.3

    • update parking_lot to 0.9.0
    • fix stacked borrows violation in unsync::OnceCell::get
    • implement Clone for sync::OnceCell<T> where T: Clone

    0.2.2

    • add OnceCell::into_inner which consumes a cell and returns an option

    0.2.1

    • implement sync::OnceCell::get_or_try_init if parking_lot feature is enabled
    • switch internal unsafe implementation of sync::OnceCell from Once to Mutex
    • sync::OnceCell::get_or_init is twice as fast if cell is already initialized
    • implement std::panic::RefUnwindSafe and std::panic::UnwindSafe for OnceCell

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump generic-array from 0.11.1 to 0.11.2

    Bump generic-array from 0.11.1 to 0.11.2

    Bumps generic-array from 0.11.1 to 0.11.2.

    Changelog

    Sourced from generic-array's changelog.

    • 0.11.2

      • Backport the unsoundness fix for the arr! macro.
    • 0.11.0

      • Redesign GenericSequence with an emphasis on use in generic type parameters.
      • Add MappedGenericSequence and FunctionalSequence
        • Implements optimized map, zip and fold for GenericArray, &GenericArray and &mut GenericArray
      • Remove map_ref, zip_ref and map_slice
        • map_slice is now equivalent to GenericArray::from_iter(slice.iter().map(...))
    • 0.10.0

      • Add GenericSequence, Lengthen, Shorten, Split and Concat traits.
      • Redefine transmute to avert errors.
    • 0.9.0

      • Rewrite construction methods to be well-defined in panic situations, correctly dropping elements.
      • NoDrop crate replaced by ManuallyDrop as it became stable in Rust core.
      • Add optimized map/map_ref and zip/zip_ref methods to GenericArray
    • 0.8.0

      • Implement AsRef, AsMut, Borrow, BorrowMut, Hash for GenericArray
      • Update serde to 1.0
      • Update typenum
      • Make macro arr! non-cloning
      • Implement From<[T; N]> up to N=32
      • Fix #45
    • 0.7.0

      • Upgrade serde to 0.9
      • Make serde with no_std
      • Implement PartialOrd/Ord for GenericArray
    • 0.6.0

      • Fixed #30
      • Implement Default for GenericArray
      • Implement LowerHex and UpperHex for GenericArray<u8, N>
      • Use precision formatting field in hex representation
      • Add as_slice, as_mut_slice
      • Remove GenericArray::new in favor of Default trait
      • Add from_slice and from_mut_slice
      • no_std and core for crate.
    • 0.5.0

      • Update serde
      • remove no_std feature, fixed #19
    • 0.4.0

      • Re-export typenum
    • 0.3.0

      • Implement IntoIter for GenericArray
      • Add map method
      • Add optional serde (de)serialization support feature.
    • < 0.3.0

      • Initial implementation in late 2015
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump image from 0.20.1 to 0.23.1

    Bump image from 0.20.1 to 0.23.1

    Bumps image from 0.20.1 to 0.23.1.

    Changelog

    Sourced from image's changelog.

    Version 0.23.14

    • Unified gif blending in different decode methods, fixing out-of-bounds checks in a number of weirdly positioned frames.

    • Hardened TGA decoder against a number of malicious inputs.

    • Fix forward incompatible usage of the panic macro.

    • Fix load_rect for gif reaching unreachable!() code.

    • Added ExtendedColorType::A8.

    • Allow TGA to load alpha-only images.

    • Optimized load_rect to avoid unnecessary seeks.

    Version 0.23.13

    • Fix an inconsistency in supported formats of different methods for encoding an image.

    • Fix thumbnail choosing an empty image. It now always prefer non-empty image dimensions.

    • Fix integer overflow in calculating requires bytes for decoded image buffers for farbfeld, hdr, and pnm decoders. These will now error early.

    • Fix a panic decoding certain jpeg image without frames or meta data.

    • Optimized the jpeg encoder.

    • Optimized GenericImage::copy_from default impl in various cases.

    • Add avif decoders. You must enable it explicitly and it is not covered by our usual MSRV policy of Rust 1.34. Instead, only latest stable is supported.

    • Add ImageFormat::{can_read, can_write}

    • Add Frame::buffer_mut

    • Add speed and quality options on avif encoder.

    • Add speed parameter to gif encoder.

    • Expose control over sequence repeat to the gif encoder.

    • Add {contrast,brighten,huerotate}_in_place functions in imageproc.

    • Relax Default impl of ImageBuffer, removing the bound on the color type.

    • Derive Debug, Hash, PartialEq, Eq for DynamicImage

    Version 0.23.12

    • Fix a soundness issue affecting the impls of Pixel::from_slice_mut. This would previously reborrow the mutable input reference as a shared one but then proceed to construct the mutable result reference from it. While UB according to Rust's memory model, we're fairly certain that no miscompilation can happen with the LLVM codegen in practice. See 5cbe1e6767d11aff3f14c7ad69a06b04e8d583c7 for more details.

    • Fix imageops::blur panicking when sigma = 0.0. It now defaults to 1.0 as all negative values.

    • Fix re-exporting png::{CompressionType, FilterType} to maintain SemVer compatibility with the 0.23 releases.

    • Add ImageFormat::from_extension

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Owner
Nerijus Arlauskas
Nerijus Arlauskas
Bindings to TinyGL, a Small, Free and Fast Subset of OpenGL

TinyGL is a very lightweight partial OpenGL implementation. Its small size makes it ideal for static linking.

null 12 Oct 13, 2022
A low-level library for OpenGL context creation, written in pure Rust.

glutin - OpenGL, UTilities and INput A low-level library for OpenGL context creation, written in pure Rust. [dependencies] glutin = "0.28.0" Documenta

Rust Windowing 1.8k Jan 5, 2023
A low-level library for OpenGL context creation, written in pure Rust.

glutin - OpenGL, UTilities and INput A low-level library for OpenGL context creation, written in pure Rust. [dependencies] glutin = "0.28.0" Documenta

Rust Windowing 1.8k Dec 25, 2022
A simple Rust and WebAssembly example implementing the Game of Life

rust-wasm-game-of-life rust-wasm-game-of-life is a simple Rust and WebAssembly example implementing the Game of Life based on Rust and WebAssembly boo

Chris Ohk 14 Nov 24, 2021
2d collision test for game-development in rust (with optional integration and example for bevy)

impacted 2d collision test for game-development in rust (with optional integration and example for bevy) This provides a low-level "narrow-phase" coll

Jonathan Cornaz 17 Nov 5, 2022
Collection of rust crates providing rendering abstractions.

render-rs License Licensed under either of Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0) MIT license (LIC

Graham Wihlidal 31 Aug 25, 2022
Decryption tool for assets.pie from Teenage Mutant Ninja Turtles: The Cowabunga Collection. This tool was made in its entirety by SowwyItsAnAlt.

Cowabunga Decryption tool for assets.pie from Teenage Mutant Ninja Turtles: The Cowabunga Collection. This tool was made in its entirety by SowwyItsAn

Masquerade 8 Dec 22, 2022
🦀 my exploration and learning journey with Rust

?? Rust Tutorials Welcome to a repository of my exploration of Rust, using the "The Rust Programming Language" tutorial book! This repo is partially f

nareh agazaryan 1 Jan 9, 2022
Simple rust asset handling derive macro for enums, and a proc-macro learning resource!

asset-derive Summary • Todos • Docs Summary Simple Rust asset loading derive macro for Enums, and a resource for learning proc-macros! Please feel fre

Shadorain 5 Feb 9, 2023
🎮 A Realtime Multiplayer Server/Client Game example built entirely with Rust 🦀

Example of a ?? Realtime Multiplayer Web Game Server/Client built entirely using Rust ??

Nick Baker 5 Dec 17, 2022
Tic-Tac-Toe on the GPU, as an example application for wgpu

Tic-Tac-GPU A simple (cough cough) example on a tic-tac-toe game with wgpu. Why? Because I didn't find that many small applications which use wgpu as

multisn8 2 Oct 7, 2022
Quick example of displaying a BMP file with uefi-rs

uefi-bmp Quick example of drawing a bitmap using uefi-rs and tinybmp. Not necessarily the most efficient :) Build and run (may need some modification

Nicholas Bishop 1 Jan 16, 2022
A barebones example of how to integrate OpenXR with wgpu (Vulkan-only)

wgpu-openxr-example a barebones example of how to integrate OpenXR with wgpu (Vulkan-only) It has four modes: cargo run --no-default-features: desktop

Philpax 21 Dec 15, 2022
A simple example showcasing how to use Bevy to display a square with acceleration (controllable with your keyboard) that wraps around the screen!

Bevy Wrapping Square example A simple example showcasing how to use Bevy to display a square with acceleration (controllable with your keyboard) that

Luciano Mammino 3 Oct 23, 2022
Example implementation of a 3d hexagon tile-based map editor using bevy

bevy-hex-sandbox Example implementation of a 3d hexagon tile-based map editor using bevy v0.10. smol.mov This is not a maintained project. Instead, th

David M. Lary 4 Aug 5, 2023
A networked (p2p), cross-platform physics simulation example using rollback netcode

bevy_gaff (work in progress) bevy_gaff is an attempt at making a networked (p2p), cross-platform physics simulation using rollback netcode. It synchro

Johan Klokkhammer Helsing 13 Sep 5, 2023
Controls the RGB on the keyboard for the Legion 5 Pro from Lenovo. Mostly used for learning a bit of rust.

L5P Keyboard RGB Control Program A fun little experiment. Probably contains bugs. ⚠️ Use at your own risk, the developer is not responsible for any da

null 114 Jan 2, 2023
This is the repository with the tutorials of Learning Rust series in @Leticia-maria Youtube channel

Rust Tutorials This repository contains the information of Learning Rust playlist in my youtube channel. Learning Rust(part. 1)! Installation on Ubunt

Letícia Maria Pequeno Madureira 10 May 24, 2022
My first Real-Time 3D Game Engine learning project written in Rust.

EyeEngine-Rust FOA, sry for my poor English. What is Eye Engine? Eye Engine is my first Real-Time 3D Game Engine learning project. There are two editi

F-seeeye 4 Jan 5, 2022