FireGL is a C++ RAII library designed for rendering, providing essential functionality for graphics programming. It is easy to use, extendable, and cross-platform, allowing for seamless integration into projects while offering flexibility for custom extensions.
Caution
FireGL was created for learning and experimentation only. It is NOT intended for production use or critical systems. The library has not been audited or hardened. Use at your own risk.
Note
Note about RAII: this project does not strictly implement RAII semantics, resources are managed automatically after initialization but not necessarily during construction. See code comments for details.
- RAII (Resource Acquisition Is Initialization): Automatic resource management.
- Extensible: Easily extendable for custom rendering requirements.
- Cross-platform: Tested on Windows and macOS. Linux support should work as expected, but hasn't been fully tested yet.
To build and run the example application, enable the BUILD_EXAMPLE option during configuration:
-DBUILD_EXAMPLE=ON # Default is OFFThe example application demonstrates the basic usage of the library and provides an example of how to implement an app using it.
-
Download and extract the source code.
-
Initialize CMake:
- In the root directory of your project, create a build directory:
mkdir build && cd build
- Run CMake to configure the project:
cmake ../ -DBUILD_EXAMPLE=ON cmake --build .
- In the root directory of your project, create a build directory:
-
If you want to use the built library for your own project, you can build it without the
-DBUILD_EXAMPLEoption:- Libraries will be located in
<Project_Root>/build/lib/<Config>/. Ensure these libraries are correctly linked in your project. - Include headers by adding
<Project_Root>/includeto your project's include directories. - Access external dependencies by adding
<Project_Root>/extlibs/includeto your include paths.
- Libraries will be located in
To install the library to a system directory (e.g., /usr/local or C:\Program Files):
-
Run the following CMake command:
cmake --install . --config Debug --prefix "C:\Program Files (x86)"
-
Ensure the build configuration (Debug/Release) matches your installation configuration to avoid issues with missing or incorrect files.
- GLFW: Window management and input handling.
- GLAD: OpenGL extension loading.
- STB: Image loading.
- GLM: Mathematics library for graphics.
- KHR: Khronos headers.
- Assimp: Asset import library.
- C++ Version: C++20 or later.
- Platform Support:
- Windows: Fully supported.
- macOS: Fully supported with OpenGL 3.2 to 4.1. Newer versions are not supported due to macOS's deprecation of OpenGL in favor of Metal.
- Linux: Mostly supported.
All documentation is provided within the source code files. Classes and functions are fully documented with detailed descriptions and examples directly in the code.
This project is licensed under the MIT License, see the LICENSE file for details.