This is a basic C++ GUI library, using GLFW, Dear ImGui and GLAD. Made for speeding up GUI application development.
- Cmake (3.27 or above) : The build system
- GLFW v3.4: https://github.com/glfw/glfw
- GLAD v1: https://github.com/Dav1dde/glad
- Dear ImGui v1.91.9 WIP (docking-branch): https://github.com/ocornut/imgui
- STB (stb_image.h v2.30): https://github.com/nothings/stb
- spdlog v1.15.1 : https://github.com/gabime/spdlog
//
#include "strawplate.hpp" //-- Include the public header
//
#include <stdexcept>
#include <iostream>
int main(int argc, const char* argv[])
{
try
{
//-- set settings
StrawPlate::WindowSettings win_sttng;
win_sttng.label="demo window";
//-- Create a Layer Factory 👇
const std::shared_ptr<StrawPlate::LayerMaker> layer_factory =
std::make_shared<
StrawPlate::ConcreteLayerMaker<StrawPlate::SampleLayer>>();
//-- Implement a custom StrawPlateLayer for your App logic ☝
StrawPlate::GLFWApplication app(win_sttng, layer_factory);
//-- Customize window settings etc. ☝
app.run();//-- Execute!
}
catch(const std::exception& err)
{
std::cerr << "EXCEPTION:" << err.what() << "\n";
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
- Linux : GLFW package from AUR
-
- Run
build.bat
from repo root - The library and headers are now in the
Dist/
folder inbuild/
- Run
-
- Run
chmod +x build.sh
from repo root (adds executable priviledge to the script) - Run
build.sh
- The library and headers are now in the
Dist/
folder inbuild/
- Run
- Run
mkdir build && cmake -B build -DCMAKE_BUILD_TYPE=Release -t install
- Run
cmake --build ./build
- The library and headers are now in the
Dist/
folder inbuild/
StrawPlate is licensed under the MIT license.
2025