Full documentation Here
#include <ggui.h>
using namespace GGUI;
int main()
{
GGUI::GGUI( // Initialize GGUI
title("Welcome to GGUI!") |
node(new textField(
position(STYLES::center) |
text("Hello World!")
))
);
GGUI::waitForTermination(); // Wait until user gives signal to close (ctrl+c)
}For more examples see examples/README.md folder.
-
c++ -I./ggui.h -L./ggui.lib ...
c++ -std=c++17 -O3 -I./src ./src/**/*.cpp -o ggui # This will yank main.cpp into it as well, you can remove it if CLI is not needed.c++ -std=c++17 -O3 -I./src -c ./src/**/*.cpp -o ggui.lib # This will compile all source files into a single library file.c++ -std=c++17 -O3 -I./bin/export ./bin/export/buildGGUILib.cpp -o headerGenerator # This will build the automated builder.
./headerGenerator --headers-only --source-root ./ # This will generate automatically ggui.h, you can also add '--include-internal' for building ggui_dev.h -
- Will remove any existing build directory, exported binaries and generated headers.
- builds ggui_core archive for intellisense to work properly.
-
- give the build type first and then the target(s)
./bin/build.sh profile ggui # Links ggui_core with main.cpp ./bin/build.sh release build_native_archive # builds a usable archive and auto generates headers under ./bin/export/
- give the build type first and then the target(s)
-
- Basically a helper script for
./bin/build.sh release build_native_archivewith cross-compilation via Docker. - Cross-platform configs are located in
./bin/export/, you can add your own platforms if needed (needs some hassling) - Old system without meson:
c++ buildGGUILib.cpp && ./a.exe - Build for specific architecture like this:
./bin/export.sh linux x86_64 - Supported architectures are as follows:
- linux arm32
- linux arm64
- linux x86_64
- windows x86_64
- Running
./bin/export.shwith no arguments will build for all supported platforms.
- Basically a helper script for
-
- Takes build type as first argument
- Cannot recognize faulty rendering
:( - Can run test for cross-platforms via Docker-QEMU, basically the same syntax as export.sh, but add the build type as first argument, like this:
./bin/test.sh release linux x86_64
# Build types are: release, debug, profile
./bin/analytics/benchmark.sh -Full release # Full CPU profiling
./bin/analytics/time.sh 5 120 release # short duration 5s, long duration 120s; This is to check if opcodes explode with time growth or stay stabile.
./bin/analytics/assembly.sh profile # Helper script to make a large asm file of the whole thing.Note: scripts under analytics, do not support Docker cross-platform binary analysis!
