GFX-Lib is a lightweight library designed to simplify the creation of 2D and 3D games using OpenGL. Unlike a full-fledged game engine, GFX-Lib focuses on providing a set of functions and modules that allow developers to easily create graphics applications or games while still maintaining the freedom to implement their own abstractions. This makes GFX-Lib an ideal foundation for building custom game engines. It is comparable to other frameworks like Raylib, MonoGame, or LibGDX.
GFX-Lib offers the following modules:
- Graphics: Functions for rendering 2D graphics, including textures, shapes, and shader management.
- Math: Mathematical utilities for vectors and matrices, facilitating transformations and calculations for graphics and physics.
- Core: Basic utilities for creating windows, handling user input (keyboard, mouse), and managing events.
- Shader: A collection of predefined shaders and the ability to create custom shaders.
- Physics: Not implemented yet.
- Audio: Not implemented yet.
Note: 3D rendering is currently under development and will be available in future versions.
See the Github wiki for many examples of how you can use GFX-Lib. https://github.com/Andy16823/gfxlib-rs/wiki/Examples
The project uses the following dependencies:
- beryllium | License: Apache-2.0
- freetype-rs | License: MIT
- gl | License: Apache-2.0
- glfw | License: Zlib
- nalgebra | License: Apache-2.0
- stb_image | License: MIT
- uuid | License: MIT
- gltf | License: MIT
To use GFX-Lib in your project, add it as a dependency in your Cargo.toml
:
[dependencies]
gfx = { git = "https://github.com/Andy16823/gfxlib-rs" }
Feel free to open issues or submit pull requests. Contributions are always welcome! Also make sure to join the gfx discord channel https://discord.com/invite/qZRgRKedBs